Class StubProcessor

  • All Implemented Interfaces:
    javax.annotation.processing.Processor

    @SupportedAnnotationTypes("org.glassfish.hk2.utilities.Stub")
    public class StubProcessor
    extends javax.annotation.processing.AbstractProcessor
    • 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  
      • Fields inherited from class javax.annotation.processing.AbstractProcessor

        processingEnv
    • 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 versions
      private 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)  
      • Methods inherited from class javax.annotation.processing.AbstractProcessor

        getCompletions, getSupportedAnnotationTypes, getSupportedOptions, init, isInitialized
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • NAMED_ANNO

        private static final java.lang.String NAMED_ANNO
      • PROVIDED_ANNO

        private static final java.lang.String PROVIDED_ANNO
    • Constructor Detail

      • StubProcessor

        public StubProcessor()
    • 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 interface javax.annotation.processing.Processor
        Overrides:
        getSupportedSourceVersion in class javax.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 interface javax.annotation.processing.Processor
        Specified by:
        process in class javax.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)