package model.manager.exports; import java.util.ArrayList; import java.util.List; import java.util.Vector; import model.manager.exports.columns.SimpleColumnsEnum; import model.nonPersistent.EntitySet; public abstract class BaseReportObject implements ReportObject { private Integer reportObjectId; // can be used as a database primary key private String name; private String description; private EntitySet patientSet; private boolean isAllPatients = false; private List<ExportColumn> columns = new Vector<ExportColumn>(); public BaseReportObject() { // do nothing } public BaseReportObject(Integer reportObjectId, String name, String description) { this.reportObjectId = reportObjectId; this.name = name; this.description = description; } /** * @return Returns the reportObjectId. */ @Override public Integer getReportObjectId() { return reportObjectId; } /** * @param reportObjectId * The reportObjectId to set. */ @Override public void setReportObjectId(Integer reportObjectId) { this.reportObjectId = reportObjectId; } /** * @return Returns the name; */ @Override public String getName() { return name; } /** * @param name * The name to set. */ @Override public void setName(String name) { this.name = name; } /** * @return Returns the description */ @Override public String getDescription() { return description; } /** * @param name * The description to set. */ @Override public void setDescription(String description) { this.description = description; } public boolean isAllPatients() { return isAllPatients; } @Override public void setAllPatients(boolean isAllPatients) { this.isAllPatients = isAllPatients; } @Override public EntitySet getPatientSet() { return patientSet; } public void setPatientSet(EntitySet patientSet) { this.patientSet = patientSet; } @Override public List<ExportColumn> getColumns() { return columns; } public void setColumns(List<ExportColumn> columns) { this.columns = columns; } /** * Append a simple column * * @param columnName * @param columnValue */ @Override public void addSimpleColumn(SimpleColumnsEnum columnValue) { columns.add(new SimpleColumn(columnValue)); } /** * Append a simple column * * @param columnName * @param columnValue */ @Override public void addColumn(ExportColumn column) { columns.add(column); } /** * Add multiple columns * * @param columnArray */ public void addColumns(ExportColumn... columnArray) { for (ExportColumn column : columnArray) { columns.add(column); } } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (isAllPatients ? 1231 : 1237); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((patientSet == null) ? 0 : patientSet.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; BaseReportObject other = (BaseReportObject) obj; if (isAllPatients != other.isAllPatients) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (patientSet == null) { if (other.patientSet != null) return false; } else if (!patientSet.equals(other.patientSet)) return false; return true; } @Override public String toString() { return this.getReportObjectId() + ", " + this.getName() + ", " + this.getDescription(); } public List<String> getColumnsAsStringList() { List<String> cols = new ArrayList<String>(); for (ExportColumn column : columns) { cols.add(column.toString()); // returns only the headings. } return cols; } }