Package net.ontopia.persistence.proxy
Class ClassInfo
- java.lang.Object
-
- net.ontopia.persistence.proxy.ClassInfo
-
- All Implemented Interfaces:
ClassInfoIF
public class ClassInfo extends Object implements ClassInfoIF
INTERNAL: A class descriptor-like class that is used by the RDBMS proxy implementation to access the information it needs about the object relational class descriptor in an optimized manner.
-
-
Field Summary
Fields Modifier and Type Field Description protected ClassDescriptorcdescprotected Map<String,FieldInfoIF>fieldsprotected FieldInfoIFidentity_fieldprotected Class<?>klassprotected Class<?>klass_immutableprotected FieldInfoIF[]m2m_fieldsprotected RDBMSMappingmappingprotected FieldInfoIF[]o2m_fieldsprotected FieldInfoIF[]o2o_fieldsprotected FieldInfoIF[]value_fields-
Fields inherited from interface net.ontopia.persistence.proxy.ClassInfoIF
STRUCTURE_COLLECTION, STRUCTURE_OBJECT, TYPE_AGGREGATE, TYPE_IDENTIFIABLE
-
-
Constructor Summary
Constructors Constructor Description ClassInfo(RDBMSMapping mapping, ClassDescriptor cdesc)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidcompile()INTERNAL: Compile the information in the class descriptor to an optimized form.protected static FieldInfoIF[]compileFieldInfos(ClassInfoIF cinfo, FieldDescriptor[] fdescs)INTERNAL: Wraps the field descriptors in the appropriate field info implementations.ObjectcreateInstance(boolean immutable)INTERNAL: Creates an instance of the descriptor class.Class<?>getDescriptorClass()INTERNAL: Return the descriptor class described by the descriptor.protected static FieldInfoIFgetFieldInfo(ClassInfoIF cinfo, FieldDescriptor fdesc, int index)INTERNAL: Wraps the field descriptor in the appropriate field info implementation.FieldInfoIFgetFieldInfoByName(String name)INTERNAL: Get the field info by name.FieldInfoIFgetIdentityFieldInfo()INTERNAL: Get the identity field infos.FieldInfoIF[]getMany2ManyFieldInfos()INTERNAL: Get the M:M field infos.ObjectRelationalMappingIFgetMapping()INTERNAL: Returns the RDBMS specific object relational mapping instance.StringgetMasterTable()INTERNAL: Returns the name of the master table in which the class is stored.StringgetName()INTERNAL: Returns the name of the descriptor class (the mapped class).FieldInfoIF[]getOne2ManyFieldInfos()INTERNAL: Get the 1:M field infos.FieldInfoIF[]getOne2OneFieldInfos()INTERNAL: Get the 1:1 field infos.intgetStructure()INTERNAL: Returns the structure of the descriptor class.FieldInfoIF[]getValueFieldInfos()INTERNAL: Get the value field infos.booleanisAbstract()INTERNAL: Returns true if the descriptor class is declared as an abstract descriptor.booleanisAggregate()INTERNAL: Returns true if the descriptor class is declared as an aggregate type.booleanisIdentifiable()INTERNAL: Returns true if the descriptor class is declared as a an identifiable type.StringtoString()
-
-
-
Field Detail
-
mapping
protected RDBMSMapping mapping
-
cdesc
protected ClassDescriptor cdesc
-
klass
protected Class<?> klass
-
klass_immutable
protected Class<?> klass_immutable
-
fields
protected Map<String,FieldInfoIF> fields
-
identity_field
protected FieldInfoIF identity_field
-
value_fields
protected FieldInfoIF[] value_fields
-
o2o_fields
protected FieldInfoIF[] o2o_fields
-
o2m_fields
protected FieldInfoIF[] o2m_fields
-
m2m_fields
protected FieldInfoIF[] m2m_fields
-
-
Constructor Detail
-
ClassInfo
public ClassInfo(RDBMSMapping mapping, ClassDescriptor cdesc)
-
-
Method Detail
-
compile
protected void compile()
INTERNAL: Compile the information in the class descriptor to an optimized form. Called from RDBSMapping, because calling it in the constructor leads to never-ending recursion.
-
getMapping
public ObjectRelationalMappingIF getMapping()
INTERNAL: Returns the RDBMS specific object relational mapping instance.- Specified by:
getMappingin interfaceClassInfoIF
-
getName
public String getName()
Description copied from interface:ClassInfoIFINTERNAL: Returns the name of the descriptor class (the mapped class).- Specified by:
getNamein interfaceClassInfoIF
-
getDescriptorClass
public Class<?> getDescriptorClass()
INTERNAL: Return the descriptor class described by the descriptor.- Specified by:
getDescriptorClassin interfaceClassInfoIF
-
createInstance
public Object createInstance(boolean immutable) throws Exception
Description copied from interface:ClassInfoIFINTERNAL: Creates an instance of the descriptor class. Actual implementation will depend on the immutable argument.- Specified by:
createInstancein interfaceClassInfoIF- Throws:
Exception
-
getFieldInfoByName
public FieldInfoIF getFieldInfoByName(String name)
INTERNAL: Get the field info by name.- Specified by:
getFieldInfoByNamein interfaceClassInfoIF
-
getIdentityFieldInfo
public FieldInfoIF getIdentityFieldInfo()
INTERNAL: Get the identity field infos.- Specified by:
getIdentityFieldInfoin interfaceClassInfoIF
-
getValueFieldInfos
public FieldInfoIF[] getValueFieldInfos()
INTERNAL: Get the value field infos.- Specified by:
getValueFieldInfosin interfaceClassInfoIF
-
getOne2OneFieldInfos
public FieldInfoIF[] getOne2OneFieldInfos()
INTERNAL: Get the 1:1 field infos.- Specified by:
getOne2OneFieldInfosin interfaceClassInfoIF
-
getOne2ManyFieldInfos
public FieldInfoIF[] getOne2ManyFieldInfos()
INTERNAL: Get the 1:M field infos.- Specified by:
getOne2ManyFieldInfosin interfaceClassInfoIF
-
getMany2ManyFieldInfos
public FieldInfoIF[] getMany2ManyFieldInfos()
INTERNAL: Get the M:M field infos.- Specified by:
getMany2ManyFieldInfosin interfaceClassInfoIF
-
isAbstract
public boolean isAbstract()
Description copied from interface:ClassInfoIFINTERNAL: Returns true if the descriptor class is declared as an abstract descriptor.- Specified by:
isAbstractin interfaceClassInfoIF
-
isIdentifiable
public boolean isIdentifiable()
Description copied from interface:ClassInfoIFINTERNAL: Returns true if the descriptor class is declared as a an identifiable type.- Specified by:
isIdentifiablein interfaceClassInfoIF
-
isAggregate
public boolean isAggregate()
Description copied from interface:ClassInfoIFINTERNAL: Returns true if the descriptor class is declared as an aggregate type.- Specified by:
isAggregatein interfaceClassInfoIF
-
getStructure
public int getStructure()
Description copied from interface:ClassInfoIFINTERNAL: Returns the structure of the descriptor class. This can either be OBJECT, COLLECTION or MAP.- Specified by:
getStructurein interfaceClassInfoIF
-
getMasterTable
public String getMasterTable()
Description copied from interface:ClassInfoIFINTERNAL: Returns the name of the master table in which the class is stored. This is the table which typically contains the instance identity.- Specified by:
getMasterTablein interfaceClassInfoIF
-
compileFieldInfos
protected static FieldInfoIF[] compileFieldInfos(ClassInfoIF cinfo, FieldDescriptor[] fdescs)
INTERNAL: Wraps the field descriptors in the appropriate field info implementations.
-
getFieldInfo
protected static FieldInfoIF getFieldInfo(ClassInfoIF cinfo, FieldDescriptor fdesc, int index)
INTERNAL: Wraps the field descriptor in the appropriate field info implementation.
-
-