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

java.lang.Object
  extended by org.neodatis.odb.core.layers.layer2.meta.MetaModel
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
SessionMetaModel

public abstract class MetaModel
extends java.lang.Object
implements java.io.Serializable

The database meta-model

Author:
olivier s
See Also:
Serialized Form

Field Summary
protected  IClassPool classPool
           
 
Constructor Summary
MetaModel()
           
 
Method Summary
abstract  void addChangedClass(ClassInfo ci)
          Saves the fact that something has changed in the class (number of objects or last object oid)
 void addClass(ClassInfo classInfo)
           
 void addClasses(ClassInfoList ciList)
           
 void clear()
           
abstract  MetaModel duplicate()
           
 boolean existClass(java.lang.String fullClassName)
           
static MetaModel fromClassInfos(IOdbList<ClassInfo> classInfos)
          Builds a meta model from a list of class infos
 IOdbList<ClassInfo> getAllClasses()
           
abstract  java.util.Collection<ClassInfo> getChangedClassInfo()
           
 ClassInfo getClassInfo(int index)
           
 ClassInfo getClassInfo(java.lang.String fullClassName, boolean throwExceptionIfDoesNotExist)
           
 ClassInfo getClassInfoFromId(OID id)
          Gets the class info from the OID.
 java.util.Map<java.lang.String,java.lang.Object> getHistory()
           
 ClassInfo getLastClassInfo()
           
 int getNumberOfClasses()
           
 int getNumberOfSystemClasses()
           
 int getNumberOfUserClasses()
           
 IOdbList<ClassInfo> getPersistentSubclassesOf(java.lang.String fullClassName)
          Gets all the persistent classes that are subclasses or equal to the parameter class
 java.util.Collection<ClassInfo> getSystemClasses()
           
 java.util.Collection<ClassInfo> getUserClasses()
           
 boolean hasChanged()
           
abstract  void resetChangedClasses()
           
 void setHasChanged(boolean hasChanged)
           
 ClassInfo slowGetUserClassInfo(int index)
          The method is slow nut it is only used in the odb explorer.
 int slowGetUserClassInfoIndex(ClassInfo ci)
          This method is only used by the odb explorer.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

classPool

protected transient IClassPool classPool
Constructor Detail

MetaModel

public MetaModel()
Method Detail

addClass

public void addClass(ClassInfo classInfo)

addClasses

public void addClasses(ClassInfoList ciList)

existClass

public boolean existClass(java.lang.String fullClassName)

toString

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

getAllClasses

public IOdbList<ClassInfo> getAllClasses()

getUserClasses

public java.util.Collection<ClassInfo> getUserClasses()

getSystemClasses

public java.util.Collection<ClassInfo> getSystemClasses()

getNumberOfClasses

public int getNumberOfClasses()

getNumberOfUserClasses

public int getNumberOfUserClasses()

getNumberOfSystemClasses

public int getNumberOfSystemClasses()

getClassInfoFromId

public ClassInfo getClassInfoFromId(OID id)
Gets the class info from the OID.

Parameters:
id -
Returns:
the class info with the OID

getClassInfo

public ClassInfo getClassInfo(java.lang.String fullClassName,
                              boolean throwExceptionIfDoesNotExist)

getLastClassInfo

public ClassInfo getLastClassInfo()
Returns:
The Last class info

slowGetUserClassInfoIndex

public int slowGetUserClassInfoIndex(ClassInfo ci)
This method is only used by the odb explorer. So there is no too much problem with performance issue.

Parameters:
ci -
Returns:
The index of the class info

getClassInfo

public ClassInfo getClassInfo(int index)
Parameters:
index - The index of the class info to get
Returns:
The class info at the specified index

slowGetUserClassInfo

public ClassInfo slowGetUserClassInfo(int index)
The method is slow nut it is only used in the odb explorer.

Parameters:
index -
Returns:

clear

public void clear()

hasChanged

public boolean hasChanged()

setHasChanged

public void setHasChanged(boolean hasChanged)

getChangedClassInfo

public abstract java.util.Collection<ClassInfo> getChangedClassInfo()

resetChangedClasses

public abstract void resetChangedClasses()

addChangedClass

public abstract void addChangedClass(ClassInfo ci)
Saves the fact that something has changed in the class (number of objects or last object oid)

Parameters:
ci -

getHistory

public java.util.Map<java.lang.String,java.lang.Object> getHistory()

fromClassInfos

public static MetaModel fromClassInfos(IOdbList<ClassInfo> classInfos)
Builds a meta model from a list of class infos

Parameters:
classInfos -
Returns:
The new Metamodel

getPersistentSubclassesOf

public IOdbList<ClassInfo> getPersistentSubclassesOf(java.lang.String fullClassName)
Gets all the persistent classes that are subclasses or equal to the parameter class

Parameters:
fullClassName -
Returns:
The list of class info of persistent classes that are subclasses or equal to the class

duplicate

public abstract MetaModel duplicate()
Returns: