Merge disparate code for creating JDT compiler options; simple refactor.

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@3647 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
index 79bd184..fca9dfe 100644
--- a/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/javac/JdtCompiler.java
@@ -92,7 +92,7 @@
     public CompilerImpl() {
       super(new INameEnvironmentImpl(),
           DefaultErrorHandlingPolicies.proceedWithAllProblems(),
-          getCompilerOptions(), new ICompilerRequestorImpl(),
+          getCompilerOptions(true), new ICompilerRequestorImpl(),
           new DefaultProblemFactory(Locale.getDefault()));
     }
 
@@ -193,7 +193,8 @@
     return new JdtCompiler().doCompile(units);
   }
 
-  private static CompilerOptions getCompilerOptions() {
+  public static CompilerOptions getCompilerOptions(
+      boolean enableDocCommentSupport) {
     Map<String, String> settings = new HashMap<String, String>();
     settings.put(CompilerOptions.OPTION_LineNumberAttribute,
         CompilerOptions.GENERATE);
@@ -216,8 +217,10 @@
         CompilerOptions.VERSION_1_5);
 
     // This is needed by TypeOracleBuilder to parse metadata.
-    settings.put(CompilerOptions.OPTION_DocCommentSupport,
-        CompilerOptions.ENABLED);
+    if (enableDocCommentSupport) {
+      settings.put(CompilerOptions.OPTION_DocCommentSupport,
+          CompilerOptions.ENABLED);
+    }
     return new CompilerOptions(settings);
   }
 
diff --git a/dev/core/src/com/google/gwt/dev/jdt/AbstractCompiler.java b/dev/core/src/com/google/gwt/dev/jdt/AbstractCompiler.java
index 885ef4b..fcdf196 100644
--- a/dev/core/src/com/google/gwt/dev/jdt/AbstractCompiler.java
+++ b/dev/core/src/com/google/gwt/dev/jdt/AbstractCompiler.java
@@ -20,6 +20,7 @@
 import com.google.gwt.dev.javac.CompilationState;
 import com.google.gwt.dev.javac.CompilationUnit;
 import com.google.gwt.dev.javac.GWTProblem;
+import com.google.gwt.dev.javac.JdtCompiler;
 import com.google.gwt.dev.javac.JdtCompiler.CompilationUnitAdapter;
 import com.google.gwt.dev.javac.impl.Shared;
 import com.google.gwt.dev.util.CharArrayComparator;
@@ -446,33 +447,12 @@
     IErrorHandlingPolicy pol = DefaultErrorHandlingPolicies.proceedWithAllProblems();
     IProblemFactory probFact = new DefaultProblemFactory(Locale.getDefault());
     ICompilerRequestor req = new ICompilerRequestorImpl();
-    Map<String, String> settings = new HashMap<String, String>();
-    settings.put(CompilerOptions.OPTION_LineNumberAttribute,
-        CompilerOptions.GENERATE);
-    settings.put(CompilerOptions.OPTION_SourceFileAttribute,
-        CompilerOptions.GENERATE);
-    /*
-     * Tricks like "boolean stopHere = true;" depend on this setting to work in
-     * hosted mode. In web mode, our compiler should optimize them out once we
-     * do real data flow.
-     */
-    settings.put(CompilerOptions.OPTION_PreserveUnusedLocal,
-        CompilerOptions.PRESERVE);
-    settings.put(CompilerOptions.OPTION_ReportDeprecation,
-        CompilerOptions.IGNORE);
-    settings.put(CompilerOptions.OPTION_LocalVariableAttribute,
-        CompilerOptions.GENERATE);
-    settings.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-    settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-    settings.put(CompilerOptions.OPTION_TargetPlatform,
-        CompilerOptions.VERSION_1_5);
+    CompilerOptions options = JdtCompiler.getCompilerOptions(true);
 
-    // This is needed by TypeOracleBuilder to parse metadata.
-    settings.put(CompilerOptions.OPTION_DocCommentSupport,
-        CompilerOptions.ENABLED);
+    // This is only needed by TypeOracleBuilder to parse metadata.
+    options.docCommentSupport = false;
 
-    compiler = new CompilerImpl(env, pol, new CompilerOptions(settings), req,
-        probFact);
+    compiler = new CompilerImpl(env, pol, options, req, probFact);
   }
 
   protected final CompilationUnitDeclaration[] compile(TreeLogger logger,
diff --git a/dev/core/test/com/google/gwt/dev/javac/impl/JdtBehaviorTest.java b/dev/core/test/com/google/gwt/dev/javac/impl/JdtBehaviorTest.java
index fb4115a..af83fca 100644
--- a/dev/core/test/com/google/gwt/dev/javac/impl/JdtBehaviorTest.java
+++ b/dev/core/test/com/google/gwt/dev/javac/impl/JdtBehaviorTest.java
@@ -15,6 +15,8 @@
  */
 package com.google.gwt.dev.javac.impl;
 
+import com.google.gwt.dev.javac.JdtCompiler;
+
 import junit.framework.TestCase;
 
 import org.eclipse.jdt.core.compiler.CategorizedProblem;
@@ -29,7 +31,6 @@
 import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;
 import org.eclipse.jdt.internal.compiler.env.INameEnvironment;
 import org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer;
-import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
 import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;
 
 import java.util.ArrayList;
@@ -57,8 +58,8 @@
     public CompilerImpl(INameEnvironment environment,
         ICompilerRequestor requestor) {
       super(environment, DefaultErrorHandlingPolicies.proceedWithAllProblems(),
-          getCompilerOptions(), requestor, new DefaultProblemFactory(
-              Locale.getDefault()));
+          JdtCompiler.getCompilerOptions(false), requestor,
+          new DefaultProblemFactory(Locale.getDefault()));
     }
   }
 
@@ -170,34 +171,6 @@
     }
   }
 
-  private static CompilerOptions getCompilerOptions() {
-    Map<String, String> settings = new HashMap<String, String>();
-    settings.put(CompilerOptions.OPTION_LineNumberAttribute,
-        CompilerOptions.GENERATE);
-    settings.put(CompilerOptions.OPTION_SourceFileAttribute,
-        CompilerOptions.GENERATE);
-    /*
-     * Tricks like "boolean stopHere = true;" depend on this setting to work in
-     * hosted mode. In web mode, our compiler should optimize them out once we
-     * do real data flow.
-     */
-    settings.put(CompilerOptions.OPTION_PreserveUnusedLocal,
-        CompilerOptions.PRESERVE);
-    settings.put(CompilerOptions.OPTION_ReportDeprecation,
-        CompilerOptions.IGNORE);
-    settings.put(CompilerOptions.OPTION_LocalVariableAttribute,
-        CompilerOptions.GENERATE);
-    settings.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
-    settings.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
-    settings.put(CompilerOptions.OPTION_TargetPlatform,
-        CompilerOptions.VERSION_1_5);
-
-    // This is needed by TypeOracleBuilder to parse metadata.
-    settings.put(CompilerOptions.OPTION_DocCommentSupport,
-        CompilerOptions.ENABLED);
-    return new CompilerOptions(settings);
-  }
-
   protected Map<String, ClassFile> classFiles = new HashMap<String, ClassFile>();
 
   /**