Class TypeStringProvider


  • class TypeStringProvider
    extends java.lang.Object
    Encapsulates routines and various hacks for get relevant strings for the raw types and type parameters, while attempting to resolve unresolved types using source imports.
    • Field Detail

      • startType

        private final javax.lang.model.type.TypeMirror startType
      • element

        private final javax.lang.model.element.Element element
      • typeParameterStrings

        private final java.util.List<java.lang.String> typeParameterStrings
      • buffer

        private java.lang.StringBuilder buffer
      • unresolvedTypeHasOccured

        boolean unresolvedTypeHasOccured
      • hasMaybeUnresolvedYetAfter

        boolean hasMaybeUnresolvedYetAfter
      • hasTypeVariables

        boolean hasTypeVariables
      • rawTypeName

        private java.lang.String rawTypeName
      • returnTypeName

        private java.lang.String returnTypeName
      • ended

        private boolean ended
      • workaroundTypeParameters

        @Nullable
        private java.util.List<java.lang.String> workaroundTypeParameters
      • workaroundTypeString

        @Nullable
        private java.lang.String workaroundTypeString
      • reporter

        private final Reporter reporter
      • allowedTypevars

        private final java.lang.String[] allowedTypevars
      • typevarArguments

        @Nullable
        private final java.lang.String[] typevarArguments
      • elementTypeAnnotations

        @Nullable
        java.lang.String elementTypeAnnotations
      • secondaryElementTypeAnnotation

        @Nullable
        java.lang.String secondaryElementTypeAnnotation
      • processNestedTypeUseAnnotations

        boolean processNestedTypeUseAnnotations
      • forAttribute

        boolean forAttribute
      • nullableTypeAnnotation

        boolean nullableTypeAnnotation
      • unresolvedYetArguments

        private java.util.Set<java.lang.String> unresolvedYetArguments
      • EPHEMERAL_ANNOTATION_NULLABLE

        static final java.lang.String EPHEMERAL_ANNOTATION_NULLABLE
        See Also:
        Constant Field Values
      • EPHEMERAL_ANNOTATION_ALLOW_NULLS

        static final java.lang.String EPHEMERAL_ANNOTATION_ALLOW_NULLS
        See Also:
        Constant Field Values
      • EPHEMERAL_ANNOTATION_SKIP_NULLS

        static final java.lang.String EPHEMERAL_ANNOTATION_SKIP_NULLS
        See Also:
        Constant Field Values
    • Constructor Detail

      • TypeStringProvider

        TypeStringProvider​(Reporter reporter,
                           javax.lang.model.element.Element element,
                           javax.lang.model.type.TypeMirror startType,
                           ImportsTypeStringResolver importsResolver,
                           java.lang.String[] allowedTypevars,
                           @Nullable
                           java.lang.String[] typevarArguments)
    • Method Detail

      • rawTypeName

        java.lang.String rawTypeName()
      • returnTypeName

        java.lang.String returnTypeName()
      • hasSomeUnresovedTypes

        boolean hasSomeUnresovedTypes()
      • typeParameters

        com.google.common.collect.ImmutableList<java.lang.String> typeParameters()
      • process

        void process()
      • appendResolved

        private void appendResolved​(javax.lang.model.type.DeclaredType type)
      • insertTypeAnnotationsIfPresent

        private void insertTypeAnnotationsIfPresent​(javax.lang.model.type.TypeMirror type,
                                                    int typeStart,
                                                    int typeEnd)
      • typeAnnotationsToBuffer

        private java.lang.StringBuilder typeAnnotationsToBuffer​(java.util.List<? extends javax.lang.model.element.AnnotationMirror> annotations,
                                                                boolean nestedTypeUse)
      • tryToUseSourceAsAWorkaround

        private boolean tryToUseSourceAsAWorkaround()
      • computePath

        private java.lang.String computePath​(javax.lang.model.element.ExecutableElement element)
      • resolveTypes

        private java.util.Map.Entry<java.lang.String,​java.util.List<java.lang.String>> resolveTypes​(java.util.Map.Entry<java.lang.String,​java.util.List<java.lang.String>> sourceTypes)
      • caseType

        void caseType​(javax.lang.model.type.TypeMirror type)
      • appendTypeArguments

        private void appendTypeArguments​(javax.lang.model.type.TypeMirror type,
                                         javax.lang.model.type.DeclaredType declaredType)
      • typeAnnotationHandle

        private void typeAnnotationHandle​(javax.lang.model.type.TypeMirror argument)
      • assignElementNullness

        private void assignElementNullness​(java.lang.String annotationString)
      • cutTypeArgument

        private void cutTypeArgument​(javax.lang.model.type.TypeMirror type,
                                     int mark)
      • collectUnresolvedYetArgumentsTo

        void collectUnresolvedYetArgumentsTo​(java.util.Set<java.lang.String> unresolvedYetArguments)