public abstract class ClassDescriptor extends Object
java.lang.Class. JAXX uses ClassDescriptor instead of Class
almost everywhere so that it can handle circular dependencies (there can't be a Class object for an uncompiled
JAXX or Java source file, and a compiler must be allow references to symbols in uncompiled source files in order to handle
circular dependencies).| Modifier and Type | Field and Description |
|---|---|
protected FieldDescriptor[] |
declaredFieldDescriptors |
static FieldDescriptor[] |
EMPTY_FIELD_DESCRIPTORS_ARRAY |
protected ClassDescriptorHelper.ResolverType |
resolverType |
| Modifier | Constructor and Description |
|---|---|
protected |
ClassDescriptor(ClassDescriptorHelper.ResolverType resolverType,
String name,
String packageName,
String superclass,
String[] interfaces,
boolean isInterface,
boolean isArray,
String componentType,
JAXXObjectDescriptor jaxxObjectDescriptor,
ClassLoader classLoader,
MethodDescriptor[] constructorDescriptors,
MethodDescriptor[] methodDescriptors,
FieldDescriptor[] fieldDescriptors) |
protected |
ClassDescriptor(ClassDescriptorHelper.ResolverType resolverType,
String name,
String packageName,
String superclass,
String[] interfaces,
boolean isInterface,
boolean isArray,
String componentType,
JAXXObjectDescriptor jaxxObjectDescriptor,
ClassLoader classLoader,
MethodDescriptor[] constructorDescriptors,
MethodDescriptor[] methodDescriptors,
FieldDescriptor[] fieldDescriptors,
FieldDescriptor[] declaredFieldDescriptors) |
public static final FieldDescriptor[] EMPTY_FIELD_DESCRIPTORS_ARRAY
protected final FieldDescriptor[] declaredFieldDescriptors
protected final ClassDescriptorHelper.ResolverType resolverType
protected ClassDescriptor(ClassDescriptorHelper.ResolverType resolverType, String name, String packageName, String superclass, String[] interfaces, boolean isInterface, boolean isArray, String componentType, JAXXObjectDescriptor jaxxObjectDescriptor, ClassLoader classLoader, MethodDescriptor[] constructorDescriptors, MethodDescriptor[] methodDescriptors, FieldDescriptor[] fieldDescriptors)
protected ClassDescriptor(ClassDescriptorHelper.ResolverType resolverType, String name, String packageName, String superclass, String[] interfaces, boolean isInterface, boolean isArray, String componentType, JAXXObjectDescriptor jaxxObjectDescriptor, ClassLoader classLoader, MethodDescriptor[] constructorDescriptors, MethodDescriptor[] methodDescriptors, FieldDescriptor[] fieldDescriptors, FieldDescriptor[] declaredFieldDescriptors)
public abstract Optional<MethodDescriptor> tryToGetDeclaredMethodDescriptor(String name, ClassDescriptor... parameterTypes)
public abstract MethodDescriptor getDeclaredMethodDescriptor(String name, ClassDescriptor... parameterTypes) throws NoSuchMethodException
NoSuchMethodExceptionpublic FieldDescriptor getDeclaredFieldDescriptor(String name) throws NoSuchFieldException
NoSuchFieldExceptionpublic ClassDescriptorHelper.ResolverType getResolverType()
public String getName()
public String getSimpleName()
public String getPackageName()
public ClassDescriptor getSuperclass()
public ClassDescriptor[] getInterfaces()
public boolean isInterface()
public boolean isArray()
public ClassDescriptor getComponentType()
public ClassLoader getClassLoader()
public MethodDescriptor[] getConstructorDescriptors()
public MethodDescriptor[] getMethodDescriptors()
public MethodDescriptor getMethodDescriptor(String name, ClassDescriptor... parameterTypes) throws NoSuchMethodException
NoSuchMethodExceptionpublic FieldDescriptor[] getFieldDescriptors()
public FieldDescriptor[] getDeclaredFieldDescriptors()
public FieldDescriptor getFieldDescriptor(String name) throws NoSuchFieldException
NoSuchFieldExceptionpublic Optional<FieldDescriptor> tryToGetFieldDescriptor(String name)
public Optional<MethodDescriptor> tryToGetSetterMethodDescriptor(String name)
public JAXXObjectDescriptor getJAXXObjectDescriptor()
public boolean isAssignableFrom(ClassDescriptor descriptor)
protected ClassDescriptor getClassDescriptor(String fqn)
Copyright © 2008–2019 Ultreia.io. All rights reserved.