org.neodatis.odb.core.layers.layer2.meta
Class ClassInfo

java.lang.Object
  extended by org.neodatis.odb.core.layers.layer2.meta.ClassInfo
All Implemented Interfaces:
java.io.Serializable

public class ClassInfo
extends java.lang.Object
implements java.io.Serializable

A meta representation of a class

Author:
osmadja
See Also:
Serialized Form

Field Summary
static byte CATEGORY_SYSTEM_CLASS
          Constant used for the classCategory variable to indicate a system class
static byte CATEGORY_USER_CLASS
          Constant used for the classCategory variable to indicate a user class
 
Constructor Summary
  ClassInfo()
           
  ClassInfo(java.lang.String className)
           
  ClassInfo(java.lang.String className, java.lang.String extraInfo)
           
protected ClassInfo(java.lang.String fullClassName, java.lang.String extraInfo, IOdbList<ClassAttributeInfo> attributes)
           
 
Method Summary
 void addAttribute(ClassAttributeInfo cai)
           
 void addHistory(java.lang.Object o)
           
 ClassInfoIndex addIndexOn(java.lang.String name, java.lang.String[] indexFields, boolean acceptMultipleValuesForSameKey)
           
 ClassInfo duplicate(boolean onlyData)
           
 boolean equals(java.lang.Object obj)
           
 ClassInfoCompareResult extractDifferences(ClassInfo newCI, boolean update)
           
 IOdbList<ClassAttributeInfo> getAllNonNativeAttributes()
          This method could be optimized, but it is only on Class creation, one time in the database life time...
 int getAttributeId(java.lang.String name)
           
 ClassAttributeInfo getAttributeInfo(int index)
           
 ClassAttributeInfo getAttributeInfoFromId(int id)
           
 ClassAttributeInfo getAttributeInfoFromName(java.lang.String name)
           
 java.lang.String[] getAttributeNames(int[] attributeIds)
           
 java.util.List<java.lang.String> getAttributeNamesAsList(int[] attributeIds)
           
 IOdbList<ClassAttributeInfo> getAttributes()
           
 long getAttributesDefinitionPosition()
           
 int getBlockSize()
           
 byte getClassCategory()
           
 CommittedCIZoneInfo getCommitedZoneInfo()
           
 java.lang.String getExtraInfo()
           
 java.lang.String getFullClassName()
           
 IOdbList<? extends java.lang.Object> getHistory()
           
 OID getId()
           
 ClassInfoIndex getIndex(int index)
           
 IOdbList<ClassInfoIndex> getIndexes()
           
 ClassInfoIndex getIndexForAttributeId(int attributeId)
           
 ClassInfoIndex getIndexForAttributeIds(int[] attributeIds)
           
 ClassInfoIndex getIndexWithName(java.lang.String name)
           
 ObjectInfoHeader getLastObjectInfoHeader()
           
 int getMaxAttributeId()
           
 OID getNextClassOID()
           
 int getNumberOfAttributes()
           
 int getNumberOfIndexes()
           
 long getNumberOfObjects()
          Get number of objects: committed and uncommitted
 CommittedCIZoneInfo getOriginalZoneInfo()
           
 long getPosition()
           
 OID getPreviousClassOID()
           
 CIZoneInfo getUncommittedZoneInfo()
           
 boolean hasCyclicReference()
          To detect if a class has cyclic reference
 boolean hasIndex()
           
 boolean hasIndex(java.lang.String indexName)
           
 boolean isSystemClass()
           
 void removeAttribute(ClassAttributeInfo cai)
           
 void removeIndex(ClassInfoIndex cii)
          Removes an index
 void setAttributes(IOdbList<ClassAttributeInfo> attributes)
           
 void setAttributesDefinitionPosition(long definitionPosition)
           
 void setBlockSize(int blockSize)
           
 void setClassCategory(byte classInfoType)
           
 void setExtraInfo(java.lang.String extraInfo)
           
 void setFullClassName(java.lang.String fullClassName)
           
 void setId(OID id)
           
 void setIndexes(IOdbList<ClassInfoIndex> indexes2)
           
 void setLastObjectInfoHeader(ObjectInfoHeader lastObjectInfoHeader)
           
 void setMaxAttributeId(int maxAttributeId)
           
 void setNextClassOID(OID nextClassOID)
           
 void setPosition(long position)
           
 void setPreviousClassOID(OID previousClassOID)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CATEGORY_SYSTEM_CLASS

public static final byte CATEGORY_SYSTEM_CLASS
Constant used for the classCategory variable to indicate a system class

See Also:
Constant Field Values

CATEGORY_USER_CLASS

public static final byte CATEGORY_USER_CLASS
Constant used for the classCategory variable to indicate a user class

See Also:
Constant Field Values
Constructor Detail

ClassInfo

public ClassInfo()

ClassInfo

public ClassInfo(java.lang.String className)

