CSVWriter writer = new CSVWriter(out);
long id = Long.parseLong(expId);
ExperimentPersistencyRemote edao = ExperimentPersistencyImpl.getInstance();
Experiment exp = edao.findExperiment(id);
// The string array
String sa[] = new String[8];
sa[0] = "Name";
sa[1] = "Run #";
sa[2] = "Date";
sa[3] = "Digital Object #";
sa[4] = "Digital Object Source";
sa[5] = "Stage";
sa[6] = "Property Identifier";
sa[7] = "Property Value";
// write the headers out:
writer.writeNext(sa);
// Loop through:
int bi = 1;
for( BatchExecutionRecordImpl batch : exp.getExperimentExecutable().getBatchExecutionRecords() ) {
// log.info("Found batch... "+batch);
int doi = 1;
for( ExecutionRecordImpl exr : batch.getRuns() ) {
// log.info("Found Record... "+exr+" stages: "+exr.getStages());
if( exr != null && exr.getStages() != null ) {
for( ExecutionStageRecordImpl exsr : exr.getStages() ) {
// log.info("Found Stage... "+exsr);
for( MeasurementImpl m : exsr.getMeasurements() ) {
// log.info("Looking at result for property "+m.getIdentifier());
sa[0] = exp.getExperimentSetup().getBasicProperties().getExperimentName();
sa[1] = "" + bi;
sa[2] = batch.getStartDate().getTime().toString();
sa[3] = "" + doi;
sa[4] = exr.getDigitalObjectSource();
sa[5] = exsr.getStage();