/* * OpenClinica is distributed under the * GNU Lesser General Public License (GNU LGPL). * For details see: http://www.openclinica.org/license * copyright 2003-2005 Akaza Research * * Created on Jul 11, 2005 */ package org.akaza.openclinica.bean.extract; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; /** * @author ssachs */ public abstract class ReportBean { protected final Logger logger = LoggerFactory.getLogger(getClass().getName()); protected ArrayList metadata; // header block - includes SED CRF codes protected ArrayList data; protected ArrayList items; // items in the database private boolean metadataClosed; protected ArrayList currentRow; public ReportBean() { metadata = new ArrayList(); data = new ArrayList(); currentRow = new ArrayList(); metadataClosed = false; items = new ArrayList(); } @Override public abstract String toString(); public void nextCell(String value) { currentRow.add(value); } public void nextRow() { logger.info("*** current row count: " + currentRow.size()); if (!metadataClosed) { metadata.add(currentRow); } else { data.add(currentRow); } currentRow = new ArrayList(); } public void closeMetadata() { if (currentRow.size() > 0) { metadata.add(currentRow); } currentRow = new ArrayList(); metadataClosed = true; } protected String getDataColumnEntry(int col, int rowNum) { if (data.size() > rowNum) { ArrayList row = (ArrayList) data.get(rowNum); if (row != null && row.size() > col) { String s = (String) row.get(col); if (s != null) { return s; } } } return ""; } /** * @return Returns the items. */ public ArrayList getItems() { return items; } /** * @param items * The items to set. */ public void setItems(ArrayList items) { this.items = items; } }