ingo@3227: package de.intevation.flys.exports.sq; ingo@3077: ingo@3077: import java.io.OutputStream; ingo@3077: import java.util.ArrayList; ingo@3077: import java.util.List; ingo@3077: ingo@3077: import org.w3c.dom.Document; ingo@3077: ingo@3077: import org.apache.log4j.Logger; ingo@3077: ingo@3077: import au.com.bytecode.opencsv.CSVWriter; ingo@3077: ingo@3077: import de.intevation.artifacts.CallContext; ingo@3077: ingo@3077: import de.intevation.flys.artifacts.model.CalculationResult; ingo@3227: import de.intevation.flys.exports.AbstractExporter; ingo@3077: ingo@3077: ingo@3077: /** ingo@3077: * @author Ingo Weinzierl ingo@3077: */ ingo@3077: public class SQRelationExporter extends AbstractExporter { ingo@3077: ingo@3077: /** Private logger. */ ingo@3077: private static final Logger logger = ingo@3077: Logger.getLogger(SQRelationExporter.class); ingo@3077: ingo@3077: ingo@3077: public static final String CSV_PARAMETER = ingo@3077: "export.sqrelation.csv.header.parameter"; ingo@3077: ingo@3077: public static final String CSV_STATION = ingo@3077: "export.sqrelation.csv.header.station"; ingo@3077: ingo@3077: public static final String CSV_KM = ingo@3077: "export.sqrelation.csv.header.km"; ingo@3077: ingo@3077: public static final String CSV_FUNCTION = ingo@3077: "export.sqrelation.csv.header.function"; ingo@3077: ingo@3077: public static final String CSV_GAUGE = ingo@3077: "export.sqrelation.csv.header.gauge"; ingo@3077: ingo@3077: public static final String CSV_COEFF_A = ingo@3077: "export.sqrelation.csv.header.coeff.a"; ingo@3077: ingo@3077: public static final String CSV_COEFF_B = ingo@3077: "export.sqrelation.csv.header.coeff.b"; ingo@3077: ingo@3077: public static final String CSV_COEFF_Q = ingo@3077: "export.sqrelation.csv.header.coeff.q"; ingo@3077: ingo@3077: public static final String CSV_COEFF_R = ingo@3077: "export.sqrelation.csv.header.coeff.r"; ingo@3077: ingo@3077: public static final String CSV_N_TOTAL = ingo@3077: "export.sqrelation.csv.header.n.total"; ingo@3077: ingo@3077: public static final String CSV_N_OUTLIERS = ingo@3077: "export.sqrelation.csv.header.n.outliers"; ingo@3077: ingo@3077: public static final String CSV_C_DUAN = ingo@3077: "export.sqrelation.csv.header.c.duan"; ingo@3077: ingo@3077: public static final String CSV_C_FERGUSON = ingo@3077: "export.sqrelation.csv.header.c.ferguson"; ingo@3077: ingo@3077: public static final String CSV_VARIANCE = ingo@3077: "export.sqrelation.csv.header.variance"; ingo@3077: ingo@3077: ingo@3077: // TODO use correct model class here! ingo@3077: protected List data; ingo@3077: ingo@3077: ingo@3077: public void init(Document request, OutputStream out, CallContext cc) { ingo@3077: super.init(request, out, cc); ingo@3077: data = new ArrayList(); ingo@3077: } ingo@3077: ingo@3077: ingo@3077: @Override ingo@3077: protected void addData(Object d) { ingo@3077: if (d instanceof CalculationResult) { ingo@3077: d = ((CalculationResult) d).getData(); ingo@3077: ingo@3077: if (d instanceof Object[]) { ingo@3077: logger.debug("Add new data of type XXX"); ingo@3077: data.add((Object[]) d); ingo@3077: } ingo@3077: } ingo@3077: } ingo@3077: ingo@3077: ingo@3077: @Override ingo@3077: protected void writeCSVData(CSVWriter writer) { ingo@3077: logger.debug("writeCSVData"); ingo@3077: logger.error("NOT IMPLEMENTED: writeCSVData"); ingo@3077: ingo@3077: logger.debug("CSV gets " + data.size() + " rows."); ingo@3077: ingo@3077: writeCSVHeader(writer); ingo@3077: ingo@3077: for (Object[] d: data) { ingo@3077: data2CSV(writer, d); ingo@3077: } ingo@3077: } ingo@3077: ingo@3077: ingo@3077: protected void writeCSVHeader(CSVWriter writer) { ingo@3077: writer.writeNext(new String[] { ingo@3077: msg(CSV_PARAMETER, CSV_PARAMETER), ingo@3077: msg(CSV_STATION, CSV_STATION), ingo@3077: msg(CSV_KM , CSV_KM), ingo@3077: msg(CSV_FUNCTION , CSV_FUNCTION), ingo@3077: msg(CSV_GAUGE , CSV_GAUGE), ingo@3077: msg(CSV_COEFF_A , CSV_COEFF_A), ingo@3077: msg(CSV_COEFF_B , CSV_COEFF_B), ingo@3077: msg(CSV_COEFF_Q , CSV_COEFF_Q), ingo@3077: msg(CSV_COEFF_R , CSV_COEFF_R), ingo@3077: msg(CSV_N_TOTAL , CSV_N_TOTAL), ingo@3077: msg(CSV_N_OUTLIERS, CSV_N_OUTLIERS), ingo@3077: msg(CSV_C_DUAN , CSV_C_DUAN), ingo@3077: msg(CSV_C_FERGUSON, CSV_C_FERGUSON), ingo@3077: msg(CSV_VARIANCE , CSV_VARIANCE) ingo@3077: }); ingo@3077: } ingo@3077: ingo@3077: ingo@3077: protected void data2CSV(CSVWriter writer, Object[] mData) { ingo@3077: logger.debug("data2CSV"); ingo@3077: logger.error("NOT IMPLEMENTED: data2CSV"); ingo@3077: } ingo@3077: ingo@3077: ingo@3077: @Override ingo@3077: protected void writePDF(OutputStream out) { ingo@3077: logger.debug("writePDF"); ingo@3077: logger.error("NOT IMPLEMENTED: writePDF"); ingo@3077: } ingo@3077: } ingo@3077: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :