|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.sun.tools.javac.processing.JavacProcessingEnvironment
public class JavacProcessingEnvironment
Objects of this class hold and manage the state needed to support annotation processing.
This is NOT part of any API supported by Sun Microsystems. If you write code that depends on this, you do so at your own risk. This code and its internal interfaces are subject to change or deletion without notice.
| Nested Class Summary | |
|---|---|
private class |
JavacProcessingEnvironment.AnnotationCollector
|
static class |
JavacProcessingEnvironment.ComputeAnnotationSet
Computes the set of annotations on the symbol in question. |
(package private) class |
JavacProcessingEnvironment.DiscoveredProcessors
This class holds information about the processors that have been discoverd so far as well as the means to discover more, if necessary. |
private static class |
JavacProcessingEnvironment.NameProcessIterator
|
(package private) static class |
JavacProcessingEnvironment.ProcessorState
State about how a processor has been used by the tool. |
private class |
JavacProcessingEnvironment.ServiceIterator
Use a service loader appropriate for the platform to provide an iterator over annotations processors. |
| Field Summary | |
|---|---|
private static java.util.regex.Pattern |
allMatches
|
private Context |
context
|
private JavacProcessingEnvironment.DiscoveredProcessors |
discoveredProcs
Holds relevant state history of which processors have been used. |
private JavacElements |
elementUtils
|
private boolean |
fatalErrors
|
private JavacFiler |
filer
|
private boolean |
lint
|
(package private) Log |
log
The log to be used for error reporting. |
private JavacMessager |
messager
|
private JavacMessages |
messages
JavacMessages object used for localization |
private static java.util.regex.Pattern |
noMatches
|
(package private) Options |
options
|
private java.util.Set<java.lang.String> |
platformAnnotations
Annotations implicitly processed and claimed by javac. |
private boolean |
printProcessorInfo
|
private boolean |
printRounds
|
private java.util.Map<java.lang.String,java.lang.String> |
processorOptions
Map of processor-specific options. |
private boolean |
procOnly
|
(package private) Source |
source
Source level of the compile. |
private java.util.Set<Symbol.PackageSymbol> |
specifiedPackages
Set of packages given on command line. |
private static TreeScanner |
treeCleaner
|
private JavacTypes |
typeUtils
|
private java.util.Set<java.lang.String> |
unmatchedProcessorOptions
|
private boolean |
verbose
|
| Constructor Summary | |
|---|---|
JavacProcessingEnvironment(Context context,
java.lang.Iterable<? extends Processor> processors)
|
|
| Method Summary | ||
|---|---|---|
boolean |
atLeastOneProcessor()
|
|
private boolean |
callProcessor(Processor proc,
java.util.Set<? extends TypeElement> tes,
RoundEnvironment renv)
|
|
private static
|
cleanTrees(List<T> nodes)
|
|
void |
close()
Free resources related to annotation processing. |
|
private Context |
contextForNextRound(Context context,
boolean shareNames)
|
|
private void |
discoverAndRunProcs(Context context,
java.util.Set<TypeElement> annotationsPresent,
List<Symbol.ClassSymbol> topLevelClasses,
List<Symbol.PackageSymbol> packageInfoFiles)
|
|
JavaCompiler |
doProcessing(Context context,
List<JCTree.JCCompilationUnit> roots,
List<Symbol.ClassSymbol> classSymbols,
java.lang.Iterable<? extends Symbol.PackageSymbol> pckSymbols)
|
|
private ListBuffer<Symbol.ClassSymbol> |
enterNewClassFiles(Context currentContext)
|
|
private static java.net.URL |
fileToURL(java.io.File file)
Returns the directory or JAR file URL corresponding to the specified local file name. |
|
Context |
getContext()
For internal use by Sun Microsystems only. |
|
JavacElements |
getElementUtils()
Returns an implementation of some utility methods for operating on elements |
|
Filer |
getFiler()
Returns the filer used to create new source, class, or auxiliary files. |
|
java.util.Locale |
getLocale()
Returns the current locale or null if no locale is in
effect. |
|
Messager |
getMessager()
Returns the messager used to report errors, warnings, and other notices. |
|
java.util.Map<java.lang.String,java.lang.String> |
getOptions()
Command line options suitable for presenting to annotation processors. |
|
private List<Symbol.PackageSymbol> |
getPackageInfoFiles(List<? extends JCTree.JCCompilationUnit> units)
|
|
SourceVersion |
getSourceVersion()
Returns the source version that any generated source and class files should conform to. |
|
java.util.Set<Symbol.PackageSymbol> |
getSpecifiedPackages()
|
|
private List<Symbol.ClassSymbol> |
getTopLevelClasses(List<? extends JCTree.JCCompilationUnit> units)
|
|
JavacTypes |
getTypeUtils()
Returns an implementation of some utility methods for operating on types. |
|
private void |
handleException(java.lang.String key,
java.lang.Exception e)
Handle a security exception thrown during initializing the Processor iterator. |
|
private java.util.Iterator<Processor> |
handleServiceLoaderUnavailability(java.lang.String key,
java.lang.Exception e)
Returns an empty processor iterator if no processors are on the relevant path, otherwise if processors are present, logs an error. |
|
static java.util.regex.Pattern |
importStringToPattern(java.lang.String s,
Processor p,
Log log)
Convert import-style string to regex matching that string. |
|
private java.util.Set<java.lang.String> |
initPlatformAnnotations()
|
|
private void |
initProcessorIterator(Context context,
java.lang.Iterable<? extends Processor> processors)
|
|
private java.util.Map<java.lang.String,java.lang.String> |
initProcessorOptions(Context context)
|
|
private java.util.Set<java.lang.String> |
initUnmatchedProcessorOptions()
|
|
static boolean |
isValidOptionName(java.lang.String optionName)
|
|
private boolean |
moreToDo()
|
|
private boolean |
needClassLoader(java.lang.String procNames,
java.lang.Iterable<? extends java.io.File> workingpath)
|
|
static java.net.URL[] |
pathToURLs(java.lang.String path)
Utility method for converting a search path string to an array of directory and JAR file URLs. |
|
private void |
printRoundInfo(java.io.PrintWriter xout,
int roundNumber,
List<Symbol.ClassSymbol> topLevelClasses,
java.util.Set<TypeElement> annotationsPresent,
boolean lastRound)
|
|
private void |
runLastRound(java.io.PrintWriter xout,
int roundNumber,
boolean errorStatus,
TaskListener taskListener)
|
|
java.lang.String |
toString()
|
|
private void |
updateProcessingState(Context currentContext,
boolean lastRound)
|
|
private void |
warnIfUnmatchedOptions()
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
Options options
private final boolean printProcessorInfo
private final boolean printRounds
private final boolean verbose
private final boolean lint
private final boolean procOnly
private final boolean fatalErrors
private final JavacFiler filer
private final JavacMessager messager
private final JavacElements elementUtils
private final JavacTypes typeUtils
private JavacProcessingEnvironment.DiscoveredProcessors discoveredProcs
private final java.util.Map<java.lang.String,java.lang.String> processorOptions
private final java.util.Set<java.lang.String> unmatchedProcessorOptions
private final java.util.Set<java.lang.String> platformAnnotations
private java.util.Set<Symbol.PackageSymbol> specifiedPackages
Log log
Source source
private JavacMessages messages
private Context context
private static TreeScanner treeCleaner
private static final java.util.regex.Pattern allMatches
private static final java.util.regex.Pattern noMatches
| Constructor Detail |
|---|
public JavacProcessingEnvironment(Context context,
java.lang.Iterable<? extends Processor> processors)
| Method Detail |
|---|
private java.util.Set<java.lang.String> initPlatformAnnotations()
private void initProcessorIterator(Context context,
java.lang.Iterable<? extends Processor> processors)
private java.util.Iterator<Processor> handleServiceLoaderUnavailability(java.lang.String key,
java.lang.Exception e)
key - The resource key to use to log an error messagee - If non-null, pass this exception to Abort
private void handleException(java.lang.String key,
java.lang.Exception e)
public boolean atLeastOneProcessor()
private java.util.Map<java.lang.String,java.lang.String> initProcessorOptions(Context context)
private java.util.Set<java.lang.String> initUnmatchedProcessorOptions()
private void discoverAndRunProcs(Context context,
java.util.Set<TypeElement> annotationsPresent,
List<Symbol.ClassSymbol> topLevelClasses,
List<Symbol.PackageSymbol> packageInfoFiles)
private boolean callProcessor(Processor proc,
java.util.Set<? extends TypeElement> tes,
RoundEnvironment renv)
public JavaCompiler doProcessing(Context context,
List<JCTree.JCCompilationUnit> roots,
List<Symbol.ClassSymbol> classSymbols,
java.lang.Iterable<? extends Symbol.PackageSymbol> pckSymbols)
throws java.io.IOException
java.io.IOException
private void runLastRound(java.io.PrintWriter xout,
int roundNumber,
boolean errorStatus,
TaskListener taskListener)
throws java.io.IOException
java.io.IOException
private void updateProcessingState(Context currentContext,
boolean lastRound)
private void warnIfUnmatchedOptions()
private void printRoundInfo(java.io.PrintWriter xout,
int roundNumber,
List<Symbol.ClassSymbol> topLevelClasses,
java.util.Set<TypeElement> annotationsPresent,
boolean lastRound)
private ListBuffer<Symbol.ClassSymbol> enterNewClassFiles(Context currentContext)
public void close()
close in interface java.io.Closeableprivate List<Symbol.ClassSymbol> getTopLevelClasses(List<? extends JCTree.JCCompilationUnit> units)
private List<Symbol.PackageSymbol> getPackageInfoFiles(List<? extends JCTree.JCCompilationUnit> units)
private Context contextForNextRound(Context context,
boolean shareNames)
throws java.io.IOException
java.io.IOException
private boolean needClassLoader(java.lang.String procNames,
java.lang.Iterable<? extends java.io.File> workingpath)
private static <T extends JCTree> List<T> cleanTrees(List<T> nodes)
private boolean moreToDo()
public java.util.Map<java.lang.String,java.lang.String> getOptions()
getOptions in interface ProcessingEnvironmentpublic Messager getMessager()
ProcessingEnvironment
getMessager in interface ProcessingEnvironmentpublic Filer getFiler()
ProcessingEnvironment
getFiler in interface ProcessingEnvironmentpublic JavacElements getElementUtils()
ProcessingEnvironment
getElementUtils in interface ProcessingEnvironmentpublic JavacTypes getTypeUtils()
ProcessingEnvironment
getTypeUtils in interface ProcessingEnvironmentpublic SourceVersion getSourceVersion()
ProcessingEnvironment
getSourceVersion in interface ProcessingEnvironmentProcessor.getSupportedSourceVersion()public java.util.Locale getLocale()
ProcessingEnvironmentnull if no locale is in
effect. The locale can be be used to provide localized
messages.
getLocale in interface ProcessingEnvironmentnull if no locale is in
effectpublic java.util.Set<Symbol.PackageSymbol> getSpecifiedPackages()
public static java.net.URL[] pathToURLs(java.lang.String path)
path - the search path string
private static java.net.URL fileToURL(java.io.File file)
file - the File object
public static java.util.regex.Pattern importStringToPattern(java.lang.String s,
Processor p,
Log log)
public Context getContext()
public java.lang.String toString()
toString in class java.lang.Objectpublic static boolean isValidOptionName(java.lang.String optionName)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||