Package com.strobel.reflection.emit
Class TypeBuilder<T>
- java.lang.Object
-
- com.strobel.reflection.MemberInfo
-
- com.strobel.reflection.Type<T>
-
- com.strobel.reflection.emit.TypeBuilder<T>
-
- All Implemented Interfaces:
java.lang.reflect.AnnotatedElement
,java.lang.reflect.Type
public final class TypeBuilder<T> extends Type<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
TypeBuilder.LazyTypes
private static class
TypeBuilder.MethodOverride
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,AnnotationBuilder<? extends java.lang.annotation.Annotation>>
_annotationMap
private ReadOnlyList<AnnotationBuilder<? extends java.lang.annotation.Annotation>>
_annotations
private Type<?>
_baseType
private ConstructorList
_constructors
private java.lang.Class<T>
_declarationSite
private MethodBuilder
_declaringMethod
private TypeBuilder<?>
_declaringType
private static java.lang.invoke.MethodHandle
_defineClass
private Type<?>
_extendsBound
private FieldList
_fields
private java.lang.String
_fullName
private java.lang.Class<T>
_generatedClass
private Type<T>
_generatedType
private int
_genericParameterPosition
private boolean
_hasBeenCreated
private TypeList
_interfaces
private java.lang.String
_internalName
private boolean
_isGenericParameter
private boolean
_isGenericTypeDefinition
private MethodList
_methods
private int
_modifiers
private java.lang.String
_name
private java.lang.Package
_package
private java.lang.invoke.MethodHandles.Lookup
_packageAccess
private java.security.ProtectionDomain
_protectionDomain
private TypeBindings
_typeBindings
(package private) ConstantPool
constantPool
(package private) java.util.ArrayList<ConstructorBuilder>
constructorBuilders
private static java.lang.String
DumpGeneratedClassesProperty
(package private) java.util.ArrayList<FieldBuilder>
fieldBuilders
private static java.lang.String
GeneratedClassOutputPathProperty
(package private) java.util.ArrayList<GenericParameterBuilder<?>>
genericParameterBuilders
(package private) java.util.ArrayList<MethodBuilder>
methodBuilders
(package private) java.util.ArrayList<TypeBuilder.MethodOverride>
methodOverrides
private static MemberFilter
RawMethodMatcher
private static java.lang.String
VerifyGeneratedClassesProperty
-
Fields inherited from class com.strobel.reflection.Type
Bottom, DefaultBinder, DefaultLookup, Delimiter, EmptyConstructors, EmptyFields, EmptyMembers, EmptyMethods, EmptyObjects, EmptyStrings, EmptyTypes, FilterMethodOverride, FilterName, FilterNameIgnoreCase, FilterRawMember, NullType, Value
-
-
Constructor Summary
Constructors Constructor Description TypeBuilder()
TypeBuilder(java.lang.String name, int modifiers)
TypeBuilder(java.lang.String name, int genericParameterPosition, MethodBuilder declaringMethod)
TypeBuilder(java.lang.String name, int genericParameterPosition, TypeBuilder<?> declaringType)
TypeBuilder(java.lang.String name, int modifiers, Type<?> baseType, TypeBuilder<?> declaringType)
TypeBuilder(java.lang.String name, int modifiers, Type<?> baseType, TypeList interfaces)
TypeBuilder(java.lang.String name, int modifiers, Type<?> baseType, TypeList interfaces, java.lang.invoke.MethodHandles.Lookup packageAccess)
TypeBuilder(java.lang.String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType)
TypeBuilder(java.lang.String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType, java.lang.invoke.MethodHandles.Lookup packageAccess)
TypeBuilder(java.lang.String name, int modifiers, java.lang.invoke.MethodHandles.Lookup packageAccess)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <P,R>
Raccept(TypeVisitor<P,R> visitor, P parameter)
void
addCustomAnnotation(AnnotationBuilder<? extends java.lang.annotation.Annotation> annotation)
(package private) void
addMethodToList(MethodBuilder methodBuilder)
java.lang.StringBuilder
appendErasedDescription(java.lang.StringBuilder sb)
java.lang.StringBuilder
appendErasedSignature(java.lang.StringBuilder sb)
java.lang.StringBuilder
appendSignature(java.lang.StringBuilder sb)
private java.lang.annotation.Annotation[]
bakeAnnotations()
private void
createBridgeMethod(TypeBuilder.MethodOverride methodOverride)
private void
createBridgeMethods()
Type<T>
createType()
Type<T>
createType(java.io.File outputFile)
Type<T>
createType(java.io.OutputStream outputStream)
private Type<T>
createTypeNoLock(java.io.OutputStream writeTo)
static java.lang.invoke.MethodHandles.Lookup
defaultPackageAccess()
private static java.lang.invoke.MethodHandle
defineClass()
private static java.lang.invoke.MethodHandle
defineClass0()
FieldBuilder
defineConstant(java.lang.String name, Type<?> type, int modifiers, java.lang.Object constantValue)
ConstructorBuilder
defineConstructor(int modifiers, TypeList parameterTypes)
ConstructorBuilder
defineConstructor(int modifiers, TypeList parameterTypes, TypeList thrownTypes)
ConstructorBuilder
defineDefaultConstructor()
ConstructorBuilder
defineDefaultConstructor(int modifiers)
FieldBuilder
defineField(java.lang.String name, Type<?> type, int modifiers)
private FieldBuilder
defineFieldCore(java.lang.String name, Type<?> type, int modifiers, java.lang.Object constantValue)
GenericParameterBuilder<?>[]
defineGenericParameters(java.lang.String... names)
MethodBuilder
defineMethod(java.lang.String name, int modifiers)
MethodBuilder
defineMethod(java.lang.String name, int modifiers, Type<?> returnType)
MethodBuilder
defineMethod(java.lang.String name, int modifiers, Type<?> returnType, TypeList parameterTypes)
MethodBuilder
defineMethod(java.lang.String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes)
private MethodBuilder
defineMethodCore(java.lang.String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes)
void
defineMethodOverride(MethodInfo override, MethodInfo baseMethod)
MethodBuilder
defineTypeInitializer()
private static Type<?>
erase(Type<?> t)
private static java.lang.invoke.MethodHandles.Lookup
extractPackageAccess(MemberInfo m)
private static MemberInfo
findPackageAccessDeclaration(Type<?> start, Function<Type<?>,Type<?>> next)
<A extends java.lang.annotation.Annotation>
AgetAnnotation(java.lang.Class<A> annotationClass)
java.lang.annotation.Annotation[]
getAnnotations()
Type<? super T>
getBaseType()
protected java.lang.String
getClassFullName()
protected java.lang.String
getClassSimpleName()
(package private) short
getConstantToken(double value)
(package private) short
getConstantToken(float value)
(package private) short
getConstantToken(int value)
(package private) short
getConstantToken(long value)
ConstructorInfo
getConstructor(java.util.Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes)
ConstructorList
getConstructors(java.util.Set<BindingFlags> bindingFlags)
ReadOnlyList<AnnotationBuilder<? extends java.lang.annotation.Annotation>>
getCustomAnnotations()
java.lang.annotation.Annotation[]
getDeclaredAnnotations()
MethodBase
getDeclaringMethod()
TypeBuilder<?>
getDeclaringType()
private java.io.OutputStream
getDefaultOutputStream()
java.lang.Class<T>
getErasedClass()
TypeList
getExplicitInterfaces()
Type<?>
getExtendsBound()
FieldInfo
getField(java.lang.String name, java.util.Set<BindingFlags> bindingFlags)
FieldList
getFields(java.util.Set<BindingFlags> bindingFlags)
(package private) short
getFieldToken(FieldInfo field)
java.lang.String
getFullName()
int
getGenericParameterPosition()
Type<?>
getGenericTypeDefinition()
java.lang.String
getInternalName()
MemberList<?>
getMember(java.lang.String name, java.util.Set<BindingFlags> bindingFlags, java.util.Set<MemberType> memberTypes)
MemberList<?>
getMembers(java.util.Set<BindingFlags> bindingFlags, java.util.Set<MemberType> memberTypes)
MethodInfo
getMethod(java.lang.String name, java.util.Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes)
MethodList
getMethods(java.util.Set<BindingFlags> bindingFlags, CallingConvention callingConvention)
(package private) short
getMethodToken(MethodBase method)
int
getModifiers()
java.lang.String
getName()
Type<?>
getNestedType(java.lang.String fullName, java.util.Set<BindingFlags> bindingFlags)
TypeList
getNestedTypes(java.util.Set<BindingFlags> bindingFlags)
java.lang.Package
getPackage()
Type<?>
getReflectedType()
java.lang.String
getShortName()
(package private) short
getStringToken(java.lang.String value)
protected TypeBindings
getTypeBindings()
(package private) short
getTypeToken(Type<?> type)
(package private) short
getUtf8StringToken(java.lang.String value)
private void
initialize(java.lang.String typeName, int modifiers, Type<?> baseType, TypeList interfaces, TypeBuilder<?> declaringType, java.lang.invoke.MethodHandles.Lookup packageAccess)
private void
initializeAsGenericParameter(java.lang.String name, int position)
boolean
isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
boolean
isAssignableFrom(Type<?> type)
private boolean
isBridgeMethodNeeded(TypeBuilder.MethodOverride methodOverride)
(package private) static boolean
isBridgeMethodNeeded(MethodInfo baseMethod, MethodInfo override)
boolean
isCreated()
boolean
isEquivalentTo(Type<?> other)
boolean
isGenericParameter()
boolean
isGenericType()
boolean
isGenericTypeDefinition()
boolean
isInstance(java.lang.Object o)
protected Type<?>
makeGenericTypeCore(TypeList typeArguments)
private static java.lang.invoke.MethodHandle
mhLookupDefineClass0()
private java.lang.invoke.MethodHandles.Lookup
resolvePackageAccess(java.lang.invoke.MethodHandles.Lookup explicitValue)
void
setBaseType(Type<?> baseType)
void
setInterfaces(TypeList interfaces)
static java.lang.invoke.MethodHandles.Lookup
tryResolvePackageAccessForClass(Type<?> type)
private static java.lang.invoke.MethodHandle
unsafeDefineClass0()
private void
updateExtendsBound()
private void
updateMembersWithGeneratedReferences()
(package private) void
verifyCreated()
(package private) void
verifyNotCreated()
(package private) void
verifyNotGeneric()
-
Methods inherited from class com.strobel.reflection.Type
_appendClassDescription, _appendClassName, _appendClassSignature, _appendErasedClassSignature, appendBriefDescription, appendDescription, appendGenericSignature, appendSimpleDescription, asSuperTypeOf, bottomType, containsGenericParameter, containsGenericParameters, createArrayType, findMembers, forName, forName, getConstructor, getConstructor, getConstructors, getDeclaredConstructors, getDeclaredFields, getDeclaredMethods, getDeclaredTypes, getElementType, getEnumConstants, getEnumNames, getErasedType, getField, getFields, getGenericSignature, getGenericTypeParameters, getInterfaces, getKind, getMember, getMember, getMembers, getMembers, getMembers, getMembers, getMembersOfType, getMemberType, getMethod, getMethod, getMethods, getMethods, getNestedType, getNestedTypes, getSuperBound, getType, getTypeArguments, getUnderlyingType, getUnderlyingTypeCore, hasElementType, hasExtendsBound, hashCode, hasSuperBound, implementsInterface, invalidateCaches, isAbstract, isArray, isBoundedType, isClass, isCompoundType, isEnum, isEquivalentTo, isInterface, isLocalClass, isNested, isPrimitive, isRawType, isSubTypeOf, isSynthetic, isUnbounded, isVisible, isWildcardType, list, list, list, makeArrayType, makeArrayType, makeCompoundType, makeCompoundType, makeExtendsWildcard, makeGenericType, makeGenericType, makeSuperWildcard, makeWildcard, newInstance, nullType, of, substitute, toString, unboundedWildcard
-
Methods inherited from class com.strobel.reflection.MemberInfo
emptyAnnotations, equals, getAnnotationsByType, getBriefDescription, getDeclaredAnnotation, getDeclaredAnnotationsByType, getDescription, getErasedDescription, getErasedSignature, getSignature, getSimpleDescription, isFinal, isNonPublic, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic
-
-
-
-
Field Detail
-
DumpGeneratedClassesProperty
private static final java.lang.String DumpGeneratedClassesProperty
- See Also:
- Constant Field Values
-
GeneratedClassOutputPathProperty
private static final java.lang.String GeneratedClassOutputPathProperty
- See Also:
- Constant Field Values
-
VerifyGeneratedClassesProperty
private static final java.lang.String VerifyGeneratedClassesProperty
- See Also:
- Constant Field Values
-
constantPool
final ConstantPool constantPool
-
constructorBuilders
final java.util.ArrayList<ConstructorBuilder> constructorBuilders
-
methodBuilders
final java.util.ArrayList<MethodBuilder> methodBuilders
-
fieldBuilders
final java.util.ArrayList<FieldBuilder> fieldBuilders
-
genericParameterBuilders
final java.util.ArrayList<GenericParameterBuilder<?>> genericParameterBuilders
-
methodOverrides
final java.util.ArrayList<TypeBuilder.MethodOverride> methodOverrides
-
_name
private java.lang.String _name
-
_fullName
private java.lang.String _fullName
-
_internalName
private java.lang.String _internalName
-
_package
private java.lang.Package _package
-
_baseType
private Type<?> _baseType
-
_constructors
private ConstructorList _constructors
-
_methods
private MethodList _methods
-
_fields
private FieldList _fields
-
_interfaces
private TypeList _interfaces
-
_declaringType
private TypeBuilder<?> _declaringType
-
_declaringMethod
private MethodBuilder _declaringMethod
-
_modifiers
private int _modifiers
-
_hasBeenCreated
private boolean _hasBeenCreated
-
_generatedClass
private java.lang.Class<T> _generatedClass
-
_extendsBound
private Type<?> _extendsBound
-
_genericParameterPosition
private int _genericParameterPosition
-
_isGenericParameter
private boolean _isGenericParameter
-
_isGenericTypeDefinition
private boolean _isGenericTypeDefinition
-
_typeBindings
private TypeBindings _typeBindings
-
_annotations
private ReadOnlyList<AnnotationBuilder<? extends java.lang.annotation.Annotation>> _annotations
-
_annotationMap
private java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,AnnotationBuilder<? extends java.lang.annotation.Annotation>> _annotationMap
-
_protectionDomain
private final java.security.ProtectionDomain _protectionDomain
-
_declarationSite
private final java.lang.Class<T> _declarationSite
-
_packageAccess
private java.lang.invoke.MethodHandles.Lookup _packageAccess
-
RawMethodMatcher
private static final MemberFilter RawMethodMatcher
-
_defineClass
private static java.lang.invoke.MethodHandle _defineClass
-
-
Constructor Detail
-
TypeBuilder
public TypeBuilder(java.lang.String name, int modifiers)
-
TypeBuilder
public TypeBuilder(java.lang.String name, int modifiers, java.lang.invoke.MethodHandles.Lookup packageAccess)
-
TypeBuilder
public TypeBuilder(java.lang.String name, int modifiers, Type<?> baseType, TypeList interfaces)
-
TypeBuilder
public TypeBuilder(java.lang.String name, int modifiers, Type<?> baseType, TypeList interfaces, java.lang.invoke.MethodHandles.Lookup packageAccess)
-
TypeBuilder
TypeBuilder()
-
TypeBuilder
TypeBuilder(java.lang.String name, int genericParameterPosition, TypeBuilder<?> declaringType)
-
TypeBuilder
TypeBuilder(java.lang.String name, int genericParameterPosition, MethodBuilder declaringMethod)
-
TypeBuilder
TypeBuilder(java.lang.String name, int modifiers, Type<?> baseType, TypeBuilder<?> declaringType)
-
TypeBuilder
TypeBuilder(java.lang.String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType)
-
TypeBuilder
TypeBuilder(java.lang.String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType, java.lang.invoke.MethodHandles.Lookup packageAccess)
-
-
Method Detail
-
defaultPackageAccess
public static java.lang.invoke.MethodHandles.Lookup defaultPackageAccess()
-
initializeAsGenericParameter
private void initializeAsGenericParameter(java.lang.String name, int position)
-
initialize
private void initialize(java.lang.String typeName, int modifiers, Type<?> baseType, TypeList interfaces, TypeBuilder<?> declaringType, java.lang.invoke.MethodHandles.Lookup packageAccess)
-
resolvePackageAccess
private java.lang.invoke.MethodHandles.Lookup resolvePackageAccess(java.lang.invoke.MethodHandles.Lookup explicitValue)
-
tryResolvePackageAccessForClass
public static java.lang.invoke.MethodHandles.Lookup tryResolvePackageAccessForClass(Type<?> type)
-
extractPackageAccess
private static java.lang.invoke.MethodHandles.Lookup extractPackageAccess(MemberInfo m)
-
findPackageAccessDeclaration
private static MemberInfo findPackageAccessDeclaration(Type<?> start, Function<Type<?>,Type<?>> next)
-
setInterfaces
public void setInterfaces(TypeList interfaces)
-
setBaseType
public void setBaseType(Type<?> baseType)
-
updateExtendsBound
private void updateExtendsBound()
-
verifyNotCreated
void verifyNotCreated()
-
verifyCreated
void verifyCreated()
-
verifyNotGeneric
void verifyNotGeneric()
-
getPackage
public java.lang.Package getPackage()
- Overrides:
getPackage
in classType<T>
-
getReflectedType
public Type<?> getReflectedType()
- Overrides:
getReflectedType
in classMemberInfo
-
getDeclaringMethod
public MethodBase getDeclaringMethod()
- Overrides:
getDeclaringMethod
in classType<T>
-
getClassSimpleName
protected java.lang.String getClassSimpleName()
- Overrides:
getClassSimpleName
in classType<T>
-
getClassFullName
protected java.lang.String getClassFullName()
- Overrides:
getClassFullName
in classType<T>
-
getShortName
public java.lang.String getShortName()
- Overrides:
getShortName
in classType<T>
-
getFullName
public java.lang.String getFullName()
- Overrides:
getFullName
in classType<T>
-
getInternalName
public java.lang.String getInternalName()
- Overrides:
getInternalName
in classType<T>
-
appendErasedDescription
public java.lang.StringBuilder appendErasedDescription(java.lang.StringBuilder sb)
- Overrides:
appendErasedDescription
in classType<T>
-
appendErasedSignature
public java.lang.StringBuilder appendErasedSignature(java.lang.StringBuilder sb)
- Overrides:
appendErasedSignature
in classType<T>
-
appendSignature
public java.lang.StringBuilder appendSignature(java.lang.StringBuilder sb)
- Overrides:
appendSignature
in classType<T>
-
getBaseType
public Type<? super T> getBaseType()
- Overrides:
getBaseType
in classType<T>
-
getExplicitInterfaces
public TypeList getExplicitInterfaces()
- Overrides:
getExplicitInterfaces
in classType<T>
-
getDeclaringType
public TypeBuilder<?> getDeclaringType()
- Specified by:
getDeclaringType
in classMemberInfo
-
getModifiers
public int getModifiers()
- Specified by:
getModifiers
in classMemberInfo
-
isEquivalentTo
public boolean isEquivalentTo(Type<?> other)
- Overrides:
isEquivalentTo
in classType<T>
-
isInstance
public boolean isInstance(java.lang.Object o)
- Overrides:
isInstance
in classType<T>
-
isGenericParameter
public boolean isGenericParameter()
- Overrides:
isGenericParameter
in classType<T>
-
isGenericType
public boolean isGenericType()
- Overrides:
isGenericType
in classType<T>
-
isGenericTypeDefinition
public boolean isGenericTypeDefinition()
- Overrides:
isGenericTypeDefinition
in classType<T>
-
getGenericParameterPosition
public int getGenericParameterPosition()
- Overrides:
getGenericParameterPosition
in classType<T>
-
getGenericTypeDefinition
public Type<?> getGenericTypeDefinition()
- Overrides:
getGenericTypeDefinition
in classType<T>
-
getTypeBindings
protected TypeBindings getTypeBindings()
- Overrides:
getTypeBindings
in classType<T>
-
getExtendsBound
public Type<?> getExtendsBound()
- Overrides:
getExtendsBound
in classType<T>
-
isAssignableFrom
public boolean isAssignableFrom(Type<?> type)
- Overrides:
isAssignableFrom
in classType<T>
-
getConstructor
public ConstructorInfo getConstructor(java.util.Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes)
- Overrides:
getConstructor
in classType<T>
-
getConstructors
public ConstructorList getConstructors(java.util.Set<BindingFlags> bindingFlags)
- Overrides:
getConstructors
in classType<T>
-
getMembers
public MemberList<?> getMembers(java.util.Set<BindingFlags> bindingFlags, java.util.Set<MemberType> memberTypes)
- Overrides:
getMembers
in classType<T>
-
getMember
public MemberList<?> getMember(java.lang.String name, java.util.Set<BindingFlags> bindingFlags, java.util.Set<MemberType> memberTypes)
-
getMethod
public MethodInfo getMethod(java.lang.String name, java.util.Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes)
-
getMethods
public MethodList getMethods(java.util.Set<BindingFlags> bindingFlags, CallingConvention callingConvention)
- Overrides:
getMethods
in classType<T>
-
getNestedType
public Type<?> getNestedType(java.lang.String fullName, java.util.Set<BindingFlags> bindingFlags)
- Overrides:
getNestedType
in classType<T>
-
getNestedTypes
public TypeList getNestedTypes(java.util.Set<BindingFlags> bindingFlags)
- Overrides:
getNestedTypes
in classType<T>
-
getFields
public FieldList getFields(java.util.Set<BindingFlags> bindingFlags)
-
getField
public FieldInfo getField(java.lang.String name, java.util.Set<BindingFlags> bindingFlags)
-
getErasedClass
public java.lang.Class<T> getErasedClass()
- Overrides:
getErasedClass
in classType<T>
-
accept
public <P,R> R accept(TypeVisitor<P,R> visitor, P parameter)
-
addCustomAnnotation
public void addCustomAnnotation(AnnotationBuilder<? extends java.lang.annotation.Annotation> annotation)
-
getCustomAnnotations
public ReadOnlyList<AnnotationBuilder<? extends java.lang.annotation.Annotation>> getCustomAnnotations()
-
getAnnotation
public <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A> annotationClass)
- Specified by:
getAnnotation
in interfacejava.lang.reflect.AnnotatedElement
- Overrides:
getAnnotation
in classType<T>
-
getAnnotations
@NotNull public java.lang.annotation.Annotation[] getAnnotations()
- Specified by:
getAnnotations
in interfacejava.lang.reflect.AnnotatedElement
- Overrides:
getAnnotations
in classType<T>
-
bakeAnnotations
private java.lang.annotation.Annotation[] bakeAnnotations()
-
getDeclaredAnnotations
@NotNull public java.lang.annotation.Annotation[] getDeclaredAnnotations()
- Specified by:
getDeclaredAnnotations
in interfacejava.lang.reflect.AnnotatedElement
- Overrides:
getDeclaredAnnotations
in classType<T>
-
isAnnotationPresent
public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
- Specified by:
isAnnotationPresent
in interfacejava.lang.reflect.AnnotatedElement
- Overrides:
isAnnotationPresent
in classType<T>
-
makeGenericTypeCore
protected Type<?> makeGenericTypeCore(TypeList typeArguments)
- Overrides:
makeGenericTypeCore
in classType<T>
-
isCreated
public boolean isCreated()
-
defineConstructor
public ConstructorBuilder defineConstructor(int modifiers, TypeList parameterTypes)
-
defineConstructor
public ConstructorBuilder defineConstructor(int modifiers, TypeList parameterTypes, TypeList thrownTypes)
-
defineDefaultConstructor
public ConstructorBuilder defineDefaultConstructor()
-
defineDefaultConstructor
public ConstructorBuilder defineDefaultConstructor(int modifiers)
-
addMethodToList
void addMethodToList(MethodBuilder methodBuilder)
-
defineMethodOverride
public void defineMethodOverride(MethodInfo override, MethodInfo baseMethod)
-
defineMethod
public MethodBuilder defineMethod(java.lang.String name, int modifiers)
-
defineMethod
public MethodBuilder defineMethod(java.lang.String name, int modifiers, Type<?> returnType)
-
defineMethod
public MethodBuilder defineMethod(java.lang.String name, int modifiers, Type<?> returnType, TypeList parameterTypes)
-
defineMethod
public MethodBuilder defineMethod(java.lang.String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes)
-
defineMethodCore
private MethodBuilder defineMethodCore(java.lang.String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes)
-
defineTypeInitializer
public MethodBuilder defineTypeInitializer()
-
defineConstant
public FieldBuilder defineConstant(java.lang.String name, Type<?> type, int modifiers, java.lang.Object constantValue)
-
defineField
public FieldBuilder defineField(java.lang.String name, Type<?> type, int modifiers)
-
defineFieldCore
private FieldBuilder defineFieldCore(java.lang.String name, Type<?> type, int modifiers, java.lang.Object constantValue)
-
defineGenericParameters
public GenericParameterBuilder<?>[] defineGenericParameters(java.lang.String... names)
-
getTypeToken
short getTypeToken(Type<?> type)
-
getMethodToken
short getMethodToken(MethodBase method)
-
getFieldToken
short getFieldToken(FieldInfo field)
-
getConstantToken
short getConstantToken(int value)
-
getConstantToken
short getConstantToken(long value)
-
getConstantToken
short getConstantToken(float value)
-
getConstantToken
short getConstantToken(double value)
-
getStringToken
short getStringToken(java.lang.String value)
-
getUtf8StringToken
short getUtf8StringToken(java.lang.String value)
-
createTypeNoLock
private Type<T> createTypeNoLock(java.io.OutputStream writeTo) throws java.io.IOException
- Throws:
java.io.IOException
-
createBridgeMethods
private void createBridgeMethods()
-
createBridgeMethod
private void createBridgeMethod(TypeBuilder.MethodOverride methodOverride)
-
isBridgeMethodNeeded
private boolean isBridgeMethodNeeded(TypeBuilder.MethodOverride methodOverride)
-
isBridgeMethodNeeded
static boolean isBridgeMethodNeeded(MethodInfo baseMethod, MethodInfo override)
-
getDefaultOutputStream
private java.io.OutputStream getDefaultOutputStream()
-
updateMembersWithGeneratedReferences
private void updateMembersWithGeneratedReferences()
-
defineClass
private static java.lang.invoke.MethodHandle defineClass()
-
defineClass0
private static java.lang.invoke.MethodHandle defineClass0()
-
mhLookupDefineClass0
private static java.lang.invoke.MethodHandle mhLookupDefineClass0()
-
unsafeDefineClass0
private static java.lang.invoke.MethodHandle unsafeDefineClass0() throws java.lang.ReflectiveOperationException
- Throws:
java.lang.ReflectiveOperationException
-
-