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 ClassDescriptor
cdesc
protected Map<String,FieldInfoIF>
fields
protected FieldInfoIF
identity_field
protected Class<?>
klass
protected Class<?>
klass_immutable
protected FieldInfoIF[]
m2m_fields
protected RDBMSMapping
mapping
protected FieldInfoIF[]
o2m_fields
protected FieldInfoIF[]
o2o_fields
protected 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 void
compile()
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.Object
createInstance(boolean immutable)
INTERNAL: Creates an instance of the descriptor class.Class<?>
getDescriptorClass()
INTERNAL: Return the descriptor class described by the descriptor.protected static FieldInfoIF
getFieldInfo(ClassInfoIF cinfo, FieldDescriptor fdesc, int index)
INTERNAL: Wraps the field descriptor in the appropriate field info implementation.FieldInfoIF
getFieldInfoByName(String name)
INTERNAL: Get the field info by name.FieldInfoIF
getIdentityFieldInfo()
INTERNAL: Get the identity field infos.FieldInfoIF[]
getMany2ManyFieldInfos()
INTERNAL: Get the M:M field infos.ObjectRelationalMappingIF
getMapping()
INTERNAL: Returns the RDBMS specific object relational mapping instance.String
getMasterTable()
INTERNAL: Returns the name of the master table in which the class is stored.String
getName()
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.int
getStructure()
INTERNAL: Returns the structure of the descriptor class.FieldInfoIF[]
getValueFieldInfos()
INTERNAL: Get the value field infos.boolean
isAbstract()
INTERNAL: Returns true if the descriptor class is declared as an abstract descriptor.boolean
isAggregate()
INTERNAL: Returns true if the descriptor class is declared as an aggregate type.boolean
isIdentifiable()
INTERNAL: Returns true if the descriptor class is declared as a an identifiable type.String
toString()
-
-
-
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:
getMapping
in interfaceClassInfoIF
-
getName
public String getName()
Description copied from interface:ClassInfoIF
INTERNAL: Returns the name of the descriptor class (the mapped class).- Specified by:
getName
in interfaceClassInfoIF
-
getDescriptorClass
public Class<?> getDescriptorClass()
INTERNAL: Return the descriptor class described by the descriptor.- Specified by:
getDescriptorClass
in interfaceClassInfoIF
-
createInstance
public Object createInstance(boolean immutable) throws Exception
Description copied from interface:ClassInfoIF
INTERNAL: Creates an instance of the descriptor class. Actual implementation will depend on the immutable argument.- Specified by:
createInstance
in interfaceClassInfoIF
- Throws:
Exception
-
getFieldInfoByName
public FieldInfoIF getFieldInfoByName(String name)
INTERNAL: Get the field info by name.- Specified by:
getFieldInfoByName
in interfaceClassInfoIF
-
getIdentityFieldInfo
public FieldInfoIF getIdentityFieldInfo()
INTERNAL: Get the identity field infos.- Specified by:
getIdentityFieldInfo
in interfaceClassInfoIF
-
getValueFieldInfos
public FieldInfoIF[] getValueFieldInfos()
INTERNAL: Get the value field infos.- Specified by:
getValueFieldInfos
in interfaceClassInfoIF
-
getOne2OneFieldInfos
public FieldInfoIF[] getOne2OneFieldInfos()
INTERNAL: Get the 1:1 field infos.- Specified by:
getOne2OneFieldInfos
in interfaceClassInfoIF
-
getOne2ManyFieldInfos
public FieldInfoIF[] getOne2ManyFieldInfos()
INTERNAL: Get the 1:M field infos.- Specified by:
getOne2ManyFieldInfos
in interfaceClassInfoIF
-
getMany2ManyFieldInfos
public FieldInfoIF[] getMany2ManyFieldInfos()
INTERNAL: Get the M:M field infos.- Specified by:
getMany2ManyFieldInfos
in interfaceClassInfoIF
-
isAbstract
public boolean isAbstract()
Description copied from interface:ClassInfoIF
INTERNAL: Returns true if the descriptor class is declared as an abstract descriptor.- Specified by:
isAbstract
in interfaceClassInfoIF
-
isIdentifiable
public boolean isIdentifiable()
Description copied from interface:ClassInfoIF
INTERNAL: Returns true if the descriptor class is declared as a an identifiable type.- Specified by:
isIdentifiable
in interfaceClassInfoIF
-
isAggregate
public boolean isAggregate()
Description copied from interface:ClassInfoIF
INTERNAL: Returns true if the descriptor class is declared as an aggregate type.- Specified by:
isAggregate
in interfaceClassInfoIF
-
getStructure
public int getStructure()
Description copied from interface:ClassInfoIF
INTERNAL: Returns the structure of the descriptor class. This can either be OBJECT, COLLECTION or MAP.- Specified by:
getStructure
in interfaceClassInfoIF
-
getMasterTable
public String getMasterTable()
Description copied from interface:ClassInfoIF
INTERNAL: 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:
getMasterTable
in 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.
-
-