ClassInfo

public ClassInfo(java.lang.String className,
                 java.lang.String extraInfo)

ClassInfo

protected ClassInfo(java.lang.String fullClassName,
                    java.lang.String extraInfo,
                    IOdbList<ClassAttributeInfo> attributes)
Method Detail

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

toString

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

getAttributes

public IOdbList<ClassAttributeInfo> getAttributes()

setAttributes

public void setAttributes(IOdbList<ClassAttributeInfo> attributes)

getCommitedZoneInfo

public CommittedCIZoneInfo getCommitedZoneInfo()

getAttributesDefinitionPosition

public long getAttributesDefinitionPosition()

setAttributesDefinitionPosition

public void setAttributesDefinitionPosition(long definitionPosition)

getNextClassOID

public OID getNextClassOID()

setNextClassOID

public void setNextClassOID(OID nextClassOID)

getPreviousClassOID

public OID getPreviousClassOID()

setPreviousClassOID

public void setPreviousClassOID(OID previousClassOID)

getPosition

public long getPosition()

setPosition

public void setPosition(long position)

getBlockSize

public int getBlockSize()

setBlockSize

public void setBlockSize(int blockSize)

getFullClassName

public java.lang.String getFullClassName()
Returns:
the fullClassName

getAllNonNativeAttributes

public IOdbList<ClassAttributeInfo> getAllNonNativeAttributes()
This method could be optimized, but it is only on Class creation, one time in the database life time... This is used to get all (non native) attributes a class info have to store them in the meta model before storing the class itself

Returns:

getId

public OID getId()

setId

public void setId(OID id)

getAttributeInfoFromId

public ClassAttributeInfo getAttributeInfoFromId(int id)

getAttributeId

public int getAttributeId(java.lang.String name)

getAttributeInfoFromName

public ClassAttributeInfo getAttributeInfoFromName(java.lang.String name)

getAttributeInfo

public ClassAttributeInfo getAttributeInfo(int index)

getMaxAttributeId

public int getMaxAttributeId()

setMaxAttributeId

public void setMaxAttributeId(int maxAttributeId)

extractDifferences

public ClassInfoCompareResult extractDifferences(ClassInfo newCI,
                                                 boolean update)

getNumberOfAttributes

public int getNumberOfAttributes()

addIndexOn

public ClassInfoIndex addIndexOn(java.lang.String name,
                                 java.lang.String[] indexFields,
                                 boolean acceptMultipleValuesForSameKey)

removeIndex

public void removeIndex(ClassInfoIndex cii)
Removes an index

Parameters:
cii -

getNumberOfIndexes

public int getNumberOfIndexes()

getIndex

public ClassInfoIndex getIndex(int index)

setIndexes

public void setIndexes(IOdbList<ClassInfoIndex> indexes2)

hasCyclicReference

public boolean hasCyclicReference()
To detect if a class has cyclic reference

Returns:
true if this class info has cyclic references

getClassCategory

public byte getClassCategory()

setClassCategory

public void setClassCategory(byte classInfoType)

getLastObjectInfoHeader

public ObjectInfoHeader getLastObjectInfoHeader()

setLastObjectInfoHeader

public void setLastObjectInfoHeader(ObjectInfoHeader lastObjectInfoHeader)

getUncommittedZoneInfo

public CIZoneInfo getUncommittedZoneInfo()

getNumberOfObjects

public long getNumberOfObjects()
Get number of objects: committed and uncommitted

Returns:
The number of committed and uncommitted objects

getOriginalZoneInfo

public CommittedCIZoneInfo getOriginalZoneInfo()

isSystemClass

public boolean isSystemClass()

getIndexWithName

public ClassInfoIndex getIndexWithName(java.lang.String name)

getIndexForAttributeId

public ClassInfoIndex getIndexForAttributeId(int attributeId)

getIndexForAttributeIds

public ClassInfoIndex getIndexForAttributeIds(int[] attributeIds)

getAttributeNames

public java.lang.String[] getAttributeNames(int[] attributeIds)

getAttributeNamesAsList

public java.util.List<java.lang.String> getAttributeNamesAsList(int[] attributeIds)

getIndexes

public IOdbList<ClassInfoIndex> getIndexes()

removeAttribute

public void removeAttribute(ClassAttributeInfo cai)

addAttribute

public void addAttribute(ClassAttributeInfo cai)

setFullClassName

public void setFullClassName(java.lang.String fullClassName)

addHistory

public void addHistory(java.lang.Object o)

getHistory

public IOdbList<? extends java.lang.Object> getHistory()

hasIndex

public boolean hasIndex(java.lang.String indexName)

hasIndex

public boolean hasIndex()

setExtraInfo

public void setExtraInfo(java.lang.String extraInfo)

getExtraInfo

public java.lang.String getExtraInfo()

duplicate

public ClassInfo duplicate(boolean onlyData)