Package org.glassfish.hk2.stub.generator
Class StubProcessor
- java.lang.Object
-
- javax.annotation.processing.AbstractProcessor
-
- org.glassfish.hk2.stub.generator.StubProcessor
-
- All Implemented Interfaces:
javax.annotation.processing.Processor
@SupportedAnnotationTypes("org.glassfish.hk2.utilities.Stub") public class StubProcessor extends javax.annotation.processing.AbstractProcessor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
StubProcessor.ExecutableElementDuplicateFinder
private static class
StubProcessor.TypeMirrorOutputs
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
EXCEPTIONS
private static java.lang.String
NAMED_ANNO
private static java.lang.String
PROVIDED_ANNO
private static java.lang.String
STUB_EXTENSION
-
Constructor Summary
Constructors Constructor Description StubProcessor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.String
arrayTypeToString(javax.lang.model.type.ArrayType arrayType, boolean varArgs, java.util.Map<java.lang.String,java.lang.String> typeMapper)
private void
getAllGenericMappings(javax.lang.model.element.TypeElement clazz, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> retVal, java.util.Map<java.lang.String,java.lang.String> subclassMap)
private java.lang.String
getFullyQualifiedStubName(javax.lang.model.element.TypeElement clazz)
private static java.lang.String
getJustClassPart(java.lang.String fullyQualifiedFileNameWithDots)
javax.lang.model.SourceVersion
getSupportedSourceVersion()
Gets rid of warnings and this code should work with all source versionsprivate static java.lang.String
getTypeName(javax.lang.model.type.TypeMirror mirror)
private static java.lang.String
getTypeName(javax.lang.model.type.TypeMirror mirror, java.util.Map<java.lang.String,java.lang.String> typeMap)
private static boolean
hasTypeParameters(javax.lang.model.element.TypeElement clazz)
private static boolean
isScopeAnnotation(javax.lang.model.element.AnnotationMirror annotation)
boolean
process(java.util.Set<? extends javax.lang.model.element.TypeElement> annotations, javax.annotation.processing.RoundEnvironment roundEnv)
private StubProcessor.TypeMirrorOutputs
typeMirrorToString(javax.lang.model.type.TypeMirror mirror, boolean varArg, java.util.Map<java.lang.String,java.lang.String> typeMap)
private void
writeAbstractMethod(javax.lang.model.element.ExecutableElement abstractMethod, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> genericMapper, java.io.Writer writer, boolean exceptions)
private void
writeJavaFile(javax.lang.model.element.TypeElement clazz, java.util.Set<javax.lang.model.element.ExecutableElement> abstractMethods, java.lang.String name, boolean exceptions, java.util.List<javax.lang.model.element.TypeElement> contractsProvided, java.lang.String scope, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> genericMapper)
private void
writeStub(javax.lang.model.element.TypeElement clazz)
-
-
-
Field Detail
-
NAMED_ANNO
private static final java.lang.String NAMED_ANNO
-
EXCEPTIONS
private static final java.lang.String EXCEPTIONS
- See Also:
- Constant Field Values
-
PROVIDED_ANNO
private static final java.lang.String PROVIDED_ANNO
-
STUB_EXTENSION
private static final java.lang.String STUB_EXTENSION
- See Also:
- Constant Field Values
-
-
Method Detail
-
getSupportedSourceVersion
public javax.lang.model.SourceVersion getSupportedSourceVersion()
Gets rid of warnings and this code should work with all source versions- Specified by:
getSupportedSourceVersion
in interfacejavax.annotation.processing.Processor
- Overrides:
getSupportedSourceVersion
in classjavax.annotation.processing.AbstractProcessor
-
process
public boolean process(java.util.Set<? extends javax.lang.model.element.TypeElement> annotations, javax.annotation.processing.RoundEnvironment roundEnv)
- Specified by:
process
in interfacejavax.annotation.processing.Processor
- Specified by:
process
in classjavax.annotation.processing.AbstractProcessor
-
isScopeAnnotation
private static boolean isScopeAnnotation(javax.lang.model.element.AnnotationMirror annotation)
-
getAllGenericMappings
private void getAllGenericMappings(javax.lang.model.element.TypeElement clazz, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> retVal, java.util.Map<java.lang.String,java.lang.String> subclassMap)
-
hasTypeParameters
private static boolean hasTypeParameters(javax.lang.model.element.TypeElement clazz)
-
writeStub
private void writeStub(javax.lang.model.element.TypeElement clazz) throws java.io.IOException
- Throws:
java.io.IOException
-
getFullyQualifiedStubName
private java.lang.String getFullyQualifiedStubName(javax.lang.model.element.TypeElement clazz)
-
getJustClassPart
private static java.lang.String getJustClassPart(java.lang.String fullyQualifiedFileNameWithDots)
-
writeJavaFile
private void writeJavaFile(javax.lang.model.element.TypeElement clazz, java.util.Set<javax.lang.model.element.ExecutableElement> abstractMethods, java.lang.String name, boolean exceptions, java.util.List<javax.lang.model.element.TypeElement> contractsProvided, java.lang.String scope, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> genericMapper) throws java.io.IOException
- Throws:
java.io.IOException
-
writeAbstractMethod
private void writeAbstractMethod(javax.lang.model.element.ExecutableElement abstractMethod, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> genericMapper, java.io.Writer writer, boolean exceptions) throws java.io.IOException
- Throws:
java.io.IOException
-
typeMirrorToString
private StubProcessor.TypeMirrorOutputs typeMirrorToString(javax.lang.model.type.TypeMirror mirror, boolean varArg, java.util.Map<java.lang.String,java.lang.String> typeMap) throws java.io.IOException
- Throws:
java.io.IOException
-
arrayTypeToString
private java.lang.String arrayTypeToString(javax.lang.model.type.ArrayType arrayType, boolean varArgs, java.util.Map<java.lang.String,java.lang.String> typeMapper) throws java.io.IOException
- Throws:
java.io.IOException
-
getTypeName
private static java.lang.String getTypeName(javax.lang.model.type.TypeMirror mirror)
-
getTypeName
private static java.lang.String getTypeName(javax.lang.model.type.TypeMirror mirror, java.util.Map<java.lang.String,java.lang.String> typeMap)
-
-