Package io.quarkus.gizmo
Class ClassCreator
- java.lang.Object
-
- io.quarkus.gizmo.ClassCreator
-
- All Implemented Interfaces:
AnnotatedElement,SignatureElement<ClassCreator>,java.lang.AutoCloseable
public class ClassCreator extends java.lang.Object implements java.lang.AutoCloseable, AnnotatedElement, SignatureElement<ClassCreator>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classClassCreator.Builder
-
Field Summary
Fields Modifier and Type Field Description private intaccessprivate java.util.concurrent.atomic.AtomicIntegeraccessorCountprivate java.util.List<AnnotationCreatorImpl>annotationsprivate java.lang.StringclassNameprivate ClassOutputclassOutputprivate BytecodeCreatorImplenclosingprivate java.util.Map<FieldDescriptor,FieldCreatorImpl>fieldsprivate java.lang.String[]interfacesprivate java.util.Map<MethodDescriptor,MethodCreatorImpl>methodsprivate java.lang.Stringsignatureprivate java.lang.StringsuperClassprivate java.util.Map<MethodDescriptor,MethodDescriptor>superclassAccessors
-
Constructor Summary
Constructors Constructor Description ClassCreator(BytecodeCreatorImpl enclosing, ClassOutput classOutput, java.lang.String name, java.lang.String signature, java.lang.String superClass, int access, java.lang.String... interfaces)ClassCreator(ClassOutput classOutput, java.lang.String name, java.lang.String signature, java.lang.String superClass, java.lang.String... interfaces)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AnnotationCreatoraddAnnotation(java.lang.String annotationType, java.lang.annotation.RetentionPolicy retentionPolicy)static ClassCreator.Builderbuilder()voidclose()Finish the class creator.java.lang.StringgetClassName()(package private) ClassOutputgetClassOutput()MethodCreatorgetConstructorCreator(java.lang.Class<?>... parameters)MethodCreatorgetConstructorCreator(java.lang.String... parameters)java.util.Set<FieldDescriptor>getExistingFields()java.util.Set<MethodDescriptor>getExistingMethods()FieldCreatorgetFieldCreator(FieldDescriptor fieldDescriptor)FieldCreatorgetFieldCreator(java.lang.String name, java.lang.Object type)FieldCreatorgetFieldCreator(java.lang.String name, java.lang.String type)java.lang.String[]getInterfaces()MethodCreatorgetMethodCreator(MethodDescriptor methodDescriptor)MethodCreatorgetMethodCreator(java.lang.String name, java.lang.Class<?> returnType, java.lang.Class<?>... parameters)MethodCreatorgetMethodCreator(java.lang.String name, java.lang.Object returnType, java.lang.Object... parameters)MethodCreatorgetMethodCreator(java.lang.String name, java.lang.String returnType, java.lang.String... parameters)java.lang.StringgetSignature()java.lang.StringgetSimpleClassName()java.lang.StringgetSuperClass()(package private) MethodDescriptorgetSupertypeAccessor(MethodDescriptor descriptor, java.lang.String supertype, boolean isInterface)static ClassCreator.BuilderinterfaceBuilder()booleanisInterface()ClassCreatorsetSignature(java.lang.String signature)Use the convenientSignatureBuilderto build signatures for classes, methods and fields.voidwriteTo(ClassOutput classOutput)Write the class bytes to the given class output.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.quarkus.gizmo.AnnotatedElement
addAnnotation, addAnnotation, addAnnotation
-
-
-
-
Field Detail
-
enclosing
private final BytecodeCreatorImpl enclosing
-
classOutput
private final ClassOutput classOutput
-
superClass
private final java.lang.String superClass
-
access
private final int access
-
interfaces
private final java.lang.String[] interfaces
-
methods
private final java.util.Map<MethodDescriptor,MethodCreatorImpl> methods
-
fields
private final java.util.Map<FieldDescriptor,FieldCreatorImpl> fields
-
annotations
private final java.util.List<AnnotationCreatorImpl> annotations
-
className
private final java.lang.String className
-
signature
private java.lang.String signature
-
superclassAccessors
private final java.util.Map<MethodDescriptor,MethodDescriptor> superclassAccessors
-
accessorCount
private final java.util.concurrent.atomic.AtomicInteger accessorCount
-
-
Constructor Detail
-
ClassCreator
ClassCreator(BytecodeCreatorImpl enclosing, ClassOutput classOutput, java.lang.String name, java.lang.String signature, java.lang.String superClass, int access, java.lang.String... interfaces)
-
ClassCreator
public ClassCreator(ClassOutput classOutput, java.lang.String name, java.lang.String signature, java.lang.String superClass, java.lang.String... interfaces)
-
-
Method Detail
-
builder
public static ClassCreator.Builder builder()
-
interfaceBuilder
public static ClassCreator.Builder interfaceBuilder()
-
getConstructorCreator
public MethodCreator getConstructorCreator(java.lang.String... parameters)
-
getConstructorCreator
public MethodCreator getConstructorCreator(java.lang.Class<?>... parameters)
-
getMethodCreator
public MethodCreator getMethodCreator(MethodDescriptor methodDescriptor)
-
getMethodCreator
public MethodCreator getMethodCreator(java.lang.String name, java.lang.String returnType, java.lang.String... parameters)
-
getMethodCreator
public MethodCreator getMethodCreator(java.lang.String name, java.lang.Class<?> returnType, java.lang.Class<?>... parameters)
-
getMethodCreator
public MethodCreator getMethodCreator(java.lang.String name, java.lang.Object returnType, java.lang.Object... parameters)
-
getFieldCreator
public FieldCreator getFieldCreator(java.lang.String name, java.lang.String type)
-
getFieldCreator
public FieldCreator getFieldCreator(java.lang.String name, java.lang.Object type)
-
getFieldCreator
public FieldCreator getFieldCreator(FieldDescriptor fieldDescriptor)
-
getSuperClass
public java.lang.String getSuperClass()
-
getInterfaces
public java.lang.String[] getInterfaces()
-
getClassName
public java.lang.String getClassName()
-
getSimpleClassName
public java.lang.String getSimpleClassName()
-
isInterface
public boolean isInterface()
-
getSupertypeAccessor
MethodDescriptor getSupertypeAccessor(MethodDescriptor descriptor, java.lang.String supertype, boolean isInterface)
-
writeTo
public void writeTo(ClassOutput classOutput)
Write the class bytes to the given class output.- Parameters:
classOutput- the class output (must not benull)
-
close
public void close()
Finish the class creator. If a class output was configured for this class creator, the class bytes will immediately be written there.- Specified by:
closein interfacejava.lang.AutoCloseable
-
addAnnotation
public AnnotationCreator addAnnotation(java.lang.String annotationType, java.lang.annotation.RetentionPolicy retentionPolicy)
- Specified by:
addAnnotationin interfaceAnnotatedElement
-
getSignature
public java.lang.String getSignature()
- Specified by:
getSignaturein interfaceSignatureElement<ClassCreator>
-
setSignature
public ClassCreator setSignature(java.lang.String signature)
Description copied from interface:SignatureElementUse the convenientSignatureBuilderto build signatures for classes, methods and fields.- Specified by:
setSignaturein interfaceSignatureElement<ClassCreator>- Parameters:
signature- The generic signature as defined in JVMS 17, chapter "4.7.9.1. Signatures"- Returns:
- the element
- See Also:
SignatureBuilder
-
getExistingMethods
public java.util.Set<MethodDescriptor> getExistingMethods()
-
getExistingFields
public java.util.Set<FieldDescriptor> getExistingFields()
-
getClassOutput
ClassOutput getClassOutput()
-
-