package jadex.xml.tutorial.jibx.example22;
//import org.jibx.extras.DocumentComparator;
//import org.jibx.runtime.*;
/**
* Test program for the JiBX framework. Works with two or three command line
* arguments: mapped-class, in-file, and out-file (optional, only needed if
* different from in-file). You can also supply a multiple of three input
* arguments, in which case each set of three is processed in turn (in this case
* the out-file is required). Unmarshals documents from files using the binding
* defined for the mapped class, then marshals them back out using the same
* bindings and compares the results. In case of a comparison error the output
* file is left as <i>temp.xml</i>.
*
* @author Dennis M. Sosnoski
* @version 1.0
*/
public class Test {
// definitions for version attribute on document root element
@SuppressWarnings("unused")
private static final String VERSION_URI = null;
@SuppressWarnings("unused")
private static final String VERSION_NAME = "version";
// attribute text strings used for different document versions
@SuppressWarnings("unused")
private static String[] VERSION_TEXTS = {
"1.0", "1.1", "1.2"
};
// binding names corresponding to text strings
@SuppressWarnings("unused")
private static String[] VERSION_BINDINGS = {
"binding0", "binding1", "binding2"
};
// public static void main(String[] args) {
// if (args.length == 1) {
//
// // delete generated output file if present
// File temp = new File("temp.xml");
// if (temp.exists()) {
// temp.delete();
// }
// try {
//
// // process input file according to declared version
// BindingSelector select = new BindingSelector(VERSION_URI,
// VERSION_NAME, VERSION_TEXTS, VERSION_BINDINGS);
// IUnmarshallingContext context = select.getContext();
// context.setDocument(new FileInputStream(args[0]), null);
// Customer customer = (Customer)select.
// unmarshalVersioned(Customer.class);
//
// // now marshal to in-memory array with same document version
// ByteArrayOutputStream bos = new ByteArrayOutputStream();
// select.setOutput(bos, "UTF-8");
// select.marshalVersioned(customer, customer.version);
//
// // run comparison of output with original document
// InputStreamReader brdr = new InputStreamReader
// (new ByteArrayInputStream(bos.toByteArray()), "UTF-8");
// FileReader frdr = new FileReader(args[0]);
// FileOutputStream fos = new FileOutputStream("temp.xml");
// fos.write(bos.toByteArray());
// fos.close();
// DocumentComparator comp = new DocumentComparator(System.err);
// if (!comp.compare(frdr, brdr)) {
//
// // report mismatch with output saved to file
//// FileOutputStream fos = new FileOutputStream("temp.xml");
//// fos.write(bos.toByteArray());
//// fos.close();
// System.err.println("Error testing on input file " + args[0]);
// System.err.println("Saved output document file path " +
// temp.getAbsolutePath());
// System.exit(1);
// }
//
// } catch (Exception e) {
// e.printStackTrace();
// System.exit(1);
// }
//
// } else {
// System.err.println("Usage: java exampl22.Test in-file\n" +
// "Leaves output as temp.xml in case of error");
// System.exit(1);
// }
// }
}