]> source.dussan.org Git - aspectj.git/commitdiff
set default warning values correctly when passed in 'null'
authoracolyer <acolyer>
Tue, 8 Jun 2004 15:19:01 +0000 (15:19 +0000)
committeracolyer <acolyer>
Tue, 8 Jun 2004 15:19:01 +0000 (15:19 +0000)
ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java

index 1df25e3f7e2437c812f7227e8d24908a0a0486fe..34637e24fd0dcc5f40bcccd7f4e93cea56eea048 100644 (file)
@@ -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