public static void main(String[] args) {
Set flags = new HashSet();
flags.add("h");
flags.add("help");
flags.add("usage");
flags.add("license");
flags.add("version");
CommandLine cl = new CommandLine(args, flags, Collections.singleton("indent"));
if (cl.getOpt("h") != null || cl.getOpt("help") != null || cl.getOpt("usage") != null)
{
printUsage();
System.exit(0);
return;
}
String[] badopts = cl.getBadOpts();
if (badopts.length > 0)
{
for (int i = 0; i < badopts.length; i++)
System.out.println("Unrecognized option: " + badopts[i]);
printUsage();
System.exit(0);
return;
}
if (cl.getOpt("license") != null)
{
CommandLine.printLicense();
System.exit(0);
return;
}
if (cl.getOpt("version") != null)
{
CommandLine.printVersion();
System.exit(0);
return;
}
if (cl.args().length == 0)
{
printUsage();
return;
}
String indentStr = cl.getOpt("indent");
int indent;
if (indentStr == null)
indent = DEFAULT_INDENT;
else
indent = Integer.parseInt(indentStr);
File[] files = cl.getFiles();
for (int i = 0; i < files.length; i++)
{
XmlObject doc;
try
{
doc = XmlObject.Factory.parse(files[i], (new XmlOptions()).setLoadLineNumbers());
}
catch (Exception e)
{
System.err.println(files[i] + " not loadable: " + e.getMessage());
continue;
}
try
{
doc.save(System.out, new XmlOptions().setSavePrettyPrint().setSavePrettyPrintIndent(indent));
}
catch (IOException e)
{
System.err.println("Unable to pretty print " + files[i] + ": " + e.getMessage());
}
}
}
|