}
}
BuildArgParser parser = new BuildArgParser(handler);
AjBuildConfig config = new AjBuildConfig();
parser.populateBuildConfig(config, args, false, configFile);
// Process the CLASSPATH
String propcp = compilerConfig.getClasspath();
if (propcp != null && propcp.length() != 0) {
StringTokenizer st = new StringTokenizer(propcp, File.pathSeparator);
List configClasspath = config.getClasspath();
ArrayList toAdd = new ArrayList();
while (st.hasMoreTokens()) {
String entry = st.nextToken();
if (!configClasspath.contains(entry)) {
toAdd.add(entry);
}
}
if (0 < toAdd.size()) {
ArrayList both = new ArrayList(configClasspath.size() + toAdd.size());
both.addAll(configClasspath);
both.addAll(toAdd);
config.setClasspath(both);
}
}
// Process the OUTJAR
if (config.getOutputJar() == null) {
String outJar = compilerConfig.getOutJar();
if (outJar != null && outJar.length() != 0) {
config.setOutputJar(new File(outJar));
}
}
// Process the OUTPUT LOCATION MANAGER
IOutputLocationManager outputLocationManager = compilerConfig.getOutputLocationManager();
if (config.getCompilationResultDestinationManager() == null && outputLocationManager != null) {
config.setCompilationResultDestinationManager(new OutputLocationAdapter(outputLocationManager));
}
// Process the INPATH
mergeInto(config.getInpath(), compilerConfig.getInpath());
// bug 168840 - calling 'setInPath(..)' creates BinarySourceFiles which
// are used to see if there have been changes in classes on the inpath
if (config.getInpath() != null) {
config.setInPath(config.getInpath());
}
// Process the SOURCE PATH RESOURCES
config.setSourcePathResources(compilerConfig.getSourcePathResources());
// Process the ASPECTPATH
mergeInto(config.getAspectpath(), compilerConfig.getAspectPath());
// Process the JAVA OPTIONS MAP
Map jom = compilerConfig.getJavaOptionsMap();
if (jom != null) {
String version = (String) jom.get(CompilerOptions.OPTION_Compliance);
if (version != null && (version.equals(CompilerOptions.VERSION_1_5) || version.equals(CompilerOptions.VERSION_1_6))) {
config.setBehaveInJava5Way(true);
}
config.getOptions().set(jom);
}
// Process the NON-STANDARD COMPILER OPTIONS
configureNonStandardOptions(config);
compilerConfig.configurationRead();
ISourceLocation location = null;
if (config.getConfigFile() != null) {
location = new SourceLocation(config.getConfigFile(), 0);
}
String message = parser.getOtherMessages(true);
if (null != message) {
IMessage m = new Message(message, IMessage.ERROR, null, location);
handler.handleMessage(m);
}
// always force model generation in AJDE
config.setGenerateModelMode(true);
// always be in incremental mode in AJDE
config.setIncrementalMode(true);
// always force proceedOnError in AJDE
config.setProceedOnError(true);
return config;
}