--- a/langtools/src/share/classes/com/sun/tools/javac/code/Source.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Source.java Thu Sep 30 10:47:12 2010 -0700
@@ -25,11 +25,14 @@
package com.sun.tools.javac.code;
+import java.util.*;
+import javax.lang.model.SourceVersion;
+import static javax.lang.model.SourceVersion.*;
+
import com.sun.tools.javac.util.*;
import com.sun.tools.javac.jvm.Target;
-import javax.lang.model.SourceVersion;
-import static javax.lang.model.SourceVersion.*;
-import java.util.*;
+
+import static com.sun.tools.javac.main.OptionName.*;
/** The source language version accepted.
*
@@ -71,7 +74,7 @@
Source instance = context.get(sourceKey);
if (instance == null) {
Options options = Options.instance(context);
- String sourceString = options.get("-source");
+ String sourceString = options.get(SOURCE);
if (sourceString != null) instance = lookup(sourceString);
if (instance == null) instance = DEFAULT;
context.put(sourceKey, instance);
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java Thu Sep 30 10:47:12 2010 -0700
@@ -119,10 +119,10 @@
allowAnonOuterThis = source.allowAnonOuterThis();
allowStringsInSwitch = source.allowStringsInSwitch();
sourceName = source.name;
- relax = (options.get("-retrofit") != null ||
- options.get("-relax") != null);
- useBeforeDeclarationWarning = options.get("useBeforeDeclarationWarning") != null;
- enableSunApiLintControl = options.get("enableSunApiLintControl") != null;
+ relax = (options.isSet("-retrofit") ||
+ options.isSet("-relax"));
+ useBeforeDeclarationWarning = options.isSet("useBeforeDeclarationWarning");
+ enableSunApiLintControl = options.isSet("enableSunApiLintControl");
}
/** Switch: relax some constraints for retrofit mode.
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java Thu Sep 30 10:47:12 2010 -0700
@@ -25,7 +25,6 @@
package com.sun.tools.javac.comp;
-import com.sun.source.tree.AssignmentTree;
import java.util.*;
import java.util.Set;
@@ -46,6 +45,8 @@
import static com.sun.tools.javac.code.Kinds.*;
import static com.sun.tools.javac.code.TypeTags.*;
+import static com.sun.tools.javac.main.OptionName.*;
+
/** Type checking helper class for the attribution phase.
*
* <p><b>This is NOT part of any supported API.
@@ -99,10 +100,10 @@
allowGenerics = source.allowGenerics();
allowAnnotations = source.allowAnnotations();
allowCovariantReturns = source.allowCovariantReturns();
- complexInference = options.get("-complexinference") != null;
- skipAnnotations = options.get("skipAnnotations") != null;
- warnOnSyntheticConflicts = options.get("warnOnSyntheticConflicts") != null;
- suppressAbortOnBadClassFile = options.get("suppressAbortOnBadClassFile") != null;
+ complexInference = options.isSet(COMPLEXINFERENCE);
+ skipAnnotations = options.isSet("skipAnnotations");
+ warnOnSyntheticConflicts = options.isSet("warnOnSyntheticConflicts");
+ suppressAbortOnBadClassFile = options.isSet("suppressAbortOnBadClassFile");
Target target = Target.instance(context);
syntheticNameChar = target.syntheticNameChar();
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java Thu Sep 30 10:47:12 2010 -0700
@@ -109,7 +109,7 @@
types = Types.instance(context);
Options options = Options.instance(context);
- debugLower = options.get("debuglower") != null;
+ debugLower = options.isSet("debuglower");
pkginfoOpt = PkgInfo.get(options);
}
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Thu Sep 30 10:47:12 2010 -0700
@@ -102,7 +102,7 @@
diags = JCDiagnostic.Factory.instance(context);
target = Target.instance(context);
Options options = Options.instance(context);
- skipAnnotations = options.get("skipAnnotations") != null;
+ skipAnnotations = options.isSet("skipAnnotations");
}
/** A queue for classes whose members still need to be entered into the
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Thu Sep 30 10:47:12 2010 -0700
@@ -110,14 +110,14 @@
boxingEnabled = source.allowBoxing();
varargsEnabled = source.allowVarargs();
Options options = Options.instance(context);
- debugResolve = options.get("debugresolve") != null;
- allowTransitionalJSR292 = options.get("allowTransitionalJSR292") != null;
+ debugResolve = options.isSet("debugresolve");
+ allowTransitionalJSR292 = options.isSet("allowTransitionalJSR292");
Target target = Target.instance(context);
allowMethodHandles = allowTransitionalJSR292 ||
target.hasMethodHandles();
allowInvokeDynamic = (allowTransitionalJSR292 ||
target.hasInvokedynamic()) &&
- options.get("invokedynamic") != null;
+ options.isSet("invokedynamic");
polymorphicSignatureScope = new Scope(syms.noSymbol);
inapplicableMethodException = new InapplicableMethodException(diags);
--- a/langtools/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Thu Sep 30 10:47:12 2010 -0700
@@ -150,8 +150,8 @@
useZipFileIndex = System.getProperty("useJavaUtilZip") == null;// TODO: options.get("useJavaUtilZip") == null;
- mmappedIO = options.get("mmappedIO") != null;
- ignoreSymbolFile = options.get("ignore.symbol.file") != null;
+ mmappedIO = options.isSet("mmappedIO");
+ ignoreSymbolFile = options.isSet("ignore.symbol.file");
}
public JavaFileObject getFileForInput(String name) {
@@ -435,7 +435,7 @@
zdir = new ZipFile(zipFileName);
}
else {
- usePreindexedCache = options.get("usezipindex") != null;
+ usePreindexedCache = options.isSet("usezipindex");
preindexCacheLocation = options.get("java.io.tmpdir");
String optCacheLoc = options.get("cachezipindexdir");
@@ -469,7 +469,7 @@
null,
usePreindexedCache,
preindexCacheLocation,
- options.get("writezipindexfiles") != null));
+ options.isSet("writezipindexfiles")));
}
}
else {
@@ -482,7 +482,7 @@
symbolFilePrefix,
usePreindexedCache,
preindexCacheLocation,
- options.get("writezipindexfiles") != null));
+ options.isSet("writezipindexfiles")));
}
}
} catch (FileNotFoundException ex) {
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Thu Sep 30 10:47:12 2010 -0700
@@ -56,6 +56,8 @@
import static com.sun.tools.javac.jvm.ClassFile.*;
import static com.sun.tools.javac.jvm.ClassFile.Version.*;
+import static com.sun.tools.javac.main.OptionName.*;
+
/** This class provides operations to read a classfile into an internal
* representation. The internal representation is anchored in a
* ClassSymbol which contains in its scope symbol representations
@@ -259,23 +261,23 @@
Options options = Options.instance(context);
annotate = Annotate.instance(context);
- verbose = options.get("-verbose") != null;
- checkClassFile = options.get("-checkclassfile") != null;
+ verbose = options.isSet(VERBOSE);
+ checkClassFile = options.isSet("-checkclassfile");
Source source = Source.instance(context);
allowGenerics = source.allowGenerics();
allowVarargs = source.allowVarargs();
allowAnnotations = source.allowAnnotations();
- saveParameterNames = options.get("save-parameter-names") != null;
- cacheCompletionFailure = options.get("dev") == null;
+ saveParameterNames = options.isSet("save-parameter-names");
+ cacheCompletionFailure = options.isUnset("dev");
preferSource = "source".equals(options.get("-Xprefer"));
completionFailureName =
- (options.get("failcomplete") != null)
+ options.isSet("failcomplete")
? names.fromString(options.get("failcomplete"))
: null;
typevars = new Scope(syms.noSymbol);
- debugJSR308 = options.get("TA:reader") != null;
+ debugJSR308 = options.isSet("TA:reader");
initAttributeReaders();
}
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Thu Sep 30 10:47:12 2010 -0700
@@ -45,8 +45,10 @@
import static com.sun.tools.javac.code.Kinds.*;
import static com.sun.tools.javac.code.TypeTags.*;
import static com.sun.tools.javac.jvm.UninitializedType.*;
+import static com.sun.tools.javac.main.OptionName.*;
import static javax.tools.StandardLocation.CLASS_OUTPUT;
+
/** This class provides operations to map an internal symbol table graph
* rooted in a ClassSymbol into a classfile.
*
@@ -178,15 +180,16 @@
types = Types.instance(context);
fileManager = context.get(JavaFileManager.class);
- debugJSR308 = options.get("TA:writer") != null;
- verbose = options.get("-verbose") != null;
- scramble = options.get("-scramble") != null;
- scrambleAll = options.get("-scrambleAll") != null;
- retrofit = options.get("-retrofit") != null;
- genCrt = options.get("-Xjcov") != null;
- debugstackmap = options.get("debugstackmap") != null;
+ debugJSR308 = options.isSet("TA:writer");
+ verbose = options.isSet(VERBOSE);
+ scramble = options.isSet("-scramble");
+ scrambleAll = options.isSet("-scrambleAll");
+ retrofit = options.isSet("-retrofit");
+ genCrt = options.isSet(XJCOV);
+ debugstackmap = options.isSet("debugstackmap");
- emitSourceFile = options.get("-g:")==null || options.get("-g:source")!=null;
+ emitSourceFile = options.isUnset(G_CUSTOM) ||
+ options.isSet(G_CUSTOM, "source");
String dumpModFlags = options.get("dumpmodifiers");
dumpClassModifiers =
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java Thu Sep 30 10:47:12 2010 -0700
@@ -46,6 +46,7 @@
import static com.sun.tools.javac.code.TypeTags.*;
import static com.sun.tools.javac.jvm.ByteCodes.*;
import static com.sun.tools.javac.jvm.CRTFlags.*;
+import static com.sun.tools.javac.main.OptionName.*;
/** This pass maps flat Java (i.e. without inner classes) to bytecodes.
*
@@ -113,19 +114,19 @@
Options options = Options.instance(context);
lineDebugInfo =
- options.get("-g:") == null ||
- options.get("-g:lines") != null;
+ options.isUnset(G_CUSTOM) ||
+ options.isSet(G_CUSTOM, "lines");
varDebugInfo =
- options.get("-g:") == null
- ? options.get("-g") != null
- : options.get("-g:vars") != null;
- genCrt = options.get("-Xjcov") != null;
- debugCode = options.get("debugcode") != null;
- allowInvokedynamic = target.hasInvokedynamic() || options.get("invokedynamic") != null;
+ options.isUnset(G_CUSTOM)
+ ? options.isSet(G)
+ : options.isSet(G_CUSTOM, "vars");
+ genCrt = options.isSet(XJCOV);
+ debugCode = options.isSet("debugcode");
+ allowInvokedynamic = target.hasInvokedynamic() || options.isSet("invokedynamic");
generateIproxies =
target.requiresIproxy() ||
- options.get("miranda") != null;
+ options.isSet("miranda");
if (target.generateStackMapTable()) {
// ignore cldc because we cannot have both stackmap formats
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Target.java Thu Sep 30 10:47:12 2010 -0700
@@ -31,6 +31,8 @@
import com.sun.tools.javac.code.Symbol;
import com.sun.tools.javac.util.*;
+import static com.sun.tools.javac.main.OptionName.*;
+
/** The classfile version target.
*
* <p><b>This is NOT part of any supported API.
@@ -73,7 +75,7 @@
Target instance = context.get(targetKey);
if (instance == null) {
Options options = Options.instance(context);
- String targetString = options.get("-target");
+ String targetString = options.get(TARGET);
if (targetString != null) instance = lookup(targetString);
if (instance == null) instance = DEFAULT;
context.put(targetKey, instance);
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Thu Sep 30 10:47:12 2010 -0700
@@ -26,45 +26,44 @@
package com.sun.tools.javac.main;
import java.io.*;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.MissingResourceException;
+import java.util.Queue;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.annotation.processing.Processor;
+import javax.lang.model.SourceVersion;
import javax.tools.JavaFileManager;
import javax.tools.JavaFileObject;
import javax.tools.DiagnosticListener;
-import com.sun.tools.javac.file.JavacFileManager;
import com.sun.source.util.TaskEvent;
import com.sun.source.util.TaskListener;
+import com.sun.tools.javac.file.JavacFileManager;
import com.sun.tools.javac.util.*;
import com.sun.tools.javac.code.*;
+import com.sun.tools.javac.code.Symbol.*;
import com.sun.tools.javac.tree.*;
+import com.sun.tools.javac.tree.JCTree.*;
import com.sun.tools.javac.parser.*;
import com.sun.tools.javac.comp.*;
import com.sun.tools.javac.jvm.*;
-
-import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.tree.JCTree.*;
-
import com.sun.tools.javac.processing.*;
-import javax.annotation.processing.Processor;
import static javax.tools.StandardLocation.CLASS_OUTPUT;
+import static com.sun.tools.javac.main.OptionName.*;
import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag.*;
import static com.sun.tools.javac.util.ListBuffer.lb;
-import java.util.HashMap;
-import java.util.Queue;
-import javax.lang.model.SourceVersion;
/** This class could be the main entry point for GJC when GJC is used as a
* component in a larger software system. It provides operations to
@@ -356,22 +355,22 @@
Options options = Options.instance(context);
- verbose = options.get("-verbose") != null;
- sourceOutput = options.get("-printsource") != null; // used to be -s
- stubOutput = options.get("-stubs") != null;
- relax = options.get("-relax") != null;
- printFlat = options.get("-printflat") != null;
- attrParseOnly = options.get("-attrparseonly") != null;
- encoding = options.get("-encoding");
- lineDebugInfo = options.get("-g:") == null ||
- options.get("-g:lines") != null;
- genEndPos = options.get("-Xjcov") != null ||
+ verbose = options.isSet(VERBOSE);
+ sourceOutput = options.isSet(PRINTSOURCE); // used to be -s
+ stubOutput = options.isSet("-stubs");
+ relax = options.isSet("-relax");
+ printFlat = options.isSet("-printflat");
+ attrParseOnly = options.isSet("-attrparseonly");
+ encoding = options.get(ENCODING);
+ lineDebugInfo = options.isUnset(G_CUSTOM) ||
+ options.isSet(G_CUSTOM, "lines");
+ genEndPos = options.isSet(XJCOV) ||
context.get(DiagnosticListener.class) != null;
- devVerbose = options.get("dev") != null;
- processPcks = options.get("process.packages") != null;
- werror = options.get("-Werror") != null;
+ devVerbose = options.isSet("dev");
+ processPcks = options.isSet("process.packages");
+ werror = options.isSet(WERROR);
- verboseCompilePolicy = options.get("verboseCompilePolicy") != null;
+ verboseCompilePolicy = options.isSet("verboseCompilePolicy");
if (attrParseOnly)
compilePolicy = CompilePolicy.ATTR_ONLY;
@@ -381,15 +380,15 @@
implicitSourcePolicy = ImplicitSourcePolicy.decode(options.get("-implicit"));
completionFailureName =
- (options.get("failcomplete") != null)
+ options.isSet("failcomplete")
? names.fromString(options.get("failcomplete"))
: null;
shouldStopPolicy =
- (options.get("shouldStopPolicy") != null)
+ options.isSet("shouldStopPolicy")
? CompileState.valueOf(options.get("shouldStopPolicy"))
: null;
- if (options.get("oldDiags") == null)
+ if (options.isUnset("oldDiags"))
log.setDiagnosticFormatter(RichDiagnosticFormatter.instance(context));
}
@@ -954,7 +953,7 @@
// Process annotations if processing is not disabled and there
// is at least one Processor available.
Options options = Options.instance(context);
- if (options.get("-proc:none") != null) {
+ if (options.isSet(PROC, "none")) {
processAnnotations = false;
} else if (procEnvImpl == null) {
procEnvImpl = new JavacProcessingEnvironment(context, processors);
@@ -1013,7 +1012,7 @@
// annotation processing is to occur with compilation,
// emit a warning.
Options options = Options.instance(context);
- if (options.get("-proc:only") != null) {
+ if (options.isSet(PROC, "only")) {
log.warning("proc.proc-only.requested.no.procs");
todo.clear();
}
@@ -1101,10 +1100,10 @@
Options options = Options.instance(context);
return
explicitAnnotationProcessingRequested ||
- options.get("-processor") != null ||
- options.get("-processorpath") != null ||
- options.get("-proc:only") != null ||
- options.get("-Xprint") != null;
+ options.isSet(PROCESSOR) ||
+ options.isSet(PROCESSORPATH) ||
+ options.isSet(PROC, "only") ||
+ options.isSet(XPRINT);
}
/**
--- a/langtools/src/share/classes/com/sun/tools/javac/main/Main.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/Main.java Thu Sep 30 10:47:12 2010 -0700
@@ -32,6 +32,9 @@
import java.security.DigestInputStream;
import java.security.MessageDigest;
import java.util.MissingResourceException;
+import javax.tools.JavaFileManager;
+import javax.tools.JavaFileObject;
+import javax.annotation.processing.Processor;
import com.sun.tools.javac.code.Source;
import com.sun.tools.javac.file.CacheFSInfo;
@@ -41,9 +44,8 @@
import com.sun.tools.javac.main.RecognizedOptions.OptionHelper;
import com.sun.tools.javac.util.*;
import com.sun.tools.javac.processing.AnnotationProcessingError;
-import javax.tools.JavaFileManager;
-import javax.tools.JavaFileObject;
-import javax.annotation.processing.Processor;
+
+import static com.sun.tools.javac.main.OptionName.*;
/** This class provides a commandline interface to the GJC compiler.
*
@@ -239,16 +241,16 @@
}
}
- if (!checkDirectory("-d"))
+ if (!checkDirectory(D))
return null;
- if (!checkDirectory("-s"))
+ if (!checkDirectory(S))
return null;
- String sourceString = options.get("-source");
+ String sourceString = options.get(SOURCE);
Source source = (sourceString != null)
? Source.lookup(sourceString)
: Source.DEFAULT;
- String targetString = options.get("-target");
+ String targetString = options.get(TARGET);
Target target = (targetString != null)
? Target.lookup(targetString)
: Target.DEFAULT;
@@ -285,7 +287,7 @@
// phase this out with JSR 292 PFD
if ("no".equals(options.get("allowTransitionalJSR292"))) {
options.put("allowTransitionalJSR292", null);
- } else if (target.hasInvokedynamic() && options.get("allowTransitionalJSR292") == null) {
+ } else if (target.hasInvokedynamic() && options.isUnset("allowTransitionalJSR292")) {
options.put("allowTransitionalJSR292", "allowTransitionalJSR292");
}
@@ -300,7 +302,7 @@
return filenames.toList();
}
// where
- private boolean checkDirectory(String optName) {
+ private boolean checkDirectory(OptionName optName) {
String value = options.get(optName);
if (value == null)
return true;
@@ -367,10 +369,10 @@
return EXIT_CMDERR;
} else if (files.isEmpty() && fileObjects.isEmpty() && classnames.isEmpty()) {
// it is allowed to compile nothing if just asking for help or version info
- if (options.get("-help") != null
- || options.get("-X") != null
- || options.get("-version") != null
- || options.get("-fullversion") != null)
+ if (options.isSet(HELP)
+ || options.isSet(X)
+ || options.isSet(VERSION)
+ || options.isSet(FULLVERSION))
return EXIT_OK;
error("err.no.source.files");
return EXIT_CMDERR;
@@ -382,7 +384,7 @@
return EXIT_SYSERR;
}
- boolean forceStdOut = options.get("stdout") != null;
+ boolean forceStdOut = options.isSet("stdout");
if (forceStdOut) {
out.flush();
out = new PrintWriter(System.out, true);
@@ -391,7 +393,7 @@
context.put(Log.outKey, out);
// allow System property in following line as a Mustang legacy
- boolean batchMode = (options.get("nonBatchMode") == null
+ boolean batchMode = (options.isUnset("nonBatchMode")
&& System.getProperty("nonBatchMode") == null);
if (batchMode)
CacheFSInfo.preRegister(context);
@@ -455,7 +457,7 @@
// for buggy compiler error recovery by swallowing thrown
// exceptions.
if (comp == null || comp.errorCount() == 0 ||
- options == null || options.get("dev") != null)
+ options == null || options.isSet("dev"))
bugMessage(ex);
return EXIT_ABNORMAL;
} finally {
@@ -478,7 +480,7 @@
*/
void feMessage(Throwable ex) {
Log.printLines(out, ex.getMessage());
- if (ex.getCause() != null && options.get("dev") != null) {
+ if (ex.getCause() != null && options.isSet("dev")) {
ex.getCause().printStackTrace(out);
}
}
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacFiler.java Thu Sep 30 10:47:12 2010 -0700
@@ -25,14 +25,6 @@
package com.sun.tools.javac.processing;
-import com.sun.tools.javac.util.*;
-import javax.annotation.processing.*;
-import javax.lang.model.SourceVersion;
-import javax.lang.model.element.NestingKind;
-import javax.lang.model.element.Modifier;
-import javax.lang.model.element.Element;
-import java.util.*;
-
import java.io.Closeable;
import java.io.FileNotFoundException;
import java.io.InputStream;
@@ -43,14 +35,26 @@
import java.io.FilterWriter;
import java.io.PrintWriter;
import java.io.IOException;
+import java.util.*;
-import javax.tools.*;
import static java.util.Collections.*;
+import javax.annotation.processing.*;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.NestingKind;
+import javax.lang.model.element.Modifier;
+import javax.lang.model.element.Element;
+import javax.tools.*;
import javax.tools.JavaFileManager.Location;
+
import static javax.tools.StandardLocation.SOURCE_OUTPUT;
import static javax.tools.StandardLocation.CLASS_OUTPUT;
+import com.sun.tools.javac.code.Lint;
+import com.sun.tools.javac.util.*;
+
+import static com.sun.tools.javac.code.Lint.LintCategory.PROCESSING;
+
/**
* The FilerImplementation class must maintain a number of
* constraints. First, multiple attempts to open the same path within
@@ -366,7 +370,7 @@
aggregateGeneratedSourceNames = new LinkedHashSet<String>();
aggregateGeneratedClassNames = new LinkedHashSet<String>();
- lint = (Options.instance(context)).lint("processing");
+ lint = (Lint.instance(context)).isEnabled(PROCESSING);
}
public JavaFileObject createSourceFile(CharSequence name,
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java Thu Sep 30 10:47:12 2010 -0700
@@ -79,6 +79,8 @@
import static javax.tools.StandardLocation.*;
import static com.sun.tools.javac.util.JCDiagnostic.DiagnosticFlag.*;
+import static com.sun.tools.javac.main.OptionName.*;
+import static com.sun.tools.javac.code.Lint.LintCategory.PROCESSING;
/**
* Objects of this class hold and manage the state needed to support
@@ -160,15 +162,14 @@
source = Source.instance(context);
diags = JCDiagnostic.Factory.instance(context);
options = Options.instance(context);
- printProcessorInfo = options.get("-XprintProcessorInfo") != null;
- printRounds = options.get("-XprintRounds") != null;
- verbose = options.get("-verbose") != null;
- lint = options.lint("processing");
- procOnly = options.get("-proc:only") != null ||
- options.get("-Xprint") != null;
- fatalErrors = options.get("fatalEnterError") != null;
- showResolveErrors = options.get("showResolveErrors") != null;
- werror = options.get("-Werror") != null;
+ printProcessorInfo = options.isSet(XPRINTPROCESSORINFO);
+ printRounds = options.isSet(XPRINTROUNDS);
+ verbose = options.isSet(VERBOSE);
+ lint = Lint.instance(context).isEnabled(PROCESSING);
+ procOnly = options.isSet(PROC, "only") || options.isSet(XPRINT);
+ fatalErrors = options.isSet("fatalEnterError");
+ showResolveErrors = options.isSet("showResolveErrors");
+ werror = options.isSet(WERROR);
platformAnnotations = initPlatformAnnotations();
foundTypeProcessors = false;
@@ -200,7 +201,7 @@
Log log = Log.instance(context);
Iterator<? extends Processor> processorIterator;
- if (options.get("-Xprint") != null) {
+ if (options.isSet(XPRINT)) {
try {
Processor processor = PrintingProcessor.class.newInstance();
processorIterator = List.of(processor).iterator();
@@ -213,7 +214,7 @@
} else if (processors != null) {
processorIterator = processors.iterator();
} else {
- String processorNames = options.get("-processor");
+ String processorNames = options.get(PROCESSOR);
JavaFileManager fileManager = context.get(JavaFileManager.class);
try {
// If processorpath is not explicitly set, use the classpath.
@@ -264,7 +265,7 @@
? standardFileManager.getLocation(ANNOTATION_PROCESSOR_PATH)
: standardFileManager.getLocation(CLASS_PATH);
- if (needClassLoader(options.get("-processor"), workingPath) )
+ if (needClassLoader(options.get(PROCESSOR), workingPath) )
handleException(key, e);
} else {
@@ -745,7 +746,7 @@
psi.runContributingProcs(renv);
// Debugging
- if (options.get("displayFilerState") != null)
+ if (options.isSet("displayFilerState"))
filer.displayState();
}
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Log.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Log.java Thu Sep 30 10:47:12 2010 -0700
@@ -35,11 +35,14 @@
import javax.tools.DiagnosticListener;
import javax.tools.JavaFileObject;
+import com.sun.tools.javac.api.DiagnosticFormatter;
+import com.sun.tools.javac.main.OptionName;
import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.api.DiagnosticFormatter;
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
import com.sun.tools.javac.util.JCDiagnostic.DiagnosticType;
+import static com.sun.tools.javac.main.OptionName.*;
+
/** A class for error logs. Reports errors and warnings, and
* keeps track of error numbers and positions.
*
@@ -129,14 +132,14 @@
this.noticeWriter = noticeWriter;
Options options = Options.instance(context);
- this.dumpOnError = options.get("-doe") != null;
- this.promptOnError = options.get("-prompt") != null;
- this.emitWarnings = options.get("-Xlint:none") == null;
- this.suppressNotes = options.get("suppressNotes") != null;
- this.MaxErrors = getIntOption(options, "-Xmaxerrs", getDefaultMaxErrors());
- this.MaxWarnings = getIntOption(options, "-Xmaxwarns", getDefaultMaxWarnings());
+ this.dumpOnError = options.isSet(DOE);
+ this.promptOnError = options.isSet(PROMPT);
+ this.emitWarnings = options.isUnset(XLINT_CUSTOM, "none");
+ this.suppressNotes = options.isSet("suppressNotes");
+ this.MaxErrors = getIntOption(options, XMAXERRS, getDefaultMaxErrors());
+ this.MaxWarnings = getIntOption(options, XMAXWARNS, getDefaultMaxWarnings());
- boolean rawDiagnostics = options.get("rawDiagnostics") != null;
+ boolean rawDiagnostics = options.isSet("rawDiagnostics");
messages = JavacMessages.instance(context);
this.diagFormatter = rawDiagnostics ? new RawDiagnosticFormatter(options) :
new BasicDiagnosticFormatter(options, messages);
@@ -150,7 +153,7 @@
expectDiagKeys = new HashSet<String>(Arrays.asList(ek.split(", *")));
}
// where
- private int getIntOption(Options options, String optionName, int defaultValue) {
+ private int getIntOption(Options options, OptionName optionName, int defaultValue) {
String s = options.get(optionName);
try {
if (s != null) {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Names.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Names.java Thu Sep 30 10:47:12 2010 -0700
@@ -271,7 +271,7 @@
}
protected Name.Table createTable(Options options) {
- boolean useUnsharedTable = options.get("useUnsharedTable") != null;
+ boolean useUnsharedTable = options.isSet("useUnsharedTable");
if (useUnsharedTable)
return new UnsharedNameTable(this);
else
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Options.java Wed Sep 29 23:27:57 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Options.java Thu Sep 30 10:47:12 2010 -0700
@@ -25,8 +25,9 @@
package com.sun.tools.javac.util;
+import java.util.*;
import com.sun.tools.javac.main.OptionName;
-import java.util.*;
+import static com.sun.tools.javac.main.OptionName.*;
/** A table of all command-line options.
* If an option has an argument, the option name is mapped to the argument.
@@ -60,14 +61,62 @@
context.put(optionsKey, this);
}
+ /**
+ * Get the value for an undocumented option.
+ */
public String get(String name) {
return values.get(name);
}
+ /**
+ * Get the value for an option.
+ */
public String get(OptionName name) {
return values.get(name.optionName);
}
+ /**
+ * Check if the value for an undocumented option has been set.
+ */
+ public boolean isSet(String name) {
+ return (values.get(name) != null);
+ }
+
+ /**
+ * Check if the value for an option has been set.
+ */
+ public boolean isSet(OptionName name) {
+ return (values.get(name.optionName) != null);
+ }
+
+ /**
+ * Check if the value for a choice option has been set to a specific value.
+ */
+ public boolean isSet(OptionName name, String value) {
+ return (values.get(name.optionName + value) != null);
+ }
+
+ /**
+ * Check if the value for an undocumented option has not been set.
+ */
+ public boolean isUnset(String name) {
+ return (values.get(name) == null);
+ }
+
+ /**
+ * Check if the value for an option has not been set.
+ */
+ public boolean isUnset(OptionName name) {
+ return (values.get(name.optionName) == null);
+ }
+
+ /**
+ * Check if the value for a choice option has not been set to a specific value.
+ */
+ public boolean isUnset(OptionName name, String value) {
+ return (values.get(name.optionName + value) == null);
+ }
+
public void put(String name, String value) {
values.put(name, value);
}
@@ -92,16 +141,14 @@
return values.size();
}
- static final String LINT = "-Xlint";
-
/** Check for a lint suboption. */
public boolean lint(String s) {
// return true if either the specific option is enabled, or
// they are all enabled without the specific one being
// disabled
return
- get(LINT + ":" + s)!=null ||
- (get(LINT)!=null || get(LINT + ":all")!=null) &&
- get(LINT+":-"+s)==null;
+ isSet(XLINT_CUSTOM, s) ||
+ (isSet(XLINT) || isSet(XLINT_CUSTOM, "all")) &&
+ isUnset(XLINT_CUSTOM, "-" + s);
}
}