private void writeMetaStructure(XMLEventWriter writer, GAMObject go) { XMLEventFactory efac = XMLEventFactory.newInstance(); /* create indent from 2 tabs */ String sIndent = " " + " "; XMLEvent indent = efac.createDTD(sIndent); XMLEvent startMetadata = efac.createStartElement("", "", "metadata"); XMLEvent endMetadata = efac.createEndElement("", "", "metadata"); String data = go.getType(); if (data == null) { data = ""; } XMLEvent startType = efac.createStartElement("", "", "type"); XMLEvent charsType = efac.createCharacters(data); XMLEvent endType = efac.createEndElement("", "", "type"); data = go.getAuthor(); if (data == null) { data = ""; } XMLEvent startAuthor = efac.createStartElement("", "", "author"); XMLEvent charsAuthor = efac.createCharacters(data); XMLEvent endAuthor = efac.createEndElement("", "", "author"); data = go.getOrganization(); if (data == null) { data = ""; } XMLEvent startOrganization = efac.createStartElement("", "", "organization"); XMLEvent charsOrganization = efac.createCharacters(data); XMLEvent endOrganization = efac.createEndElement("", "", "organization"); data = go.getOrganism(); if (data == null) { data = ""; } XMLEvent startOrganism = efac.createStartElement("", "", "organism"); XMLEvent charsOrganism = efac.createCharacters(data); XMLEvent endOrganism = efac.createEndElement("", "", "organism"); data = go.getStage(); if (data == null) { data = ""; } XMLEvent startDevelStage = efac.createStartElement("", "", "developmental_stage"); XMLEvent charsDevelStage = efac.createCharacters(data); XMLEvent endDevelStage = efac.createEndElement("", "", "developmental_stage"); data = go.getDescription(); if (data == null) { data = ""; } XMLEvent startDescription = efac.createStartElement("", "", "description"); XMLEvent charsDescription = efac.createCharacters(data); XMLEvent endDescription = efac.createEndElement("", "", "description"); Collection<XMLEvent> attrSampling = new ArrayList<XMLEvent>(); attrSampling.add(efac.createAttribute("pointdistX", String.valueOf(go.getPointDistX()))); attrSampling.add(efac.createAttribute("pointdistY", String.valueOf(go.getPointDistY()))); attrSampling.add(efac.createAttribute("stepsize", String.valueOf(go.getStepsize()))); attrSampling.add(efac.createAttribute("numberofpointsX", String.valueOf(go.getNumPointsX()))); attrSampling.add(efac.createAttribute("numberofpointsY", String.valueOf(go.getNumPointsY()))); String voxelSize = go.getVoxelSize(); if (voxelSize == null) { voxelSize = ""; } attrSampling.add(efac.createAttribute("voxelsize", voxelSize)); XMLEvent startSampling = efac.createStartElement("", "", "sampling", attrSampling.iterator(), null); XMLEvent endSampling = efac.createEndElement("", "", "sampling"); try { /*<metadata>*/ writer.add(indent); writer.add(startMetadata); writer.add(newLine); /*<type>*/ writer.add(indent); writer.add(tab); writer.add(startType); writer.add(charsType); writer.add(endType); writer.add(newLine); /*<author>*/ writer.add(indent); writer.add(tab); writer.add(startAuthor); writer.add(charsAuthor); writer.add(endAuthor); writer.add(newLine); /*<organization>*/ writer.add(indent); writer.add(tab); writer.add(startOrganization); writer.add(charsOrganization); writer.add(endOrganization); writer.add(newLine); /*<organism>*/ writer.add(indent); writer.add(tab); writer.add(startOrganism); writer.add(charsOrganism); writer.add(endOrganism); writer.add(newLine); /*<developmental_stage>*/ writer.add(indent); writer.add(tab); writer.add(startDevelStage); writer.add(charsDevelStage); writer.add(endDevelStage); writer.add(newLine); /*<description>*/ writer.add(indent); writer.add(tab); writer.add(startDescription); writer.add(charsDescription); writer.add(endDescription); writer.add(newLine); /*<sampling>*/ writer.add(indent); writer.add(tab); writer.add(startSampling); writer.add(endSampling); writer.add(newLine); /*</metadata>*/ writer.add(indent); writer.add(endMetadata); writer.add(newLine); } catch (XMLStreamException e) { System.out.println("GAMLWriterV10::writerMetadata - error writing Metadata"); e.printStackTrace(); } }