Class TypeBase

    • Field Detail

      • _arrayComponentClass

        protected final transient IJavaClassInfo _arrayComponentClass
    • Constructor Detail

      • TypeBase

        protected TypeBase​(IJavaClassInfo arrayComponentClass)
      • TypeBase

        protected TypeBase​(Class<?> arrayComponentClass)
      • TypeBase

        protected TypeBase()
    • Method Detail

      • makeArrayType

        protected IType makeArrayType()
      • getEnclosingType

        public IType getEnclosingType()
        Description copied from interface: IType
        Returns the type immediately enclosing this type. If this type is not enclosed, returns null.
        Specified by:
        getEnclosingType in interface IType
      • getGenericType

        public IType getGenericType()
        Description copied from interface: IType
        If this is a parameterized type, returns the generic type this type parameterizes. Otherwise, returns null.
        Specified by:
        getGenericType in interface IType
      • isFinal

        public boolean isFinal()
        Description copied from interface: IType
        True if this type cannot be extended.
        Specified by:
        isFinal in interface IType
      • isInterface

        public boolean isInterface()
        Description copied from interface: IType
        Returns true if this type is an interface.
        Specified by:
        isInterface in interface IType
      • isEnum

        public boolean isEnum()
        Description copied from interface: IType
        Returns true if this type is an enumeration.
        Specified by:
        isEnum in interface IType
      • isParameterizedType

        public boolean isParameterizedType()
        Description copied from interface: IType
        Returns true if this ia a Parameterized Type.

        Note a Parameterzied Type is not the same as a Generic Type. The difference is that a Parameterized Type is a concrete version of a Generic Type. For instance, the class ArrayList is a Generic Type, while the class ArrayList is a Parameterized Type of the the Generic Type ArrayList.

        Specified by:
        isParameterizedType in interface IType
      • getGenericTypeVariables

        public IGenericTypeVariable[] getGenericTypeVariables()
        Description copied from interface: IType
        Returns an array of GenericTypeVariables declared with this Generic Type. Otherwise, returns null if this is not a Generic Type.
        Specified by:
        getGenericTypeVariables in interface IType
      • getParameterizedType

        public IType getParameterizedType​(IType... ofType)
        Description copied from interface: IType
        Assuming this intrinsic type is a Generic type, return the parameterized type associated with the given list of type parameters. If the type has not been created yet, creates the parameterized type. Successive calls to this method having identical parameter types must return the identical parameterized type.
        Specified by:
        getParameterizedType in interface IType
        Parameters:
        ofType - The type parameters.
        Returns:
        The concrete type associated with the type parameters.
      • getTypeParameters

        public IType[] getTypeParameters()
        Description copied from interface: IType
        If this is a parameterized type, returns the specific types used to create this type, null otherwies.
        Specified by:
        getTypeParameters in interface IType
      • isArray

        public boolean isArray()
        Description copied from interface: IType
        True if this is an array.
        Specified by:
        isArray in interface IType
      • isPrimitive

        public boolean isPrimitive()
        Description copied from interface: IType
        True if this type represents a primitive type e.g., Java int, char, etc.
        Specified by:
        isPrimitive in interface IType
      • getArrayLength

        public int getArrayLength​(Object array)
                           throws IllegalArgumentException
        Description copied from interface: IType
        Returns the length of the specified array object.
        Specified by:
        getArrayLength in interface IType
        Parameters:
        array - An array instance of this intrinsic type.
        Returns:
        The length of the array.
        Throws:
        IllegalArgumentException - If the object argument is not an array.
      • getComponentType

        public IType getComponentType()
        Description copied from interface: IType
        If this is an array type, a type representing the component type of the array. Otherwise null.
        Specified by:
        getComponentType in interface IType
      • isMutable

        public boolean isMutable()
        Description copied from interface: IType
        Are intances of this type mutable? Note sometimes it's difficult to determine. For instance, java classes don't contain any information about mutability. In which case we always assume mutable, even when the underlying type may in fact be immutable. E.g., even though java.lang.String is not mutable, its corresponding JavaIntrinsicType will say it is.
        Specified by:
        isMutable in interface IType
        Returns:
        True if this type is mutable.
      • isValid

        public boolean isValid()
        Description copied from interface: IType
        Defines this type if it is not yet fully defined. For instance, if this type has source code associated with it, it must fully compile the source for it to be fully defined.
        Specified by:
        isValid in interface IType
        Returns:
        true if this type is valid.
      • getModifiers

        public int getModifiers()
        Description copied from interface: IType
        Returns the modifiers for this type, encoded in an integer. The modifiers consist of the constants for public, protected, private, final, static, abstract they should be decoded using the methods of class Modifier.
        Specified by:
        getModifiers in interface IType
        See Also:
        Modifier
      • isAbstract

        public boolean isAbstract()
        Specified by:
        isAbstract in interface IType
      • getDisplayName

        public String getDisplayName()
        Description copied from interface: IType
        The display name of this intrinsic type. Often this is simply the same as IType.getName(), but in some cases a type may want to modify it's name for presentation to the user.
        Specified by:
        getDisplayName in interface IType
      • getAllTypesInHierarchy

        public Set<? extends IType> getAllTypesInHierarchy()
        Description copied from interface: IType
        Returns a Set of all IIntrinsicTypes that this class is assignable from, including this class. This includes implemented interfaces and superclasses, recursively up the hieararchy. For array types, this will be a Set of all types that its component type is assignable from.
        Specified by:
        getAllTypesInHierarchy in interface IType
      • loadAllTypesInHierarchy

        protected Set<? extends IType> loadAllTypesInHierarchy()
      • getAllClassesInClassHierarchyAsIntrinsicTypes

        protected static Set<IType> getAllClassesInClassHierarchyAsIntrinsicTypes​(IType type)
      • getArrayVersionsOfEachType

        protected Set<IType> getArrayVersionsOfEachType​(Set<? extends IType> componentTypes)
      • isAssignableFrom

        public boolean isAssignableFrom​(IType type)
        Description copied from interface: IType
        Determines if the type represented by this intrinsic type is either the same as, or is a super-type of the type represented by the specified type parameter.
        Specified by:
        isAssignableFrom in interface IType
      • getArrayType

        public IType getArrayType()
        Description copied from interface: IType
        Make an array type from this type. E.g., String -> String[]
        Specified by:
        getArrayType in interface IType
      • makeArrayInstance

        public Object makeArrayInstance​(int iLength)
        Description copied from interface: IType
        Construct an array instance of specified length.
        Specified by:
        makeArrayInstance in interface IType
      • getArrayComponentClass

        protected IJavaClassInfo getArrayComponentClass()
      • unloadTypeInfo

        public void unloadTypeInfo()
        Description copied from interface: IType
        Unload or nullify any references to this IType's ITypeInfo.
        Specified by:
        unloadTypeInfo in interface IType
      • isDiscarded

        public boolean isDiscarded()
        Description copied from interface: IType
        True if this type has been replaced with a newer version of the same name in the type system.
        Specified by:
        isDiscarded in interface IType
      • setDiscarded

        public void setDiscarded​(boolean bDiscarded)
        Specified by:
        setDiscarded in interface IType
      • isCompoundType

        public boolean isCompoundType()
        Specified by:
        isCompoundType in interface IType
      • loadJavaType

        public IJavaType loadJavaType​(String fullyQualifiedName)