Package org.nuiton.jaxx.compiler.reflect
Class ClassDescriptor
- java.lang.Object
-
- org.nuiton.jaxx.compiler.reflect.ClassDescriptor
-
- Direct Known Subclasses:
ClassDescriptorResolverFromJaxxFile.JaxxFileClassDescriptor
public abstract class ClassDescriptor extends Object
Mirrors the classjava.lang.Class. JAXX usesClassDescriptorinstead ofClassalmost everywhere so that it can handle circular dependencies (there can't be aClassobject 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).
-
-
Field Summary
Fields Modifier and Type Field Description protected FieldDescriptor[]declaredFieldDescriptorsstatic FieldDescriptor[]EMPTY_FIELD_DESCRIPTORS_ARRAYprotected ClassDescriptorHelper.ResolverTyperesolverType
-
Constructor Summary
Constructors Modifier Constructor Description protectedClassDescriptor(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)protectedClassDescriptor(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)
-
Method Summary
-
-
-
Field Detail
-
EMPTY_FIELD_DESCRIPTORS_ARRAY
public static final FieldDescriptor[] EMPTY_FIELD_DESCRIPTORS_ARRAY
-
declaredFieldDescriptors
protected final FieldDescriptor[] declaredFieldDescriptors
-
resolverType
protected final ClassDescriptorHelper.ResolverType resolverType
-
-
Constructor Detail
-
ClassDescriptor
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)
-
ClassDescriptor
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)
-
-
Method Detail
-
tryToGetDeclaredMethodDescriptor
public abstract Optional<MethodDescriptor> tryToGetDeclaredMethodDescriptor(String name, ClassDescriptor... parameterTypes)
-
getDeclaredMethodDescriptor
public abstract MethodDescriptor getDeclaredMethodDescriptor(String name, ClassDescriptor... parameterTypes) throws NoSuchMethodException
- Throws:
NoSuchMethodException
-
getDeclaredFieldDescriptor
public FieldDescriptor getDeclaredFieldDescriptor(String name) throws NoSuchFieldException
- Throws:
NoSuchFieldException
-
getResolverType
public ClassDescriptorHelper.ResolverType getResolverType()
-
getName
public String getName()
-
getSimpleName
public String getSimpleName()
-
getPackageName
public String getPackageName()
-
getSuperclass
public ClassDescriptor getSuperclass()
-
getInterfaces
public ClassDescriptor[] getInterfaces()
-
isInterface
public boolean isInterface()
-
isArray
public boolean isArray()
-
getComponentType
public ClassDescriptor getComponentType()
-
getClassLoader
public ClassLoader getClassLoader()
-
getConstructorDescriptors
public MethodDescriptor[] getConstructorDescriptors()
-
getMethodDescriptors
public MethodDescriptor[] getMethodDescriptors()
-
getMethodDescriptor
public MethodDescriptor getMethodDescriptor(String name, ClassDescriptor... parameterTypes) throws NoSuchMethodException
- Throws:
NoSuchMethodException
-
getFieldDescriptors
public FieldDescriptor[] getFieldDescriptors()
-
getDeclaredFieldDescriptors
public FieldDescriptor[] getDeclaredFieldDescriptors()
-
getFieldDescriptor
public FieldDescriptor getFieldDescriptor(String name) throws NoSuchFieldException
- Throws:
NoSuchFieldException
-
tryToGetFieldDescriptor
public Optional<FieldDescriptor> tryToGetFieldDescriptor(String name)
-
tryToGetSetterMethodDescriptor
public Optional<MethodDescriptor> tryToGetSetterMethodDescriptor(String name)
-
getJAXXObjectDescriptor
public JAXXObjectDescriptor getJAXXObjectDescriptor()
-
isAssignableFrom
public boolean isAssignableFrom(ClassDescriptor descriptor)
-
getClassDescriptor
protected ClassDescriptor getClassDescriptor(String fqn)
-
-