package model.manager.exports; import java.io.Serializable; import org.apache.log4j.Logger; /** * A DataExport contains a list of {@link ExportColumn}'s along with a set of * patients (or allPatients) for which the data represented by the * ExportColumn's whill be exported. */ public class AppointmentExportObject extends BaseReportObject implements ReportObject, Serializable { /** * */ private static final long serialVersionUID = 88463474098028260L; private static Logger log = Logger .getLogger(AppointmentExportObject.class); public AppointmentExportObject() { super(); } /* * (non-Javadoc) * * @see model.manager.exports.ReportObject#generateTemplate() */ @Override public String generateTemplate() { StringBuilder sb = new StringBuilder(); // print out the columns sb.append(generateHeaderTemplate()); sb.append("\n"); // print out the data sb.append(generateDataTemplate()); return sb.toString(); } /* * (non-Javadoc) * * @see model.manager.exports.ReportObject#generateDataTemplate() */ @Override public String generateDataTemplate() { StringBuilder sb = new StringBuilder(); sb.append("$!{fn.setPatientSet($patientSet)}"); sb.append("#foreach($patientId in $patientSet.entityIds)\n"); sb.append("$!{fn.setPatientId($patientId)}"); if (getColumns().size() > 0) { sb.append(getColumns().get(0).toTemplateString()); for (int i = 1; i < getColumns().size(); i++) { sb.append("$!{fn.getSeparator()}"); sb.append(getColumns().get(i).toTemplateString()); } } else { log.warn("Report " + getName() + "has no columns"); } sb.append("\n#end\n"); return sb.toString(); } private String xmlWrap(ExportColumn column) { String tagname = column.getColumnName().replaceAll(" ", "-"); return " <" + tagname + ">" + column.toTemplateString() + "</" + tagname + ">\n"; } protected String generateHeaderTemplate() { StringBuilder sb = new StringBuilder(); if (getColumns().size() >= 1) { sb.append(getColumns().get(0).getTemplateColumnName()); for (int i = 1; i < getColumns().size(); i++) { sb.append("$!{fn.getSeparator()}"); sb.append(getColumns().get(i).getTemplateColumnName()); } } return sb.toString(); } }