domDoc = domBuilder.parse(file);
}
NodeInfo saxonDoc = null;
if (mode.equals("saxon")) {
saxonDoc = context.buildDocument(new StreamSource(new ByteArrayInputStream(fileData)));
}
if (mode.startsWith("fi")) {
if (mode.indexOf("stax") >= 0) {
// data = serializeWithStax(doc, staxOutputFactory);
data = serializeWithFastInfosetStax(doc, (XMLStreamWriter)fiSerializer, fiMethod, new ByteArrayOutputStream());
} else {
data = serializeWithFastInfoset(doc, (ContentHandler)fiSerializer, fiMethod, new ByteArrayOutputStream());
}
}
// run the benchmark
long start = System.currentTimeMillis();
for (int i = 0; i < iterations; i++) {
try {
// serialize
if (cmd.equals("ser") || cmd.equals("serdeser") || cmd.equals("test")) {
ByteArrayOutputStream out = createOutputStream(cmd.equals("ser"));
if (mode.startsWith("bnux")) {
if (mode.indexOf("stream") < 0) {
codec.serialize(doc, compressionLevel, out);
data = out.toByteArray();
} else {
data = serializeWithStreamingBnux(doc, compressionLevel, out);
}
} else if (mode.startsWith("xom")) {
if (mode.indexOf("stax") >= 0) {
data = serializeWithStax(doc, staxOutputFactory, out);
} else if (mode.indexOf("stream") < 0) {
data = serializeWithXOM(doc, out);
} else {
data = serializeWithStreamingXOM(doc, out);
}
} else if (mode.equals("saxon")) {
saxonSerializer.transform(saxonDoc, new StreamResult(out));
data = out.toByteArray();
} else if (mode.equals("dom")) {
domSerializer.transform(new DOMSource(domDoc), new StreamResult(out));
data = out.toByteArray();
} else if (mode.startsWith("fi")) {
if (mode.indexOf("stax") >= 0) {
// data = serializeWithStax(doc, staxOutputFactory);
data = serializeWithFastInfosetStax(doc, (XMLStreamWriter)fiSerializer, fiMethod, out);
} else {
data = serializeWithFastInfoset(doc, (ContentHandler)fiSerializer, fiMethod, out);
}
} else {
throw new IllegalArgumentException("illegal mode");
}
checksum += data.length;
}
encodedSize = data.length;
doneEncoded += encodedSize;
// deserialize
Document doc2 = null;
if (cmd.equals("deser") || cmd.equals("serdeser") || cmd.equals("test")) {
if (mode.startsWith("bnux")) {
doc2 = codec.deserialize(new ByteArrayInputStream(data), bnuxFactory);
} else if (mode.startsWith("xom") && mode.indexOf("stax") >= 0) {
doc2 = staxBuilder.build(new ByteArrayInputStream(fileData));
} else if (mode.startsWith("xom")) {
if (mode.indexOf("stream") < 0) {
doc2 = builder.build(new ByteArrayInputStream(fileData), baseURI);
} else {
doc2 = builder.build(new ByteArrayInputStream(data), baseURI);
}
} else if (mode.equals("saxon")) { // just for deser comparison
context.buildDocument(new StreamSource(new ByteArrayInputStream(fileData)));
} else if (mode.equals("dom")) {
domDoc = domBuilder.parse(new ByteArrayInputStream(fileData));
// System.err.println(domDoc.getClass().getName());
} else if (mode.startsWith("fi") && mode.indexOf("stax") >=0 ) {
fistaxMethod.invoke(fistaxReader, new Object[] {new ByteArrayInputStream(data)});