com.thoughtworks.qdox.model
Class JavaClass

java.lang.Object
  extended bycom.thoughtworks.qdox.model.AbstractJavaEntity
      extended bycom.thoughtworks.qdox.model.AbstractInheritableJavaEntity
          extended bycom.thoughtworks.qdox.model.JavaClass
All Implemented Interfaces:
java.lang.Comparable, JavaClassParent, java.io.Serializable

public class JavaClass
extends AbstractInheritableJavaEntity
implements JavaClassParent

Author:
Joe Walnes, Aslak Hellesøy
See Also:
Serialized Form

Field Summary
private  java.util.List classes
           
private  JavaClass[] classesArray
           
private  java.util.List fields
           
private  JavaField[] fieldsArray
           
private  Type[] implementz
           
private  boolean interfce
           
private  JavaClassCache javaClassCache
           
private  java.util.List methods
           
private  JavaMethod[] methodsArray
           
private static Type OBJECT
           
private  Type superClass
           
private  Type type
           
 
Fields inherited from class com.thoughtworks.qdox.model.AbstractJavaEntity
modifiers, name
 
Constructor Summary
JavaClass(JavaClassParent parent)
           
JavaClass(JavaClassParent parent, int lineNumber)
           
 
Method Summary
 void addClass(JavaClass cls)
           
 void addField(JavaField javaField)
           
 void addMethod(JavaMethod meth)
           
private  void addMethodsFromSuperclassAndInterfaces(java.util.Set signatures, java.util.List methodList, JavaClass clazz)
           
private  void addNewMethods(java.util.Set signatures, java.util.List methodList, JavaMethod[] methods)
           
private  void addNewTags(java.util.List list, DocletTag[] tags)
           
private  void addTagsRecursive(java.util.List result, JavaClass javaClass, java.lang.String name, boolean superclasses)
           
 Type asType()
           
 int compareTo(java.lang.Object o)
           
 BeanProperty[] getBeanProperties()
          Gets bean properties without looking in superclasses or interfaces.
 BeanProperty[] getBeanProperties(boolean superclasses)
           
 BeanProperty getBeanProperty(java.lang.String propertyName)
          Gets bean property without looking in superclasses or interfaces.
 BeanProperty getBeanProperty(java.lang.String propertyName, boolean superclasses)
           
private  java.util.Map getBeanPropertyMap(boolean superclasses)
           
 JavaClass[] getClasses()
          Deprecated. Use getInnerClasses() instead.
 ClassLibrary getClassLibrary()
           
 java.lang.String getClassNamePrefix()
           
 JavaClass[] getDerivedClasses()
          Gets the known derived classes.
 JavaField getFieldByName(java.lang.String name)
           
 JavaField[] getFields()
           
 java.lang.String getFullyQualifiedName()
           
 JavaClass[] getImplementedInterfaces()
           
 Type[] getImplements()
           
 JavaClass getInnerClassByName(java.lang.String name)
           
 JavaClass[] getInnerClasses()
           
 JavaMethod getMethodBySignature(java.lang.String name, Type[] parameterTypes)
           
 JavaMethod getMethodBySignature(java.lang.String name, Type[] parameterTypes, boolean superclasses)
           
 JavaMethod[] getMethods()
           
 JavaMethod[] getMethods(boolean superclasses)
           
 JavaMethod[] getMethodsBySignature(java.lang.String name, Type[] parameterTypes, boolean superclasses)
           
private  BeanProperty getOrCreateProperty(java.util.Map beanPropertyMap, java.lang.String propertyName)
           
 java.lang.String getPackage()
           
 JavaSource getParentSource()
           
 Type getSuperClass()
           
 JavaClass getSuperJavaClass()
          Shorthand for getSuperClass().getJavaClass() with null checking.
 DocletTag[] getTagsByName(java.lang.String name, boolean superclasses)
           
 boolean isA(JavaClass javaClass)
           
 boolean isA(java.lang.String fullClassName)
           
 boolean isInner()
           
 boolean isInterface()
          Interface or class?
 java.lang.String resolveType(java.lang.String typeName)
          Resolve a type-name within the context of this source or class.
 void setImplementz(Type[] implementz)
           
 void setInterface(boolean interfce)
           
 void setJavaClassCache(JavaClassCache javaClassCache)
           
 void setSuperClass(Type type)
           
protected  void writeBody(IndentBuffer result)
           
 
Methods inherited from class com.thoughtworks.qdox.model.AbstractInheritableJavaEntity
getTagByName
 
Methods inherited from class com.thoughtworks.qdox.model.AbstractJavaEntity
commentHeader, getComment, getLineNumber, getModifiers, getName, getNamedParameter, getParent, getSource, getTagByName, getTags, getTagsByName, isAbstract, isFinal, isNative, isPrivate, isProtected, isPublic, isStatic, isStrictfp, isSynchronized, isTransient, isVolatile, setComment, setModifiers, setName, setTags, toString, write, writeAccessibilityModifier, writeAllModifiers, writeNonAccessibilityModifiers
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OBJECT

private static Type OBJECT

methods

private java.util.List methods

methodsArray

private JavaMethod[] methodsArray

fields

private java.util.List fields

fieldsArray

private JavaField[] fieldsArray

classes

