in SdmxDataParser/src/main/java/org/sdmxsource/sdmx/dataparser/engine/writer/GenericDataWriterEngine.java [107:192]
public void startSeries(AnnotationBean... annotations) {
super.startSeries();
if (isFlat) {
componentVals = new LinkedHashMap<String, String>();
try {
if (currentPosition != null) {
switch (currentPosition) {
case OBSERVATION:
writeEndObs();
break;
case OBSERVATION_ATTRIBUTE:
seriesWriter.writeEndElement(); //END ATTRIBUTES
writeEndObs();
break;
case SERIES_KEY_ATTRIBUTE:
case SERIES_KEY:
//DO NOTHING
break;
case GROUP:
writeEndGroup();
break;
case GROUP_KEY_ATTRIBUTE:
writer.writeEndElement(); //END ATTRIBUTES
writeEndGroup();
break;
}
}
} catch (XMLStreamException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
currentPosition = POSITION.SERIES_KEY;
} else {
try {
if (currentPosition != null) {
//WE HAVE NOT YET WRITTEN ANYTHING, CHECK WHERE WE ARE AND CLOSE OFF NODES
switch (currentPosition) {
case DATASET_ATTRIBUTE:
writer.writeEndElement();
break;
case OBSERVATION:
writeEndObs();
writeEndSeries();
break;
case OBSERVATION_ATTRIBUTE:
seriesWriter.writeEndElement(); //END ATTRIBUTES
writeEndObs();
writeEndSeries();
break;
case SERIES_KEY_ATTRIBUTE:
seriesWriter.writeEndElement(); //END ATTRIBUTES
writeEndSeries();
break;
case SERIES_KEY:
seriesWriter.writeEndElement(); //END SERIES KEY
writeEndSeries();
break;
case GROUP:
writeEndGroup();
break;
case GROUP_KEY:
writer.writeEndElement(); //END GROUP KEY
writeEndGroup();
break;
case GROUP_KEY_ATTRIBUTE:
writer.writeEndElement(); //END ATTRIBUTES
writeEndGroup();
break;
}
}
startElement(seriesWriter, GENERIC_NS, "Series"); //WRITE THE START SERIES
if (isTwoPointOne()) {
writeAnnotations(seriesWriter, annotations);
} else {
seriesAnnotations = annotations;
}
startElement(seriesWriter, GENERIC_NS, "SeriesKey"); //WRITE THE START SERIES KEY
currentPosition = POSITION.SERIES_KEY;
} catch (XMLStreamException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}