1 23 24 package org.enhydra.xml.xmlc.commands.xmlc; 25 26 import org.enhydra.xml.io.ErrorReporter; 27 import org.enhydra.xml.xmlc.XMLCException; 28 import org.enhydra.xml.xmlc.commands.options.Option; 29 import org.enhydra.xml.xmlc.commands.options.OptionSet; 30 import org.enhydra.xml.xmlc.metadata.JavacOption; 31 import org.enhydra.xml.xmlc.metadata.MetaData; 32 33 36 class CompilerCmdOptions extends BaseCmdOptions { 37 40 private class DestDirOption extends Option { 41 44 public DestDirOption() { 45 super("-d", 1, false, 46 "dir - Destintation directory, passed to javac"); 47 } 48 49 52 protected void parse(String [] args, 53 ErrorReporter errorReporter, 54 Object clientData) throws XMLCException { 55 ((MetaData)clientData).getCompileOptions().setClassOutputRoot(args[0]); 56 } 57 } 58 59 62 private class JavacStdArg extends Option { 63 66 public JavacStdArg(String option, int numArgs, String optHelp) { 67 super(option, numArgs, false, optHelp); 68 } 69 70 73 protected void parse(String [] args, 74 ErrorReporter errorReporter, 75 Object clientData) throws XMLCException { 76 JavacOption javacOption = ((MetaData)clientData).getJavaCompilerSection().addJavacOption(); 77 javacOption.setName(getName()); 78 if (args.length > 0) { 79 javacOption.setValue(args[0]); 80 } 81 } 82 } 83 84 87 private class JavacArbitraryArg extends Option { 88 91 public JavacArbitraryArg(String option, int numArgs, String optHelp) { 92 super(option, numArgs, true, optHelp); 93 } 94 95 98 protected void parse(String [] args, 99 ErrorReporter errorReporter, 100 Object clientData) throws XMLCException { 101 JavacOption javacOption = ((MetaData)clientData).getJavaCompilerSection().addJavacOption(); 102 javacOption.setName(args[0]); 103 if (args.length > 1) { 104 javacOption.setValue(args[1]); 105 } 106 } 107 } 108 109 112 private class JavacProgOption extends Option { 113 116 public JavacProgOption() { 117 super("-javac", 1, false, 118 "prog - Specify the java compiler to use."); 119 } 120 121 124 protected void parse(String [] args, 125 ErrorReporter errorReporter, 126 Object clientData) throws XMLCException { 127 ((MetaData)clientData).getJavaCompilerSection().setJavac(args[0]); 128 } 129 } 130 131 134 public CompilerCmdOptions(OptionSet optionSet) { 135 super(optionSet); 136 optionSet.addOption(new DestDirOption()); 137 optionSet.addOption(new JavacStdArg("-g", 0, 138 "- Passed to javac")); 139 optionSet.addOption(new JavacStdArg("-O", 0, 140 "- Passed to javac")); 141 optionSet.addOption(new JavacStdArg("-classpath", 1, 142 "path - Passed to javac")); 143 optionSet.addOption(new JavacArbitraryArg("-javacflag", 1, 144 "flag - Aribitrary flag to pass to the javac program; including leading `-' or `+' character")); 145 optionSet.addOption(new JavacArbitraryArg("-javacopt", 2, 146 "opt value - Aribitrary option and value to pass to the javac program; including leading `-' or `+' character")); 147 optionSet.addOption(new JavacProgOption()); 148 } 149 } 150 | Popular Tags |