private java.util.List classes

classesArray

private JavaClass[] classesArray

interfce

private boolean interfce

type

private Type type

superClass

private Type superClass

implementz

private Type[] implementz

javaClassCache

private JavaClassCache javaClassCache
Constructor Detail

JavaClass

public JavaClass(JavaClassParent parent,
                 int lineNumber)

JavaClass

public JavaClass(JavaClassParent parent)
Method Detail

setJavaClassCache

public void setJavaClassCache(JavaClassCache javaClassCache)

isInterface

public boolean isInterface()
Interface or class?


getSuperClass

public Type getSuperClass()

getSuperJavaClass

public JavaClass getSuperJavaClass()
Shorthand for getSuperClass().getJavaClass() with null checking.


getImplements

public Type[] getImplements()

getImplementedInterfaces

public JavaClass[] getImplementedInterfaces()
Since:
1.3

writeBody

protected void writeBody(IndentBuffer result)
Specified by:
writeBody in class AbstractJavaEntity

setInterface

public void setInterface(boolean interfce)

addMethod

public void addMethod(JavaMethod meth)

setSuperClass

public void setSuperClass(Type type)

setImplementz

public void setImplementz(Type[] implementz)

addField

public void addField(JavaField javaField)

getParentSource

public JavaSource getParentSource()
Specified by:
getParentSource in interface JavaClassParent

getPackage

public java.lang.String getPackage()

getFullyQualifiedName

public java.lang.String getFullyQualifiedName()

isInner

public boolean isInner()
Since:
1.3

resolveType

public java.lang.String resolveType(java.lang.String typeName)
Description copied from interface: JavaClassParent
Resolve a type-name within the context of this source or class.

Specified by:
resolveType in interface JavaClassParent
Parameters:
typeName - name of a type
Returns:
the fully-qualified name of the type, or null if it cannot be resolved

getClassLibrary

public ClassLibrary getClassLibrary()
Specified by:
getClassLibrary in interface JavaClassParent

getClassNamePrefix

public java.lang.String getClassNamePrefix()
Specified by:
getClassNamePrefix in interface JavaClassParent

asType

public Type asType()

getMethods

public JavaMethod[] getMethods()

getMethods

public JavaMethod[] getMethods(boolean superclasses)
Since:
1.3

addMethodsFromSuperclassAndInterfaces

private void addMethodsFromSuperclassAndInterfaces(java.util.Set signatures,
                                                   java.util.List methodList,
                                                   JavaClass clazz)

addNewMethods

private void addNewMethods(java.util.Set signatures,
                           java.util.List methodList,
                           JavaMethod[] methods)

getMethodBySignature

public JavaMethod getMethodBySignature(java.lang.String name,
                                       Type[] parameterTypes)
Parameters:
name - method name
parameterTypes - parameter types or null if there are no parameters.
Returns:
the matching method or null if no match is found.

getMethodBySignature

public JavaMethod getMethodBySignature(java.lang.String name,
                                       Type[] parameterTypes,
                                       boolean superclasses)

getMethodsBySignature

public JavaMethod[] getMethodsBySignature(java.lang.String name,
                                          Type[] parameterTypes,
                                          boolean superclasses)

getFields

public JavaField[] getFields()

getFieldByName

public JavaField getFieldByName(java.lang.String name)

addClass

public void addClass(JavaClass cls)
Specified by:
addClass in interface JavaClassParent

getClasses

public JavaClass[] getClasses()
Deprecated. Use getInnerClasses() instead.


getInnerClasses

public JavaClass[] getInnerClasses()
Since:
1.3

getInnerClassByName

public JavaClass getInnerClassByName(java.lang.String name)

isA

public boolean isA(java.lang.String fullClassName)
Since:
1.3

isA

public boolean isA(JavaClass javaClass)
Since:
1.3

getBeanProperties

public BeanProperty[] getBeanProperties()
Gets bean properties without looking in superclasses or interfaces.

Since:
1.3

getBeanProperties

public BeanProperty[] getBeanProperties(boolean superclasses)
Since:
1.3

getBeanPropertyMap

private java.util.Map getBeanPropertyMap(boolean superclasses)

getOrCreateProperty

private BeanProperty getOrCreateProperty(java.util.Map beanPropertyMap,
                                         java.lang.String propertyName)

getBeanProperty

public BeanProperty getBeanProperty(java.lang.String propertyName)
Gets bean property without looking in superclasses or interfaces.

Since:
1.3

getBeanProperty

public BeanProperty getBeanProperty(java.lang.String propertyName,
                                    boolean superclasses)
Since:
1.3

getDerivedClasses

public JavaClass[] getDerivedClasses()
Gets the known derived classes. That is, subclasses or implementing classes.

Returns:

getTagsByName

public DocletTag[] getTagsByName(java.lang.String name,
                                 boolean superclasses)
Specified by:
getTagsByName in class AbstractInheritableJavaEntity

addTagsRecursive

private void addTagsRecursive(java.util.List result,
                              JavaClass javaClass,
                              java.lang.String name,
                              boolean superclasses)

addNewTags

private void addNewTags(java.util.List list,
                        DocletTag[] tags)

compareTo

public int compareTo(java.lang.Object o)
Specified by:
compareTo in interface java.lang.Comparable