Class TypeBuilder<T>
java.lang.Object
com.strobel.reflection.MemberInfo
com.strobel.reflection.Type<T>
com.strobel.reflection.emit.TypeBuilder<T>
- All Implemented Interfaces:
AnnotatedElement, Type
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final classprivate static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Map<Class<? extends Annotation>, AnnotationBuilder<? extends Annotation>> private ReadOnlyList<AnnotationBuilder<? extends Annotation>> private Type<?> private ConstructorListprivate MethodBuilderprivate TypeBuilder<?> private static MethodHandleprivate Type<?> private FieldListprivate Stringprivate intprivate booleanprivate TypeListprivate Stringprivate booleanprivate booleanprivate MethodListprivate intprivate Stringprivate Packageprivate MethodHandles.Lookupprivate final ProtectionDomainprivate TypeBindings(package private) final ConstantPool(package private) final ArrayList<ConstructorBuilder> private static final String(package private) final ArrayList<FieldBuilder> private static final String(package private) final ArrayList<GenericParameterBuilder<?>> (package private) final ArrayList<MethodBuilder> (package private) final ArrayList<TypeBuilder.MethodOverride> private static final MemberFilterprivate static final StringFields inherited from class Type
Bottom, DefaultBinder, DefaultLookup, Delimiter, EmptyConstructors, EmptyFields, EmptyMembers, EmptyMethods, EmptyObjects, EmptyStrings, EmptyTypes, FilterMethodOverride, FilterName, FilterNameIgnoreCase, FilterRawMember, NullType, Value -
Constructor Summary
ConstructorsConstructorDescriptionTypeBuilder(String name, int modifiers) TypeBuilder(String name, int genericParameterPosition, MethodBuilder declaringMethod) TypeBuilder(String name, int genericParameterPosition, TypeBuilder<?> declaringType) TypeBuilder(String name, int modifiers, Type<?> baseType, TypeBuilder<?> declaringType) TypeBuilder(String name, int modifiers, Type<?> baseType, TypeList interfaces) TypeBuilder(String name, int modifiers, Type<?> baseType, TypeList interfaces, MethodHandles.Lookup packageAccess) TypeBuilder(String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType) TypeBuilder(String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType, MethodHandles.Lookup packageAccess) TypeBuilder(String name, int modifiers, MethodHandles.Lookup packageAccess) -
Method Summary
Modifier and TypeMethodDescription<P,R> R accept(TypeVisitor<P, R> visitor, P parameter) voidaddCustomAnnotation(AnnotationBuilder<? extends Annotation> annotation) (package private) voidaddMethodToList(MethodBuilder methodBuilder) private Annotation[]private voidcreateBridgeMethod(TypeBuilder.MethodOverride methodOverride) private voidcreateType(File outputFile) createType(OutputStream outputStream) createTypeNoLock(OutputStream writeTo) static MethodHandles.Lookupprivate static MethodHandleprivate static MethodHandledefineConstant(String name, Type<?> type, int modifiers, Object constantValue) defineConstructor(int modifiers, TypeList parameterTypes) defineConstructor(int modifiers, TypeList parameterTypes, TypeList thrownTypes) defineDefaultConstructor(int modifiers) defineField(String name, Type<?> type, int modifiers) private FieldBuilderdefineFieldCore(String name, Type<?> type, int modifiers, Object constantValue) defineGenericParameters(String... names) defineMethod(String name, int modifiers) defineMethod(String name, int modifiers, Type<?> returnType) defineMethod(String name, int modifiers, Type<?> returnType, TypeList parameterTypes) defineMethod(String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes) private MethodBuilderdefineMethodCore(String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes) voiddefineMethodOverride(MethodInfo override, MethodInfo baseMethod) private static Type<?> private static MethodHandles.Lookupprivate static MemberInfofindPackageAccessDeclaration(Type<?> start, Function<Type<?>, Type<?>> next) <A extends Annotation>
AgetAnnotation(Class<A> annotationClass) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////protected Stringprotected String(package private) shortgetConstantToken(double value) (package private) shortgetConstantToken(float value) (package private) shortgetConstantToken(int value) (package private) shortgetConstantToken(long value) getConstructor(Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes) getConstructors(Set<BindingFlags> bindingFlags) ReadOnlyList<AnnotationBuilder<? extends Annotation>> TypeBuilder<?> private OutputStreamType<?> getField(String name, Set<BindingFlags> bindingFlags) getFields(Set<BindingFlags> bindingFlags) (package private) shortgetFieldToken(FieldInfo field) intType<?> MemberList<?> getMember(String name, Set<BindingFlags> bindingFlags, Set<MemberType> memberTypes) MemberList<?> getMembers(Set<BindingFlags> bindingFlags, Set<MemberType> memberTypes) getMethod(String name, Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes) getMethods(Set<BindingFlags> bindingFlags, CallingConvention callingConvention) (package private) shortgetMethodToken(MethodBase method) intgetName()Type<?> getNestedType(String fullName, Set<BindingFlags> bindingFlags) getNestedTypes(Set<BindingFlags> bindingFlags) Type<?> (package private) shortgetStringToken(String value) protected TypeBindings(package private) shortgetTypeToken(Type<?> type) (package private) shortgetUtf8StringToken(String value) private voidinitialize(String typeName, int modifiers, Type<?> baseType, TypeList interfaces, TypeBuilder<?> declaringType, MethodHandles.Lookup packageAccess) private voidinitializeAsGenericParameter(String name, int position) booleanisAnnotationPresent(Class<? extends Annotation> annotationClass) booleanisAssignableFrom(Type<?> type) private booleanisBridgeMethodNeeded(TypeBuilder.MethodOverride methodOverride) (package private) static booleanisBridgeMethodNeeded(MethodInfo baseMethod, MethodInfo override) booleanbooleanisEquivalentTo(Type<?> other) booleanbooleanbooleanbooleanisInstance(Object o) protected Type<?> makeGenericTypeCore(TypeList typeArguments) private static MethodHandleprivate MethodHandles.LookupresolvePackageAccess(MethodHandles.Lookup explicitValue) voidsetBaseType(Type<?> baseType) voidsetInterfaces(TypeList interfaces) static MethodHandles.LookuptryResolvePackageAccessForClass(Type<?> type) private static MethodHandleprivate voidprivate void(package private) void(package private) void(package private) voidMethods inherited from class 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, unboundedWildcardMethods inherited from class MemberInfo
emptyAnnotations, equals, getAnnotationsByType, getBriefDescription, getDeclaredAnnotation, getDeclaredAnnotationsByType, getDescription, getErasedDescription, getErasedSignature, getSignature, getSimpleDescription, isFinal, isNonPublic, isPackagePrivate, isPrivate, isProtected, isPublic, isStaticMethods inherited from interface Type
getTypeName
-
Field Details
-
DumpGeneratedClassesProperty
- See Also:
-
GeneratedClassOutputPathProperty
- See Also:
-
VerifyGeneratedClassesProperty
- See Also:
-
constantPool
-
constructorBuilders
-
methodBuilders
-
fieldBuilders
-
genericParameterBuilders
-
methodOverrides
-
_name
-
_fullName
-
_internalName
-
_package
-
_baseType
-
_constructors
-
_methods
-
_fields
-
_interfaces
-
_declaringType
-
_declaringMethod
-
_modifiers
private int _modifiers -
_hasBeenCreated
private boolean _hasBeenCreated -
_generatedClass
-
_generatedType
-
_extendsBound
-
_genericParameterPosition
private int _genericParameterPosition -
_isGenericParameter
private boolean _isGenericParameter -
_isGenericTypeDefinition
private boolean _isGenericTypeDefinition -
_typeBindings
-
_annotations
-
_annotationMap
-
_protectionDomain
-
_declarationSite
-
_packageAccess
-
RawMethodMatcher
-
_defineClass
-
-
Constructor Details
-
TypeBuilder
-
TypeBuilder
-
TypeBuilder
-
TypeBuilder
public TypeBuilder(String name, int modifiers, Type<?> baseType, TypeList interfaces, MethodHandles.Lookup packageAccess) -
TypeBuilder
TypeBuilder() -
TypeBuilder
TypeBuilder(String name, int genericParameterPosition, TypeBuilder<?> declaringType) -
TypeBuilder
TypeBuilder(String name, int genericParameterPosition, MethodBuilder declaringMethod) -
TypeBuilder
TypeBuilder(String name, int modifiers, Type<?> baseType, TypeBuilder<?> declaringType) -
TypeBuilder
TypeBuilder(String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType) -
TypeBuilder
TypeBuilder(String name, int modifiers, Type<? super T> baseType, TypeList interfaces, TypeBuilder<?> declaringType, MethodHandles.Lookup packageAccess)
-
-
Method Details
-
defaultPackageAccess
-
initializeAsGenericParameter
-
initialize
private void initialize(String typeName, int modifiers, Type<?> baseType, TypeList interfaces, TypeBuilder<?> declaringType, MethodHandles.Lookup packageAccess) -
resolvePackageAccess
-
tryResolvePackageAccessForClass
-
extractPackageAccess
-
findPackageAccessDeclaration
private static MemberInfo findPackageAccessDeclaration(Type<?> start, Function<Type<?>, Type<?>> next) -
setInterfaces
-
setBaseType
-
updateExtendsBound
private void updateExtendsBound() -
verifyNotCreated
void verifyNotCreated() -
verifyCreated
void verifyCreated() -
verifyNotGeneric
void verifyNotGeneric() -
getPackage
- Overrides:
getPackagein classType<T>
-
getReflectedType
- Overrides:
getReflectedTypein classMemberInfo
-
getDeclaringMethod
- Overrides:
getDeclaringMethodin classType<T>
-
getClassSimpleName
- Overrides:
getClassSimpleNamein classType<T>
-
getClassFullName
- Overrides:
getClassFullNamein classType<T>
-
getShortName
- Overrides:
getShortNamein classType<T>
-
getName
-
getFullName
- Overrides:
getFullNamein classType<T>
-
getInternalName
- Overrides:
getInternalNamein classType<T>
-
appendErasedDescription
- Overrides:
appendErasedDescriptionin classType<T>
-
appendErasedSignature
- Overrides:
appendErasedSignaturein classType<T>
-
appendSignature
- Overrides:
appendSignaturein classType<T>
-
getBaseType
- Overrides:
getBaseTypein classType<T>
-
getExplicitInterfaces
- Overrides:
getExplicitInterfacesin classType<T>
-
getDeclaringType
- Specified by:
getDeclaringTypein classMemberInfo
-
getModifiers
public int getModifiers()- Specified by:
getModifiersin classMemberInfo
-
isEquivalentTo
- Overrides:
isEquivalentToin classType<T>
-
isInstance
- Overrides:
isInstancein classType<T>
-
isGenericParameter
public boolean isGenericParameter()- Overrides:
isGenericParameterin classType<T>
-
isGenericType
public boolean isGenericType()- Overrides:
isGenericTypein classType<T>
-
isGenericTypeDefinition
public boolean isGenericTypeDefinition()- Overrides:
isGenericTypeDefinitionin classType<T>
-
getGenericParameterPosition
public int getGenericParameterPosition()- Overrides:
getGenericParameterPositionin classType<T>
-
getGenericTypeDefinition
- Overrides:
getGenericTypeDefinitionin classType<T>
-
getTypeBindings
- Overrides:
getTypeBindingsin classType<T>
-
getExtendsBound
- Overrides:
getExtendsBoundin classType<T>
-
isAssignableFrom
- Overrides:
isAssignableFromin classType<T>
-
getConstructor
public ConstructorInfo getConstructor(Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes) - Overrides:
getConstructorin classType<T>
-
getConstructors
- Overrides:
getConstructorsin classType<T>
-
getMembers
- Overrides:
getMembersin classType<T>
-
getMember
public MemberList<?> getMember(String name, Set<BindingFlags> bindingFlags, Set<MemberType> memberTypes) -
getMethod
public MethodInfo getMethod(String name, Set<BindingFlags> bindingFlags, CallingConvention callingConvention, Type<?>... parameterTypes) -
getMethods
- Overrides:
getMethodsin classType<T>
-
getNestedType
- Overrides:
getNestedTypein classType<T>
-
getNestedTypes
- Overrides:
getNestedTypesin classType<T>
-
getFields
-
getField
-
getErasedClass
- Overrides:
getErasedClassin classType<T>
-
accept
-
addCustomAnnotation
-
getCustomAnnotations
-
getAnnotation
Description copied from class:Type/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////- Specified by:
getAnnotationin interfaceAnnotatedElement- Overrides:
getAnnotationin classType<T>
-
getAnnotations
- Specified by:
getAnnotationsin interfaceAnnotatedElement- Overrides:
getAnnotationsin classType<T>
-
bakeAnnotations
-
getDeclaredAnnotations
- Specified by:
getDeclaredAnnotationsin interfaceAnnotatedElement- Overrides:
getDeclaredAnnotationsin classType<T>
-
isAnnotationPresent
- Specified by:
isAnnotationPresentin interfaceAnnotatedElement- Overrides:
isAnnotationPresentin classType<T>
-
makeGenericTypeCore
- Overrides:
makeGenericTypeCorein classType<T>
-
isCreated
public boolean isCreated() -
createType
-
createType
-
createType
-
defineConstructor
-
defineConstructor
public ConstructorBuilder defineConstructor(int modifiers, TypeList parameterTypes, TypeList thrownTypes) -
defineDefaultConstructor
-
defineDefaultConstructor
-
addMethodToList
-
defineMethodOverride
-
defineMethod
-
defineMethod
-
defineMethod
public MethodBuilder defineMethod(String name, int modifiers, Type<?> returnType, TypeList parameterTypes) -
defineMethod
public MethodBuilder defineMethod(String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes) -
defineMethodCore
private MethodBuilder defineMethodCore(String name, int modifiers, Type<?> returnType, TypeList parameterTypes, TypeList thrownTypes) -
defineTypeInitializer
-
defineConstant
-
defineField
-
defineFieldCore
private FieldBuilder defineFieldCore(String name, Type<?> type, int modifiers, Object constantValue) -
defineGenericParameters
-
getTypeToken
-
getMethodToken
-
getFieldToken
-
getConstantToken
short getConstantToken(int value) -
getConstantToken
short getConstantToken(long value) -
getConstantToken
short getConstantToken(float value) -
getConstantToken
short getConstantToken(double value) -
getStringToken
-
getUtf8StringToken
-
erase
-
createTypeNoLock
- Throws:
IOException
-
createBridgeMethods
private void createBridgeMethods() -
createBridgeMethod
-
isBridgeMethodNeeded
-
isBridgeMethodNeeded
-
getDefaultOutputStream
-
updateMembersWithGeneratedReferences
private void updateMembersWithGeneratedReferences() -
defineClass
-
defineClass0
-
mhLookupDefineClass0
-
unsafeDefineClass0
- Throws:
ReflectiveOperationException
-