com.ibm.itim.dataservices.model

Interface IModelMetaData



  • public interface IModelMetaData
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static java.lang.String modelFileName
      Constant name of the model meta-data file, enRoleModel.xml.
      static java.lang.String NAME 
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      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<java.lang.String> objClasses)
      Retrieves the entity class with the given set of LDAP auxiliary class names.
      java.lang.String getEntityCategory(java.util.Collection<java.lang.String> objClasses)
      Retrieves the entity category with the given set of LDAP auxiliary class names.
      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<java.lang.String> 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.
    • Field Detail

      • modelFileName

        static final java.lang.String modelFileName
        Constant name of the model meta-data file, enRoleModel.xml.
        See Also:
        Constant Field Values
    • Method Detail

      • getRelationship

        java.lang.Class getRelationship(java.lang.Class cl,
                                        java.lang.String relationshipName)
                                 throws ObjectNotFoundException,
                                        ModelIntegrityException
        Retrieves the relationship with the given name for a given class.
        Parameters:
        cl - Subject class of the relationship.
        relationshipName - Name of the relationship to retrieve.
        Returns:
        Matching Relationship implementation Class.
        Throws:
        ObjectNotFoundException - Thrown if unable to find a matching Relationship implementation.
        ModelIntegrityException
      • getSupportedRelationships

        java.util.Collection<java.lang.String> getSupportedRelationships(java.lang.Class cl)
                                                                  throws ObjectNotFoundException,
                                                                         ModelIntegrityException
        Returns the names of the supported relationships for the given class.
        Parameters:
        cl - Class for which relationships are queried.
        Returns:
        Collection of supported relationship names.
        Throws:
        ObjectNotFoundException - Thrown if unable to find the given class in the data model meta-data.
        ModelIntegrityException
      • getEntityCategory

        java.lang.String getEntityCategory(java.util.Collection<java.lang.String> objClasses)
                                    throws ModelIntegrityException
        Retrieves the entity category with the given set of LDAP auxiliary class names.
        Parameters:
        objClasses - Collection of the LDAP auxiliary class.
        Returns:
        entity category.
        Throws:
        ModelIntegrityException
        ObjectNotFoundException - Thrown if unable to find a matching Entity implementation.
      • defineClass

        void defineClass(java.lang.Class cl)
                  throws ModelIntegrityException
        Defines a new class in the data model. This definition is cached and is not saved to the enRoleModel.xml file.
        Parameters:
        cl - Class to add to the data model.
        Throws:
        ModelIntegrityException
      • defineRelationship

        void defineRelationship(java.lang.Class cl,
                                java.lang.String relationshipName,
                                java.lang.Class rel)
                         throws ModelIntegrityException
        Defines a relationship for a given class. This definition is cached and is not saved to the enRoleModel.xml file.
        Parameters:
        cl - Subject Class of the relationship.
        relationshipName - Name of the relationship being defined.
        rel - Implementation class implementing the Relationship interface.
        Throws:
        ModelIntegrityException
      • defineRelationship

        void defineRelationship(java.lang.String cl,
                                java.lang.String relationshipName,
                                java.lang.Class rel)
                         throws ModelIntegrityException
        Defines a relationship for a given class. This definition is cached and is not saved to the enRoleModel.xml file.
        Parameters:
        cl - Name of the Subject Class of the relationship.
        relationshipName - Name of the relationship being defined.
        rel - Implementation class implementing the Relationship interface.
        Throws:
        ModelIntegrityException
      • defineEntity

        void defineEntity(java.lang.String cl,
                          java.lang.String auxClassName,
                          java.lang.String category)
                   throws java.lang.ClassNotFoundException,
                          ModelIntegrityException
        Defines a relationship for a given class. This definition is cached and is not saved to the enRoleModel.xml file.
        Parameters:
        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.
        Throws:
        java.lang.ClassNotFoundException - Name of the Subject class of the relationship cannot be found.
        ModelIntegrityException
        See Also:
        ObjectProfileCategory
      • getSubjectCategories

        java.util.Set<java.lang.String> getSubjectCategories(java.lang.String relationshipName)
                                                      throws ModelIntegrityException
        Returns a set of category names, whose implementation classes support the given relationship.
        Parameters:
        relationshipName - Name of the relationship
        Returns:
        Set of categories that support the relationship.
        Throws:
        ModelIntegrityException
      • loadTable

        void loadTable()
                throws java.io.IOException,
                       java.io.FileNotFoundException,
                       ModelIntegrityException
        Loads the table from the enRoleModel.xml file.
        Throws:
        java.io.IOException
        java.io.FileNotFoundException
        ModelIntegrityException