Class Analysis


  • public class Analysis
    extends java.lang.Object
    • Constructor Summary

      Constructors 
      Constructor Description
      Analysis​(javax.annotation.processing.ProcessingEnvironment processingEnv, AnnotationUsage annotationUsage, LogLevel logLevel, TypeSupport typeSupport)  
      Analysis​(javax.annotation.processing.ProcessingEnvironment processingEnv, AnnotationUsage annotationUsage, LogLevel logLevel, TypeSupport typeSupport, java.util.Set<java.lang.String> alternativeIgnore, java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternativeNonNullable, java.util.Map<java.lang.String,​java.lang.String> alternativeAlias, java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternativeMandatory, java.util.Set<java.lang.String> alternativeCreators, java.util.Map<java.lang.String,​java.lang.String> alternativeIndex, UnknownTypes unknownTypes, boolean includeFields, boolean includeBeanMethods, boolean includeExactMethods)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.util.Map<java.lang.String,​StructInfo> analyze()  
      private void analyzeAttribute​(StructInfo info, javax.lang.model.type.TypeMirror originalType, java.lang.String name, Analysis.AccessElements access, java.lang.String target, java.util.Stack<java.lang.String> path, javax.lang.model.element.VariableElement field)  
      private java.util.Map<java.lang.String,​Analysis.PartKind> analyzeParts​(javax.lang.model.type.TypeMirror target)  
      private void analyzePartsRecursively​(javax.lang.model.type.TypeMirror target, java.util.Map<java.lang.String,​Analysis.PartKind> parts, java.util.Set<javax.lang.model.type.TypeMirror> usedTypes)  
      private javax.lang.model.element.AnnotationMirror annotation​(javax.lang.model.element.ExecutableElement read, javax.lang.model.element.ExecutableElement write, javax.lang.model.element.VariableElement field, javax.lang.model.element.VariableElement arg)  
      static java.lang.String beanOrActualName​(java.lang.String name)
      Deprecated.
      static java.lang.String beanOrActualName​(java.lang.String name, boolean isBoolean)  
      private static boolean booleanAnnotationValue​(javax.lang.model.element.AnnotationMirror ann, java.lang.String method, boolean defaultValue)  
      private void checkParentSignatures​(StructInfo info, javax.lang.model.element.TypeElement element, java.util.Set<StructInfo> implementations, java.lang.String signature, java.util.Set<javax.lang.model.element.TypeElement> processed)  
      private void checkRelatedProperty​(javax.lang.model.type.TypeMirror returnType, javax.lang.model.type.DeclaredType discoveredBy, java.lang.String access, javax.lang.model.element.Element inside, javax.lang.model.element.Element property, java.util.Stack<java.lang.String> path)  
      private void checkRelatedPropertyRecursively​(javax.lang.model.type.TypeMirror returnType, javax.lang.model.type.DeclaredType discoveredBy, java.lang.String access, javax.lang.model.element.Element inside, java.util.Stack<java.lang.String> path)  
      private static java.lang.String classDiscriminator​(javax.lang.model.element.AnnotationMirror annotation)  
      private static java.lang.String className​(javax.lang.model.element.AnnotationMirror annotation)  
      (package private) static java.lang.String createTypeSignature​(javax.lang.model.util.Types types, javax.lang.model.type.TypeMirror type, java.util.LinkedHashSet<javax.lang.model.type.TypeMirror> usedTypes, java.util.Map<java.lang.String,​javax.lang.model.type.TypeMirror> genericSignatures)  
      (package private) static void createTypeSignature​(javax.lang.model.util.Types types, javax.lang.model.type.TypeMirror type, java.util.Map<java.lang.String,​javax.lang.model.type.TypeMirror> genericSignatures, java.lang.StringBuilder builder)  
      private static javax.lang.model.element.TypeElement deserializeAs​(javax.lang.model.element.AnnotationMirror annotation)  
      private static <T extends java.lang.Enum<T>>
      T
      enumAnnotationElementValue​(javax.lang.model.element.AnnotationMirror annotation, java.lang.String elementName, java.lang.Class<T> enumClass)  
      private java.lang.String extractReturnType​(javax.lang.model.element.Element element)  
      private void findAllElements​(javax.lang.model.type.TypeMirror type, java.util.Set<javax.lang.model.element.Element> usedTypes, java.util.Set<javax.lang.model.type.TypeMirror> processed)  
      private javax.lang.model.element.ExecutableElement findAnnotatedConstructor​(javax.lang.model.element.Element element, javax.lang.model.type.DeclaredType discoveredBy)  
      private javax.lang.model.element.ExecutableElement findAnnotatedFactory​(javax.lang.model.element.Element element, javax.lang.model.type.DeclaredType discoveredBy, javax.lang.model.element.ExecutableElement factory, BuilderInfo builder)  
      private BuilderInfo findBuilder​(javax.lang.model.element.Element element, javax.lang.model.type.DeclaredType discoveredBy, javax.lang.model.element.ExecutableElement builder)  
      private javax.lang.model.type.TypeMirror findConverter​(javax.lang.model.element.AnnotationMirror dslAnn)  
      private javax.lang.model.type.TypeMirror findConverter​(javax.lang.model.element.Element property)  
      private void findConverters​(javax.lang.model.element.Element el)  
      private javax.lang.model.element.Element findElement​(javax.lang.model.type.TypeMirror type)  
      private javax.lang.model.element.Element findEnumConstantNameSource​(javax.lang.model.element.TypeElement element)  
      private java.util.Map<java.lang.String,​javax.lang.model.type.TypeMirror> findGenericSignatures​(javax.lang.model.type.TypeMirror type)  
      private void findImplementations​(java.util.Collection<StructInfo> structs)  
      private java.util.List<javax.lang.model.element.ExecutableElement> findMatchingConstructors​(javax.lang.model.element.Element element, boolean isMixin)  
      private java.util.Map<java.lang.String,​Analysis.AccessElements> findMatchingResult​(java.util.Map<java.lang.String,​javax.lang.model.element.ExecutableElement> setters, java.util.Map<java.lang.String,​javax.lang.model.element.ExecutableElement> getters, java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments, java.util.Map<java.lang.String,​Analysis.AccessElements> fieldDetails)  
      private java.lang.String findNameAlias​(javax.lang.model.element.Element property, javax.lang.model.element.VariableElement field, javax.lang.model.element.AnnotationMirror dslAnn, java.lang.String member)  
      private void findRelatedReferences()  
      private void findStructs​(javax.lang.model.element.Element el, javax.lang.model.type.DeclaredType discoveredBy, java.lang.String errorMessage, java.util.Stack<java.lang.String> path, javax.lang.model.element.ExecutableElement factory, javax.lang.model.element.ExecutableElement builder)  
      private void getAllTypes​(javax.lang.model.element.TypeElement element, java.util.List<javax.lang.model.element.TypeElement> result, java.util.Set<javax.lang.model.element.TypeElement> processed)  
      private java.lang.String[] getAlternativeNames​(javax.lang.model.element.AnnotationMirror dslAnn)  
      private javax.lang.model.element.AnnotationMirror getAnnotation​(javax.lang.model.element.Element element, javax.lang.model.type.DeclaredType annotationType)  
      private java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> getArguments​(javax.lang.model.element.ExecutableElement element)  
      private java.util.Map<java.lang.String,​Analysis.AccessElements> getBeanProperties​(javax.lang.model.element.TypeElement element, java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments, java.util.Map<java.lang.String,​Analysis.AccessElements> fieldDetails)  
      private java.util.Map<java.lang.String,​Analysis.AccessElements> getBuilderProperties​(javax.lang.model.element.TypeElement element, BuilderInfo builder, boolean withBeans, boolean withExact, boolean withFields)  
      private static java.util.List<java.lang.String> getEnumConstants​(javax.lang.model.element.TypeElement element)  
      private java.util.Map<java.lang.String,​Analysis.AccessElements> getExactProperties​(javax.lang.model.element.TypeElement element, java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments, java.util.Map<java.lang.String,​Analysis.AccessElements> fieldDetails)  
      private java.util.Map<java.lang.String,​Analysis.AccessElements> getFieldDetails​(javax.lang.model.element.TypeElement element)  
      private CompiledJson.Format[] getFormats​(javax.lang.model.element.AnnotationMirror ann)  
      private java.util.Map<java.lang.String,​Analysis.AccessElements> getPublicFields​(javax.lang.model.element.TypeElement element, java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments, java.util.Set<java.lang.String> processed)  
      private java.util.List<javax.lang.model.element.TypeElement> getTypeHierarchy​(javax.lang.model.element.TypeElement element)  
      private boolean hasCustomMarker​(javax.lang.model.element.Element property)  
      boolean hasError()  
      private boolean hasIgnoredAnnotation​(javax.lang.model.element.Element property, javax.lang.model.element.AnnotationMirror dslAnn, javax.lang.model.element.VariableElement field)  
      private boolean hasMandatoryAnnotation​(javax.lang.model.element.Element property, javax.lang.model.element.AnnotationMirror dslAnn)  
      private boolean hasNonNullable​(javax.lang.model.element.Element property, javax.lang.model.element.VariableElement field, javax.lang.model.element.AnnotationMirror dslAnn)  
      private JsonAttribute.IncludePolicy includeToMinimalValue​(javax.lang.model.element.AnnotationMirror annotation)  
      private int index​(javax.lang.model.element.Element property, javax.lang.model.element.AnnotationMirror dslAnn)  
      private boolean isAppendableCollection​(javax.lang.model.element.ExecutableElement getter)  
      private boolean isCompatibileCollection​(javax.lang.model.type.TypeMirror left, javax.lang.model.type.TypeMirror rawCollection)  
      private boolean isCompatibleType​(javax.lang.model.type.TypeMirror left, javax.lang.model.type.TypeMirror right)  
      private boolean isFullMatch​(javax.lang.model.element.AnnotationMirror dslAnn)  
      private static boolean isMinified​(javax.lang.model.element.AnnotationMirror ann)  
      private boolean isRawType​(javax.lang.model.type.TypeMirror target)  
      private boolean isSupportedEnumNameType​(javax.lang.model.element.Element element)  
      private java.lang.String jsonObjectReaderPath​(javax.lang.model.element.Element el, boolean includeErrors)  
      private static java.lang.Boolean matchCustomBoolean​(javax.lang.model.element.AnnotationMirror ann, java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternatives)  
      private static java.lang.Integer matchCustomInteger​(javax.lang.model.element.AnnotationMirror ann, java.util.Map<java.lang.String,​java.lang.String> alternatives)  
      private static java.lang.String matchCustomString​(javax.lang.model.element.AnnotationMirror ann, java.util.Map<java.lang.String,​java.lang.String> alternatives)  
      private NamingStrategy namingStrategy​(javax.lang.model.element.TypeElement element, javax.lang.model.element.AnnotationMirror annotation)  
      private CompiledJson.ObjectFormatPolicy objectFormatPolicyValue​(javax.lang.model.element.AnnotationMirror annotation)  
      static java.lang.String objectName​(java.lang.String type)  
      private CompiledJson.Behavior onUnknownValue​(javax.lang.model.element.AnnotationMirror annotation)  
      private void printError​(java.lang.String message, javax.lang.model.element.Element element)  
      void processAnnotation​(javax.lang.model.type.DeclaredType currentAnnotationType, java.util.Set<? extends javax.lang.model.element.Element> targets)  
      java.util.Map<java.lang.String,​javax.lang.model.element.Element> processConverters​(java.util.Set<? extends javax.lang.model.element.Element> converters)  
      private boolean requiresPublic​(javax.lang.model.element.Element element)  
      private javax.lang.model.element.AnnotationMirror scanClassForAnnotation​(javax.lang.model.element.TypeElement element, javax.lang.model.type.DeclaredType annotationType, javax.lang.model.element.ExecutableElement custom)  
      private CompiledJson.TypeSignature typeSignatureValue​(javax.lang.model.element.AnnotationMirror annotation)  
      (package private) java.lang.String typeWithoutAnnotations​(javax.lang.model.type.TypeMirror type)  
      private javax.lang.model.type.TypeMirror unpackType​(javax.lang.model.type.TypeMirror type)  
      (package private) static javax.lang.model.type.TypeMirror unpackType​(javax.lang.model.type.TypeMirror type, javax.lang.model.util.Types types)  
      private ConverterInfo validateConverter​(javax.lang.model.element.TypeElement converter, javax.lang.model.type.TypeMirror type)  
      private java.lang.String validateDeserializeAs​(javax.lang.model.element.TypeElement source, javax.lang.model.element.TypeElement target)  
      • Methods inherited from class java.lang.Object

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

      • logLevel

        private final LogLevel logLevel
      • includeFields

        private final boolean includeFields
      • includeBeanMethods

        private final boolean includeBeanMethods
      • includeExactMethods

        private final boolean includeExactMethods
      • elements

        private final javax.lang.model.util.Elements elements
      • types

        private final javax.lang.model.util.Types types
      • messager

        private final javax.annotation.processing.Messager messager
      • compiledJsonElement

        public final javax.lang.model.element.TypeElement compiledJsonElement
      • compiledJsonType

        public final javax.lang.model.type.DeclaredType compiledJsonType
      • attributeElement

        public final javax.lang.model.element.TypeElement attributeElement
      • attributeType

        public final javax.lang.model.type.DeclaredType attributeType
      • converterElement

        public final javax.lang.model.element.TypeElement converterElement
      • converterType

        public final javax.lang.model.type.DeclaredType converterType
      • alternativeIgnore

        private final java.util.Set<java.lang.String> alternativeIgnore
      • alternativeNonNullable

        private final java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternativeNonNullable
      • alternativeAlias

        private final java.util.Map<java.lang.String,​java.lang.String> alternativeAlias
      • alternativeMandatory

        private final java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternativeMandatory
      • alternativeCreators

        private final java.util.Set<java.lang.String> alternativeCreators
      • alternativeIndex

        private final java.util.Map<java.lang.String,​java.lang.String> alternativeIndex
      • baseListType

        private final javax.lang.model.type.TypeMirror baseListType
      • baseSetType

        private final javax.lang.model.type.TypeMirror baseSetType
      • baseMapType

        private final javax.lang.model.type.TypeMirror baseMapType
      • structs

        private final java.util.Map<java.lang.String,​StructInfo> structs
      • hasError

        private boolean hasError
      • namingCache

        private static final java.util.Map<java.lang.String,​NamingStrategy> namingCache
    • Constructor Detail

      • Analysis

        public Analysis​(javax.annotation.processing.ProcessingEnvironment processingEnv,
                        AnnotationUsage annotationUsage,
                        LogLevel logLevel,
                        TypeSupport typeSupport)
      • Analysis

        public Analysis​(javax.annotation.processing.ProcessingEnvironment processingEnv,
                        AnnotationUsage annotationUsage,
                        LogLevel logLevel,
                        TypeSupport typeSupport,
                        @Nullable
                        java.util.Set<java.lang.String> alternativeIgnore,
                        @Nullable
                        java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternativeNonNullable,
                        @Nullable
                        java.util.Map<java.lang.String,​java.lang.String> alternativeAlias,
                        @Nullable
                        java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternativeMandatory,
                        @Nullable
                        java.util.Set<java.lang.String> alternativeCreators,
                        @Nullable
                        java.util.Map<java.lang.String,​java.lang.String> alternativeIndex,
                        @Nullable
                        UnknownTypes unknownTypes,
                        boolean includeFields,
                        boolean includeBeanMethods,
                        boolean includeExactMethods)
    • Method Detail

      • hasError

        public boolean hasError()
      • processConverters

        public java.util.Map<java.lang.String,​javax.lang.model.element.Element> processConverters​(java.util.Set<? extends javax.lang.model.element.Element> converters)
      • processAnnotation

        public void processAnnotation​(javax.lang.model.type.DeclaredType currentAnnotationType,
                                      java.util.Set<? extends javax.lang.model.element.Element> targets)
      • analyze

        public java.util.Map<java.lang.String,​StructInfo> analyze()
      • findConverters

        private void findConverters​(javax.lang.model.element.Element el)
      • findElement

        @Nullable
        private javax.lang.model.element.Element findElement​(javax.lang.model.type.TypeMirror type)
      • findAllElements

        private void findAllElements​(javax.lang.model.type.TypeMirror type,
                                     java.util.Set<javax.lang.model.element.Element> usedTypes,
                                     java.util.Set<javax.lang.model.type.TypeMirror> processed)
      • validateConverter

        private ConverterInfo validateConverter​(javax.lang.model.element.TypeElement converter,
                                                javax.lang.model.type.TypeMirror type)
      • getTypeHierarchy

        private java.util.List<javax.lang.model.element.TypeElement> getTypeHierarchy​(javax.lang.model.element.TypeElement element)
      • getAllTypes

        private void getAllTypes​(javax.lang.model.element.TypeElement element,
                                 java.util.List<javax.lang.model.element.TypeElement> result,
                                 java.util.Set<javax.lang.model.element.TypeElement> processed)
      • findRelatedReferences

        private void findRelatedReferences()
      • findGenericSignatures

        private java.util.Map<java.lang.String,​javax.lang.model.type.TypeMirror> findGenericSignatures​(javax.lang.model.type.TypeMirror type)
      • objectName

        public static java.lang.String objectName​(java.lang.String type)
      • unpackType

        private javax.lang.model.type.TypeMirror unpackType​(javax.lang.model.type.TypeMirror type)
      • unpackType

        static javax.lang.model.type.TypeMirror unpackType​(javax.lang.model.type.TypeMirror type,
                                                           javax.lang.model.util.Types types)
      • analyzeAttribute

        private void analyzeAttribute​(StructInfo info,
                                      javax.lang.model.type.TypeMirror originalType,
                                      java.lang.String name,
                                      Analysis.AccessElements access,
                                      java.lang.String target,
                                      java.util.Stack<java.lang.String> path,
                                      @Nullable
                                      javax.lang.model.element.VariableElement field)
      • checkRelatedProperty

        private void checkRelatedProperty​(javax.lang.model.type.TypeMirror returnType,
                                          javax.lang.model.type.DeclaredType discoveredBy,
                                          java.lang.String access,
                                          javax.lang.model.element.Element inside,
                                          javax.lang.model.element.Element property,
                                          java.util.Stack<java.lang.String> path)
      • checkRelatedPropertyRecursively

        private void checkRelatedPropertyRecursively​(javax.lang.model.type.TypeMirror returnType,
                                                     javax.lang.model.type.DeclaredType discoveredBy,
                                                     java.lang.String access,
                                                     javax.lang.model.element.Element inside,
                                                     java.util.Stack<java.lang.String> path)
      • requiresPublic

        private boolean requiresPublic​(javax.lang.model.element.Element element)
      • findStructs

        private void findStructs​(javax.lang.model.element.Element el,
                                 javax.lang.model.type.DeclaredType discoveredBy,
                                 java.lang.String errorMessage,
                                 java.util.Stack<java.lang.String> path,
                                 @Nullable
                                 javax.lang.model.element.ExecutableElement factory,
                                 @Nullable
                                 javax.lang.model.element.ExecutableElement builder)
      • validateDeserializeAs

        @Nullable
        private java.lang.String validateDeserializeAs​(javax.lang.model.element.TypeElement source,
                                                       javax.lang.model.element.TypeElement target)
      • findMatchingConstructors

        @Nullable
        private java.util.List<javax.lang.model.element.ExecutableElement> findMatchingConstructors​(javax.lang.model.element.Element element,
                                                                                                    boolean isMixin)
      • findAnnotatedConstructor

        @Nullable
        private javax.lang.model.element.ExecutableElement findAnnotatedConstructor​(javax.lang.model.element.Element element,
                                                                                    javax.lang.model.type.DeclaredType discoveredBy)
      • findAnnotatedFactory

        @Nullable
        private javax.lang.model.element.ExecutableElement findAnnotatedFactory​(javax.lang.model.element.Element element,
                                                                                javax.lang.model.type.DeclaredType discoveredBy,
                                                                                @Nullable
                                                                                javax.lang.model.element.ExecutableElement factory,
                                                                                @Nullable
                                                                                BuilderInfo builder)
      • findBuilder

        @Nullable
        private BuilderInfo findBuilder​(javax.lang.model.element.Element element,
                                        javax.lang.model.type.DeclaredType discoveredBy,
                                        @Nullable
                                        javax.lang.model.element.ExecutableElement builder)
      • analyzeParts

        private java.util.Map<java.lang.String,​Analysis.PartKind> analyzeParts​(javax.lang.model.type.TypeMirror target)
      • analyzePartsRecursively

        private void analyzePartsRecursively​(javax.lang.model.type.TypeMirror target,
                                             java.util.Map<java.lang.String,​Analysis.PartKind> parts,
                                             java.util.Set<javax.lang.model.type.TypeMirror> usedTypes)
      • isRawType

        private boolean isRawType​(javax.lang.model.type.TypeMirror target)
      • getEnumConstants

        private static java.util.List<java.lang.String> getEnumConstants​(javax.lang.model.element.TypeElement element)
      • findEnumConstantNameSource

        @Nullable
        private javax.lang.model.element.Element findEnumConstantNameSource​(javax.lang.model.element.TypeElement element)
      • isSupportedEnumNameType

        private boolean isSupportedEnumNameType​(javax.lang.model.element.Element element)
      • extractReturnType

        @Nullable
        private java.lang.String extractReturnType​(javax.lang.model.element.Element element)
      • printError

        private void printError​(java.lang.String message,
                                javax.lang.model.element.Element element)
      • jsonObjectReaderPath

        @Nullable
        private java.lang.String jsonObjectReaderPath​(javax.lang.model.element.Element el,
                                                      boolean includeErrors)
      • getArguments

        private java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> getArguments​(@Nullable
                                                                                                            javax.lang.model.element.ExecutableElement element)
      • typeWithoutAnnotations

        java.lang.String typeWithoutAnnotations​(javax.lang.model.type.TypeMirror type)
      • createTypeSignature

        static void createTypeSignature​(javax.lang.model.util.Types types,
                                        javax.lang.model.type.TypeMirror type,
                                        java.util.Map<java.lang.String,​javax.lang.model.type.TypeMirror> genericSignatures,
                                        java.lang.StringBuilder builder)
      • createTypeSignature

        static java.lang.String createTypeSignature​(javax.lang.model.util.Types types,
                                                    javax.lang.model.type.TypeMirror type,
                                                    java.util.LinkedHashSet<javax.lang.model.type.TypeMirror> usedTypes,
                                                    java.util.Map<java.lang.String,​javax.lang.model.type.TypeMirror> genericSignatures)
      • isCompatibleType

        private boolean isCompatibleType​(javax.lang.model.type.TypeMirror left,
                                         javax.lang.model.type.TypeMirror right)
      • isCompatibileCollection

        private boolean isCompatibileCollection​(javax.lang.model.type.TypeMirror left,
                                                javax.lang.model.type.TypeMirror rawCollection)
      • beanOrActualName

        @Deprecated
        public static java.lang.String beanOrActualName​(java.lang.String name)
        Deprecated.
      • beanOrActualName

        public static java.lang.String beanOrActualName​(java.lang.String name,
                                                        boolean isBoolean)
      • getBeanProperties

        private java.util.Map<java.lang.String,​Analysis.AccessElements> getBeanProperties​(javax.lang.model.element.TypeElement element,
                                                                                                java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments,
                                                                                                java.util.Map<java.lang.String,​Analysis.AccessElements> fieldDetails)
      • findMatchingResult

        private java.util.Map<java.lang.String,​Analysis.AccessElements> findMatchingResult​(java.util.Map<java.lang.String,​javax.lang.model.element.ExecutableElement> setters,
                                                                                                 java.util.Map<java.lang.String,​javax.lang.model.element.ExecutableElement> getters,
                                                                                                 java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments,
                                                                                                 java.util.Map<java.lang.String,​Analysis.AccessElements> fieldDetails)
      • isAppendableCollection

        private boolean isAppendableCollection​(javax.lang.model.element.ExecutableElement getter)
      • getExactProperties

        private java.util.Map<java.lang.String,​Analysis.AccessElements> getExactProperties​(javax.lang.model.element.TypeElement element,
                                                                                                 java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments,
                                                                                                 java.util.Map<java.lang.String,​Analysis.AccessElements> fieldDetails)
      • getPublicFields

        private java.util.Map<java.lang.String,​Analysis.AccessElements> getPublicFields​(javax.lang.model.element.TypeElement element,
                                                                                              java.util.Map<java.lang.String,​javax.lang.model.element.VariableElement> arguments,
                                                                                              java.util.Set<java.lang.String> processed)
      • getFieldDetails

        private java.util.Map<java.lang.String,​Analysis.AccessElements> getFieldDetails​(javax.lang.model.element.TypeElement element)
      • getBuilderProperties

        private java.util.Map<java.lang.String,​Analysis.AccessElements> getBuilderProperties​(javax.lang.model.element.TypeElement element,
                                                                                                   BuilderInfo builder,
                                                                                                   boolean withBeans,
                                                                                                   boolean withExact,
                                                                                                   boolean withFields)
      • findImplementations

        private void findImplementations​(java.util.Collection<StructInfo> structs)
      • checkParentSignatures

        private void checkParentSignatures​(StructInfo info,
                                           javax.lang.model.element.TypeElement element,
                                           java.util.Set<StructInfo> implementations,
                                           java.lang.String signature,
                                           java.util.Set<javax.lang.model.element.TypeElement> processed)
      • getAlternativeNames

        @Nullable
        private java.lang.String[] getAlternativeNames​(javax.lang.model.element.AnnotationMirror dslAnn)
      • isFullMatch

        private boolean isFullMatch​(@Nullable
                                    javax.lang.model.element.AnnotationMirror dslAnn)
      • index

        private int index​(javax.lang.model.element.Element property,
                          @Nullable
                          javax.lang.model.element.AnnotationMirror dslAnn)
      • annotation

        @Nullable
        private javax.lang.model.element.AnnotationMirror annotation​(@Nullable
                                                                     javax.lang.model.element.ExecutableElement read,
                                                                     @Nullable
                                                                     javax.lang.model.element.ExecutableElement write,
                                                                     @Nullable
                                                                     javax.lang.model.element.VariableElement field,
                                                                     @Nullable
                                                                     javax.lang.model.element.VariableElement arg)
      • hasIgnoredAnnotation

        private boolean hasIgnoredAnnotation​(javax.lang.model.element.Element property,
                                             @Nullable
                                             javax.lang.model.element.AnnotationMirror dslAnn,
                                             @Nullable
                                             javax.lang.model.element.VariableElement field)
      • scanClassForAnnotation

        @Nullable
        private javax.lang.model.element.AnnotationMirror scanClassForAnnotation​(javax.lang.model.element.TypeElement element,
                                                                                 javax.lang.model.type.DeclaredType annotationType,
                                                                                 @Nullable
                                                                                 javax.lang.model.element.ExecutableElement custom)
      • getAnnotation

        @Nullable
        private javax.lang.model.element.AnnotationMirror getAnnotation​(javax.lang.model.element.Element element,
                                                                        javax.lang.model.type.DeclaredType annotationType)
      • hasNonNullable

        private boolean hasNonNullable​(javax.lang.model.element.Element property,
                                       @Nullable
                                       javax.lang.model.element.VariableElement field,
                                       @Nullable
                                       javax.lang.model.element.AnnotationMirror dslAnn)
      • deserializeAs

        @Nullable
        private static javax.lang.model.element.TypeElement deserializeAs​(javax.lang.model.element.AnnotationMirror annotation)
      • namingStrategy

        @Nullable
        private NamingStrategy namingStrategy​(javax.lang.model.element.TypeElement element,
                                              @Nullable
                                              javax.lang.model.element.AnnotationMirror annotation)
      • classDiscriminator

        private static java.lang.String classDiscriminator​(@Nullable
                                                           javax.lang.model.element.AnnotationMirror annotation)
      • className

        private static java.lang.String className​(@Nullable
                                                  javax.lang.model.element.AnnotationMirror annotation)
      • hasMandatoryAnnotation

        private boolean hasMandatoryAnnotation​(javax.lang.model.element.Element property,
                                               @Nullable
                                               javax.lang.model.element.AnnotationMirror dslAnn)
      • booleanAnnotationValue

        private static boolean booleanAnnotationValue​(javax.lang.model.element.AnnotationMirror ann,
                                                      java.lang.String method,
                                                      boolean defaultValue)
      • enumAnnotationElementValue

        @Nullable
        private static <T extends java.lang.Enum<T>> T enumAnnotationElementValue​(@Nullable
                                                                                  javax.lang.model.element.AnnotationMirror annotation,
                                                                                  java.lang.String elementName,
                                                                                  java.lang.Class<T> enumClass)
      • isMinified

        private static boolean isMinified​(@Nullable
                                          javax.lang.model.element.AnnotationMirror ann)
      • findConverter

        @Nullable
        private javax.lang.model.type.TypeMirror findConverter​(javax.lang.model.element.Element property)
      • findConverter

        @Nullable
        private javax.lang.model.type.TypeMirror findConverter​(@Nullable
                                                               javax.lang.model.element.AnnotationMirror dslAnn)
      • findNameAlias

        @Nullable
        private java.lang.String findNameAlias​(javax.lang.model.element.Element property,
                                               @Nullable
                                               javax.lang.model.element.VariableElement field,
                                               @Nullable
                                               javax.lang.model.element.AnnotationMirror dslAnn,
                                               java.lang.String member)
      • hasCustomMarker

        private boolean hasCustomMarker​(javax.lang.model.element.Element property)
      • matchCustomBoolean

        @Nullable
        private static java.lang.Boolean matchCustomBoolean​(javax.lang.model.element.AnnotationMirror ann,
                                                            java.util.Map<java.lang.String,​java.util.List<Analysis.AnnotationMapping<java.lang.Boolean>>> alternatives)
      • matchCustomString

        @Nullable
        private static java.lang.String matchCustomString​(javax.lang.model.element.AnnotationMirror ann,
                                                          java.util.Map<java.lang.String,​java.lang.String> alternatives)
      • matchCustomInteger

        @Nullable
        private static java.lang.Integer matchCustomInteger​(javax.lang.model.element.AnnotationMirror ann,
                                                            java.util.Map<java.lang.String,​java.lang.String> alternatives)