gov.nih.nci.system.util
Class ClassCache

java.lang.Object
  extended by gov.nih.nci.system.util.ClassCache
Direct Known Subclasses:
LexEVSClassCache

public class ClassCache
extends java.lang.Object

ClassCache A Class Cache (and related metadata) facade. Gets initialized with a list of the classes obtained from each DAO class within the System.

Author:
Dan Dumitru

Constructor Summary
ClassCache()
           
 
Method Summary
 java.util.List<java.lang.String> getAllFieldNames(java.lang.String className)
           
 java.lang.reflect.Field[] getAllFields(java.lang.Class klass)
          Gets all the fields for a given class
 java.util.List<java.lang.String> getAllPackageNames()
           
 java.util.List<java.lang.String> getAllQualClassNames()
           
 java.util.List<java.lang.String> getAllUnqualClassNames()
           
 java.util.List<java.lang.String> getAssociations(java.lang.String className)
           
 java.lang.String getAssociationType(java.lang.Class klass, java.lang.String associationName)
           
 java.lang.Class getClassFromCache(java.lang.String className)
           
 DAO getDAOForClass(java.lang.String qualClassName)
           
 java.util.List<DAO> getDaoList()
           
 java.lang.String getDataType(java.lang.String className, java.lang.String attribName)
          Gets the data type of a particular field of the class
 java.lang.reflect.Field[] getFields(java.lang.Class clazz)
          Gets all fields from a class and it's superclasses
 java.util.List<java.lang.String> getFieldsOfType(java.lang.Class clazz, java.lang.String typeName)
          Gets all fields from a class and it's superclasses of a given type
 java.util.List<java.lang.String> getFieldsOfTypeFromCache(java.lang.Class klass, java.lang.String typeName)
           
protected  java.util.List<java.lang.reflect.Field> getNonPrimitiveFields(java.lang.String className)
           
 java.util.List<java.lang.String> getPkgClassNames(java.lang.String packageName)
           
 java.lang.String getPkgNameForClass(java.lang.String className)
           
 java.lang.String getQualifiedClassName(java.lang.String className)
           
 java.lang.String getReturnType(java.lang.String fieldGenericType)
           
 java.lang.String getReturnType(java.lang.String className, java.lang.String fieldName)
          Gets the data type of a particular field of the class
 java.lang.reflect.Method[] getSettersForTypeFromCache(java.lang.Class klass, java.lang.String name)
           
 java.util.List<java.lang.String> getSubClassNames(java.lang.String klassName)
           
 boolean isClassNameValid(java.lang.String className)
           
 boolean isCollection(java.lang.String className, java.lang.String attribName)
           
 boolean isPackageNameValid(java.lang.String packageName)
           
 boolean isSearchable(java.lang.String fieldType)
           
 void setDaoList(java.util.List<DAO> daoList)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ClassCache

public ClassCache()
Method Detail

getPkgClassNames

public java.util.List<java.lang.String> getPkgClassNames(java.lang.String packageName)

getAllQualClassNames

public java.util.List<java.lang.String> getAllQualClassNames()

getAllUnqualClassNames

public java.util.List<java.lang.String> getAllUnqualClassNames()

getAllPackageNames

public java.util.List<java.lang.String> getAllPackageNames()

getClassFromCache

public java.lang.Class getClassFromCache(java.lang.String className)
                                  throws java.lang.ClassNotFoundException
Throws:
java.lang.ClassNotFoundException

getQualifiedClassName

public java.lang.String getQualifiedClassName(java.lang.String className)
                                       throws java.lang.ClassNotFoundException
Throws:
java.lang.ClassNotFoundException

getPkgNameForClass

public java.lang.String getPkgNameForClass(java.lang.String className)

isPackageNameValid

public boolean isPackageNameValid(java.lang.String packageName)

isClassNameValid

public boolean isClassNameValid(java.lang.String className)

getFieldsOfTypeFromCache

public java.util.List<java.lang.String> getFieldsOfTypeFromCache(java.lang.Class klass,
                                                                 java.lang.String typeName)

getSettersForTypeFromCache

public java.lang.reflect.Method[] getSettersForTypeFromCache(java.lang.Class klass,
                                                             java.lang.String name)

getFieldsOfType

public java.util.List<java.lang.String> getFieldsOfType(java.lang.Class clazz,
                                                        java.lang.String typeName)
Gets all fields from a class and it's superclasses of a given type

Parameters:
clazz - The class to explore for typed fields
typeName - The name of the type to search for
Returns:

getFields

public java.lang.reflect.Field[] getFields(java.lang.Class clazz)
Gets all fields from a class and it's superclasses

Parameters:
clazz - The class to explore for fields
Returns:

getReturnType

public java.lang.String getReturnType(java.lang.String className,
                                      java.lang.String fieldName)
                               throws java.lang.ClassNotFoundException,
                                      java.lang.Exception
Gets the data type of a particular field of the class

Parameters:
className -
fieldName -
Returns:
Throws:
java.lang.ClassNotFoundException
java.lang.Exception

getDataType

public java.lang.String getDataType(java.lang.String className,
                                    java.lang.String attribName)
                             throws QueryException
Gets the data type of a particular field of the class

Parameters:
className -
attribName -
Returns:
Throws:
java.lang.ClassNotFoundException
QueryException

isCollection

public boolean isCollection(java.lang.String className,
                            java.lang.String attribName)
                     throws QueryException
Throws:
QueryException

getAllFieldNames

public java.util.List<java.lang.String> getAllFieldNames(java.lang.String className)

getNonPrimitiveFields

protected java.util.List<java.lang.reflect.Field> getNonPrimitiveFields(java.lang.String className)

getAssociations

public java.util.List<java.lang.String> getAssociations(java.lang.String className)

getAssociationType

public java.lang.String getAssociationType(java.lang.Class klass,
                                           java.lang.String associationName)
                                    throws java.lang.Exception
Throws:
java.lang.Exception

isSearchable

public boolean isSearchable(java.lang.String fieldType)

getAllFields

public java.lang.reflect.Field[] getAllFields(java.lang.Class klass)
Gets all the fields for a given class

Parameters:
resultClass - - Specifies the class name
Returns:
- returns all the fields of a class

getDaoList

public java.util.List<DAO> getDaoList()

setDaoList

public void setDaoList(java.util.List<DAO> daoList)
                throws DAOException
Parameters:
daoList - A list of DAO's for which Class metadata should be generated and cached. Called by the Spring Framework. See application-config.xml for more details.
Throws:
DAOException

getDAOForClass

public DAO getDAOForClass(java.lang.String qualClassName)

getReturnType

public java.lang.String getReturnType(java.lang.String fieldGenericType)

getSubClassNames

public java.util.List<java.lang.String> getSubClassNames(java.lang.String klassName)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object