From b2e2422ea564e71473f5c5a78e8c711167c1a738 Mon Sep 17 00:00:00 2001 From: acolyer Date: Tue, 8 Jun 2004 15:19:01 +0000 Subject: [PATCH] set default warning values correctly when passed in 'null' --- .../ajde/internal/CompilerAdapter.java | 83 ++++++++++++------- 1 file changed, 51 insertions(+), 32 deletions(-) diff --git a/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java b/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java index 1df25e3f7..34637e24f 100644 --- a/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java +++ b/ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java @@ -28,7 +28,21 @@ import org.aspectj.util.LangUtil; import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; public class CompilerAdapter { - + + private static final Set DEFAULT__AJDE_WARNINGS; + + static { + DEFAULT__AJDE_WARNINGS = new HashSet(); + DEFAULT__AJDE_WARNINGS.add(BuildOptionsAdapter.WARN_ASSERT_IDENITIFIER); + DEFAULT__AJDE_WARNINGS.add(BuildOptionsAdapter.WARN_CONSTRUCTOR_NAME); + DEFAULT__AJDE_WARNINGS.add(BuildOptionsAdapter.WARN_DEPRECATION); + DEFAULT__AJDE_WARNINGS.add(BuildOptionsAdapter.WARN_MASKED_CATCH_BLOCKS); + DEFAULT__AJDE_WARNINGS.add(BuildOptionsAdapter.WARN_PACKAGE_DEFAULT_METHOD); + DEFAULT__AJDE_WARNINGS.add(BuildOptionsAdapter.WARN_UNUSED_IMPORTS); +// DEFAULT__AJDE_WARNINGS.put(BuildOptionsAdapter.WARN_); +// DEFAULT__AJDE_WARNINGS.put(BuildOptionsAdapter.WARN_); + } + // private Map optionsMap; private AjBuildManager buildManager = null; private MessageHandlerAdapter messageHandler = null; @@ -151,22 +165,24 @@ public class CompilerAdapter { = CountingMessageHandler.makeCountingMessageHandler(messageHandler); BuildArgParser parser = new BuildArgParser(handler); - AjBuildConfig config = parser.genBuildConfig(args, false, configFile); + AjBuildConfig config = new AjBuildConfig(); + parser.populateBuildConfig(config, args, false, configFile); + configureBuildOptions(config,Ajde.getDefault().getBuildManager().getBuildOptions(),handler); configureProjectOptions(config, Ajde.getDefault().getProjectProperties()); // !!! not what the API intended - // -- get globals, treat as defaults used if no local values - AjBuildConfig global = new AjBuildConfig(); - // AMC refactored into two methods to populate buildConfig from buildOptions and - // project properties - bugzilla 29769. - BuildOptionsAdapter buildOptions - = Ajde.getDefault().getBuildManager().getBuildOptions(); - if (!configureBuildOptions(global, buildOptions, handler)) { - return null; - } - ProjectPropertiesAdapter projectOptions = - Ajde.getDefault().getProjectProperties(); - configureProjectOptions(global, projectOptions); - config.installGlobals(global); +// // -- get globals, treat as defaults used if no local values +// AjBuildConfig global = new AjBuildConfig(); +// // AMC refactored into two methods to populate buildConfig from buildOptions and +// // project properties - bugzilla 29769. +// BuildOptionsAdapter buildOptions +// = Ajde.getDefault().getBuildManager().getBuildOptions(); +// if (!configureBuildOptions(/* global */ config, buildOptions, handler)) { +// return null; +// } +// ProjectPropertiesAdapter projectOptions = +// Ajde.getDefault().getProjectProperties(); +// configureProjectOptions(global, projectOptions); +// config.installGlobals(global); ISourceLocation location = null; if (config.getConfigFile() != null) { @@ -182,7 +198,7 @@ public class CompilerAdapter { // always force model generation in AJDE config.setGenerateModelMode(true); if (Ajde.getDefault().getBuildManager().getBuildOptions().getJavaOptionsMap() != null) { - config.getJavaOptions().putAll(Ajde.getDefault().getBuildManager().getBuildOptions().getJavaOptionsMap()); + config.getOptions().set(Ajde.getDefault().getBuildManager().getBuildOptions().getJavaOptionsMap()); } return config; // return fixupBuildConfig(config); @@ -238,17 +254,17 @@ public class CompilerAdapter { private static boolean configureBuildOptions( AjBuildConfig config, BuildOptionsAdapter options, IMessageHandler handler) { LangUtil.throwIaxIfNull(options, "options"); LangUtil.throwIaxIfNull(config, "config"); - Map javaOptions = config.getJavaOptions(); - LangUtil.throwIaxIfNull(javaOptions, "javaOptions"); + Map optionsToSet = new HashMap(); + LangUtil.throwIaxIfNull(optionsToSet, "javaOptions"); if (options.getSourceOnePointFourMode()) { - javaOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4); - javaOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4); + optionsToSet.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_4); + optionsToSet.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4); } String enc = options.getCharacterEncoding(); if (!LangUtil.isEmpty(enc)) { - javaOptions.put(CompilerOptions.OPTION_Encoding, enc ); + optionsToSet.put(CompilerOptions.OPTION_Encoding, enc ); } String compliance = options.getComplianceLevel(); @@ -257,8 +273,8 @@ public class CompilerAdapter { if ( compliance.equals( BuildOptionsAdapter.VERSION_13 ) ) { version = CompilerOptions.VERSION_1_3; } - javaOptions.put(CompilerOptions.OPTION_Compliance, version ); - javaOptions.put(CompilerOptions.OPTION_Source, version ); + optionsToSet.put(CompilerOptions.OPTION_Compliance, version ); + optionsToSet.put(CompilerOptions.OPTION_Source, version ); } String sourceLevel = options.getSourceCompatibilityLevel(); @@ -268,19 +284,22 @@ public class CompilerAdapter { slVersion = CompilerOptions.VERSION_1_3; } // never set a lower source level than compliance level - String setCompliance = (String) javaOptions.get( CompilerOptions.OPTION_Compliance); + String setCompliance = (String) optionsToSet.get( CompilerOptions.OPTION_Compliance); if ( ! (setCompliance.equals( CompilerOptions.VERSION_1_4 ) && slVersion.equals(CompilerOptions.VERSION_1_3)) ) { - javaOptions.put(CompilerOptions.OPTION_Source, slVersion); + optionsToSet.put(CompilerOptions.OPTION_Source, slVersion); } } Set warnings = options.getWarnings(); if (!LangUtil.isEmpty(warnings)) { // turn off all warnings - disableWarnings( javaOptions ); + disableWarnings( optionsToSet ); // then selectively enable those in the set - enableWarnings( javaOptions, warnings ); + enableWarnings( optionsToSet, warnings ); + } else if (warnings == null) { + // set default warnings on... + enableWarnings( optionsToSet, DEFAULT__AJDE_WARNINGS); } Set debugOptions = options.getDebugLevel(); @@ -305,11 +324,11 @@ public class CompilerAdapter { varAttr = true; } } - if (sourceLine) javaOptions.put(CompilerOptions.OPTION_SourceFileAttribute, + if (sourceLine) optionsToSet.put(CompilerOptions.OPTION_SourceFileAttribute, CompilerOptions.GENERATE); - if (varAttr) javaOptions.put(CompilerOptions.OPTION_LocalVariableAttribute, + if (varAttr) optionsToSet.put(CompilerOptions.OPTION_LocalVariableAttribute, CompilerOptions.GENERATE); - if (lineNo) javaOptions.put(CompilerOptions.OPTION_LineNumberAttribute, + if (lineNo) optionsToSet.put(CompilerOptions.OPTION_LineNumberAttribute, CompilerOptions.GENERATE); } //XXX we can't turn off import errors in 3.0 stream @@ -319,7 +338,7 @@ public class CompilerAdapter { // } if ( options.getPreserveAllLocals() ) { - javaOptions.put( CompilerOptions.OPTION_PreserveUnusedLocal, + optionsToSet.put( CompilerOptions.OPTION_PreserveUnusedLocal, CompilerOptions.PRESERVE); } if ( !config.isIncrementalMode() @@ -327,7 +346,7 @@ public class CompilerAdapter { config.setIncrementalMode(true); } - config.setJavaOptions( javaOptions ); + config.getOptions().set(optionsToSet); String toAdd = options.getNonStandardOptions(); return LangUtil.isEmpty(toAdd) ? true -- 2.39.5