Interface IJavaTypeFactory


@Ser public interface IJavaTypeFactory
Builder for Java AST types.
  • Method Details

    • getVoid

      IJavaType getVoid()
      Returns:
      the non-type void (pseudo-type)
    • getBoolean

      IJavaType getBoolean()
      Returns:
      the boolean primitive type
    • getByte

      IJavaType getByte()
      Returns:
      the byte primitive type
    • getChar

      IJavaType getChar()
      Returns:
      the char primitive type
    • getShort

      IJavaType getShort()
      Returns:
      the short primitive type
    • getInt

      IJavaType getInt()
      Returns:
      the int primitive type
    • getLong

      IJavaType getLong()
      Returns:
      the long primitive type
    • getFloat

      IJavaType getFloat()
      Returns:
      the float primitive type
    • getDouble

      IJavaType getDouble()
      Returns:
      the double primitive type
    • getSingleSlotWildcard

      IJavaType getSingleSlotWildcard()
      Returns:
      the wildcard type representing any type whose concrete implementation fits on a single VM slot (e.g. boolean, int, reference types, etc.)
    • getDoubleSlotWildcard

      IJavaType getDoubleSlotWildcard()
      Returns:
      the wildcard type representing any type whose concrete implementation fits on two VM slot (e.g. double, long)
    • getSmallIntWildcard

      IJavaType getSmallIntWildcard()
      Returns:
      the wildcard type representing any small integer (byte, char, short, int)
    • getGenericObjectWildcard

      IJavaType getGenericObjectWildcard()
      Returns:
      the wildcard type representing any object type (class, interface, array); do not confuse this wildcard with the extends-Object (? extends Object) wildcard, which is used for classes and interfaces specifically.
    • getJavaLangObject

      IJavaType getJavaLangObject()
      Convenience method.
      Returns:
      the java.lang.Object type
    • getJavaLangClass

      IJavaType getJavaLangClass()
      Convenience method.
      Returns:
      the java.lang.Class type
    • getJavaLangString

      IJavaType getJavaLangString()
      Convenience method.
      Returns:
      the java.lang.String type
    • createType

      IJavaType createType(String signature)
      Create a Java type.
      Parameters:
      signature - internal type name, it can be:
      • The void type: V
      • A primitive type, ie one of: Z, B, C, S, I, J, F, D
      • An object type, eg Lcom/foo/Bar;
      • An array type, eg: [I, [[J, [[[Lcom/Foo/Bar;
      Returns:
      the type
    • createArrayType

      IJavaType createArrayType(IJavaType baseType, int dimensions)
      Create an array type from a base type.
      Parameters:
      baseType - base type a non-array type
      dimensions - dimension count
      Returns:
      an array type, e.g. baseType[][] if dimensions is 2
    • parseType

      IJavaType parseType(String signature)
      Parse a type.
      Parameters:
      signature - internal type name, array accepted; internal form, e.g. [I or [[Ljava/lang/Object;
      Returns:
    • letterToType

      IJavaType letterToType(char typeLetter)
      Parameters:
      typeLetter -
      Returns:
    • primitiveNameToType

      IJavaType primitiveNameToType(String name)
      Retrieve a primtive type from its high-level language name.
      Parameters:
      name - a primitive type name, e.g. "short"
      Returns:
      a primitive type; this method throws on error
    • createWildcardType

      IJavaType createWildcardType(String signature, boolean wildcardExtendsType)
      Create a wildcard reference type.
      Parameters:
      signature - a class or interface type
      wildcardExtendsType - true to generate a wildcard type representing the provided type or any of its sub-types; false to generate a wildcard type representing the provided type or any of its super-types
      Returns:
      a wildcard type representing "? extends T" or "? super T"
    • getTypeInfoProvider

      IDTypeInfoProvider getTypeInfoProvider()
      Retrieve the type information provider, which provides information for additional types provided by the dex modules.
      Returns:
      a type information provider