package info.bukova.isspst.reporting;


public class Report {

	private ReportType type;
	private long reportId;
	private boolean signable;
	private String name;
	private String jasperFile;
	private boolean hasSettings;
	private boolean singleRecord;
	private boolean hasCondition;
	private String property;
	
	public Report() {
		this.reportId = 0;
		this.signable = false;
		hasSettings = false;
		singleRecord = false;
		hasCondition = false;
	}
	
	/**
	 * @param reportId
	 * @param signable
	 * @param name
	 * @param jasperFile
	 */
	public Report(long reportId, boolean signable, String name, String jasperFile) {
		this();
		this.type = ReportType.DEFINED;
		this.reportId = reportId;
		this.signable = signable;
		this.name = name;
		this.jasperFile = jasperFile;
	}
	
	/**
	 * @param reportId
	 * @param signable
	 * @param name
	 * @param jasperFile
	 * @param hasSettings
	 */
	public Report(long reportId, boolean signable, String name, String jasperFile, boolean hasSettings) {
		this(reportId, signable, name, jasperFile);
		this.hasSettings = hasSettings;
	}
	
	/**
	 * @param reportId
	 * @param signable
	 * @param name
	 * @param jasperFile
	 * @param hasSettings
	 * @param singleRecord
	 */
	public Report(long reportId, boolean signable, String name, String jasperFile, boolean hasSettings, boolean singleRecord) {
		this(reportId, signable, name, jasperFile, hasSettings);
		this.singleRecord = singleRecord;
	}

	public Report(long reportId, boolean signable, String name, String jasperFile, boolean hasSettings, boolean singleRecord, String property) {
		this(reportId, signable, name, jasperFile, hasSettings, singleRecord);
		this.property = property;
	}

	/**
	 * 
	 * @param reportId
	 * @param signable
	 * @param name
	 * @param jasperFile
	 * @param hasSettings
	 * @param singleRecord
	 * @param hasCondition
	 */
	public Report(long reportId, boolean signable, String name, String jasperFile, boolean hasSettings, boolean singleRecord, boolean hasCondition) {
		this(reportId, signable, name, jasperFile, hasSettings, singleRecord);
		this.hasCondition = hasCondition;
	}

	public ReportType getType() {
		return type;
	}

	public void setType(ReportType type) {
		this.type = type;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getJasperFile() {
		return jasperFile;
	}

	public void setJasperFile(String jasperFile) {
		this.jasperFile = jasperFile;
	}

	public boolean isHasSettings() {
		return hasSettings;
	}

	public void setHasSettings(boolean hasSettings) {
		this.hasSettings = hasSettings;
	}

	public boolean isSingleRecord() {
		return singleRecord;
	}

	public void setSingleRecord(boolean singleRecord) {
		this.singleRecord = singleRecord;
	}

	public boolean isHasCondition() {
		return hasCondition;
	}

	public void setHasCondition(boolean hasCondition) {
		this.hasCondition = hasCondition;
	}

	public long getReportId() {
		return reportId;
	}

	public void setReportId(long reportId) {
		this.reportId = reportId;
	}

	public boolean isSignable() {
		return signable;
	}

	public void setSignable(boolean signable) {
		this.signable = signable;
	}

	public String getProperty() {
		return property;
	}

	public void setProperty(String property) {
		this.property = property;
	}
}
