public class ModelMetaData
extends java.lang.Object
<MODEL>
<CLASS name="sample.SampleEntity">
<RELATIONSHIP name="parent" class="sample.SampleEntityParent"/>
</CLASS>
</MODEL>
This snippet defines one class within the data model from the sample package
named SampleEntity. This class has one relationship, parent, that is
implemented by the SampleEntityParent class also within the sample package.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
modelFileName
Constant name of the model meta-data file, enRoleModel.xml.
|
| Modifier and Type | Method and Description |
|---|---|
void |
defineClass(java.lang.Class cl)
Defines a new class in the data model.
|
void |
defineEntity(java.lang.String cl,
java.lang.String auxClassName,
java.lang.String category)
Defines a relationship for a given class.
|
void |
defineRelationship(java.lang.Class cl,
java.lang.String relationshipName,
java.lang.Class rel)
Defines a relationship for a given class.
|
void |
defineRelationship(java.lang.String cl,
java.lang.String relationshipName,
java.lang.Class rel)
Defines a relationship for a given class.
|
java.util.Collection<java.lang.String> |
getClasses()
Returns the names of all classes defined for the data model.
|
java.lang.Class |
getEntity(java.util.Collection objClasses)
Retrieves the entity class with the given set of LDAP auxiliary class names.
|
java.lang.String |
getEntityCategory(java.util.Collection objClasses)
Retrieves the entity category with the given set of LDAP auxiliary class names.
|
static ModelMetaData |
getInstance()
Provides access to the single global instance of the ModelMetaData.
|
java.lang.Class |
getRelationship(java.lang.Class cl,
java.lang.String relationshipName)
Retrieves the relationship with the given name for a given class.
|
java.util.Set<java.lang.String> |
getSubjectCategories(java.lang.String relationshipName)
Returns a set of category names, whose implementation
classes support the given relationship.
|
java.util.Collection |
getSupportedRelationships(java.lang.Class cl)
Returns the names of the supported relationships for the given class.
|
void |
loadTable()
Loads the table from the enRoleModel.xml file.
|
public static final java.lang.String modelFileName
public java.util.Collection<java.lang.String> getClasses()
public java.lang.Class getRelationship(java.lang.Class cl,
java.lang.String relationshipName)
throws ObjectNotFoundException
cl - Subject class of the relationship.relationshipName - Name of the relationship to retrieve.ObjectNotFoundException - Thrown if unable to find a matching
Relationship implementation.public java.util.Collection getSupportedRelationships(java.lang.Class cl)
throws ObjectNotFoundException
cl - Class for which relationships are queried.ObjectNotFoundException - Thrown if unable to find the
given class in the data model meta-data.public java.lang.Class getEntity(java.util.Collection objClasses)
throws ObjectNotFoundException
objClasses - Collection of the LDAP auxiliary class.ObjectNotFoundException - Thrown if unable to find a matching
Entity implementation.public java.lang.String getEntityCategory(java.util.Collection objClasses)
objClasses - Collection of the LDAP auxiliary class.ObjectNotFoundException - Thrown if unable to find a matching
Entity implementation.public void defineClass(java.lang.Class cl)
cl - Class to add to the data model.public void defineRelationship(java.lang.Class cl,
java.lang.String relationshipName,
java.lang.Class rel)
cl - Subject Class of the relationship.relationshipName - Name of the relationship being defined.rel - Implementation class implementing the Relationship interface.public void defineRelationship(java.lang.String cl,
java.lang.String relationshipName,
java.lang.Class rel)
cl - Name of the Subject Class of the relationship.relationshipName - Name of the relationship being defined.rel - Implementation class implementing the Relationship interface.public void defineEntity(java.lang.String cl,
java.lang.String auxClassName,
java.lang.String category)
throws java.lang.ClassNotFoundException
cl - Name of the Subject Class of the relationship.auxClassName - Name of the relationship being defined.category - Implementation class implementing the Relationship interface.
The category can be found at ObjectProfileCategory class.java.lang.ClassNotFoundException - Name of the Subject class of the relationship
cannot be found.ObjectProfileCategorypublic java.util.Set<java.lang.String> getSubjectCategories(java.lang.String relationshipName)
relationshipName - - Name of the relationshippublic void loadTable()
throws java.io.IOException,
java.io.FileNotFoundException,
ModelIntegrityException
java.io.IOExceptionjava.io.FileNotFoundExceptionModelIntegrityExceptionpublic static ModelMetaData getInstance() throws ModelIntegrityException
ModelIntegrityException - Thrown if unable to access meta-data.