| org.kuali.core.service.PersistenceStructureService
All known Subclasses: org.kuali.core.service.impl.PersistenceStructureServiceImpl,
PersistenceStructureService | public interface PersistenceStructureService (Code) | | This interface defines methods that a Persistence Service must provide. PersistenceMetadataService provides access to
persistence-layer information about persistable classes.
|
Method Summary | |
public Object | clearPrimaryKeyFields(Object persistableObject) | public Class | getBusinessObjectAttributeClass(Class clazz, String attributeName) This method is a PersistableBusinessObject specifific utility method. | public String | getForeignKeyFieldName(Class persistableObjectClass, String attributeName, String pkName) | public ForeignKeyFieldsPopulationState | getForeignKeyFieldsPopulationState(PersistableBusinessObject bo, String referenceName) This method checks the foreign keys for a reference on a given BO, and tests that all fk fields are populated if any are
populated.
In other words, for a given reference, it finds all the attributes of the BO that make up the foreign keys, and checks to see
if they all have values. | public Map | getForeignKeysForReference(Class clazz, String attributeName) This method will return a Map of all the foreign key fields and the corresponding primary key fields for a given reference. | public Map<String, String> | getInverseForeignKeysForCollection(Class boClass, String collectionName) Returns a listing of the FK field mappings between a BO and the elements in a collection. | public Map | getNestedForeignKeyMap(Class persistableObjectClass) Builds a map of reference pk attributes back to the foreign key. | public Map | getPrimaryKeyFieldAnonymousMarking(Class clazz) | public List | getPrimaryKeys(Class clazz) This method returns a List of Strings, each containing the field name of one of the primary keys, as defined in the ORM
layer. | public Map<String, Class> | getReferencesForForeignKey(Class persistableObjectClass, String attributeName) Attempts to match the attribute name given for the class as a fk field to a reference class defined in the repository. | public Map<String, BusinessObjectRelationship> | getRelationshipMetadata(Class persistableClass, String attributeName, String attributePrefix) | public Map<String, BusinessObjectRelationship> | getRelationshipMetadata(Class persistableClass, String attributeName) | public boolean | hasCollection(Class boClass, String collectionName) Returns whether BOs of the given class have a collection defined within them with the given collection name. | public boolean | hasPrimaryKeyFieldValues(Object persistableObject) | public boolean | hasReference(Class boClass, String referenceName) Returns whether there is a reference defined in the persistence layer with the given name. | public boolean | isCollectionUpdatable(Class boClass, String collectionName) | public boolean | isPersistable(Class clazz) | public boolean | isReferenceUpdatable(Class boClass, String referenceName) | public Map<String, Class> | listCollectionObjectTypes(Class boClass) | public Map<String, Class> | listCollectionObjectTypes(PersistableBusinessObject bo) | public List | listFieldNames(Class clazz) | public List | listPersistableSubclasses(Class superclazz) | public List | listPrimaryKeyFieldNames(Class clazz) | public Map<String, Class> | listReferenceObjectFields(Class boClass) This method uses the persistence layer to determine the list of reference objects contained within this parent object. | public Map<String, Class> | listReferenceObjectFields(PersistableBusinessObject bo) This method uses the persistence layer to determine the list of reference objects contained within this parent object. |
clearPrimaryKeyFields | public Object clearPrimaryKeyFields(Object persistableObject)(Code) | | Parameters: persistableObject - object whose primary key fields need to be cleared the object whose primary key fields have just been cleared throws: IllegalArgumentException - if the given Object is null throws: ClassNotPersistableException - if the given object is of a type not described in the OJB repository |
getBusinessObjectAttributeClass | public Class getBusinessObjectAttributeClass(Class clazz, String attributeName) throws ObjectNotABusinessObjectRuntimeException(Code) | | This method is a PersistableBusinessObject specifific utility method. If the Class clazz passed in is a descendent of PersistableBusinessObject,
and if the attributeName specified exists on the object, then the class of this
attribute named will be returned.
Parameters: clazz - - class to be examined for the attribute's class Parameters: attributeName - - name of the class' attribute to be examined the class of the named attribute, if no exceptions occur throws: ObjectNotABusinessObjectRuntimeException - - if the class specified is not a descendent of PersistableBusinessObject, or the class of thenamed attribute is not descended from PersistableBusinessObject |
getForeignKeyFieldsPopulationState | public ForeignKeyFieldsPopulationState getForeignKeyFieldsPopulationState(PersistableBusinessObject bo, String referenceName)(Code) | | This method checks the foreign keys for a reference on a given BO, and tests that all fk fields are populated if any are
populated.
In other words, for a given reference, it finds all the attributes of the BO that make up the foreign keys, and checks to see
if they all have values. It also keeps a list of all the fieldNames that do not have values.
Parameters: bo - - A populated BusinessObject descendent. Must contain an attributed named referenceName. Parameters: referenceName - - The name of the field that is a reference we are analyzing. A populated ForeignKeyFieldsPopulation object which represents the state of population for the foreign key fields. |
getForeignKeysForReference | public Map getForeignKeysForReference(Class clazz, String attributeName)(Code) | | This method will return a Map of all the foreign key fields and the corresponding primary key fields for a given reference.
The Map structure is: Key(String fkFieldName) => Value(String pkFieldName)
Parameters: clazz - - Class that contains the named reference Parameters: attributeName - - Name of the member that is the reference you want foreign keys for returns a Map populated as described above, with one entry per foreign key field |
getInverseForeignKeysForCollection | public Map<String, String> getInverseForeignKeysForCollection(Class boClass, String collectionName)(Code) | | Returns a listing of the FK field mappings between a BO and the elements in a collection. Since this is in effect a
1:n relationship, only the complete primary key set of the parent BO will be returned.
for example, assume Account BO has an "acctNbrForAcct" PK, and it has a list of subAccounts,
each of which has a ("acctNbrForSubAcct", "subAcctNbr") PK pair.
the Account PK will be mapped to some of the PK fields of the element list.
When called on the Account BO class with the "subAccounts" collection name, his method should return
a map with a mapping of "acctNbrForAcct" (key) => "acctNbrForSubAcct"
Parameters: boClass - Parameters: collectionName - |
getNestedForeignKeyMap | public Map getNestedForeignKeyMap(Class persistableObjectClass)(Code) | | Builds a map of reference pk attributes back to the foreign key.
Parameters: persistableObjectClass - |
getPrimaryKeyFieldAnonymousMarking | public Map getPrimaryKeyFieldAnonymousMarking(Class clazz)(Code) | | Parameters: clazz - whose primary key field name, anonymous key marking is requested for a Map containing the primary key name as the key and Boolean indicating whether or not the pk is marked as anonymousin the obj repository file throws: IllegalArgumentException - if the given Object is null throws: ClassNotPersistableException - if the given object is of a type not described in the OJB repository |
getPrimaryKeys | public List getPrimaryKeys(Class clazz)(Code) | | This method returns a List of Strings, each containing the field name of one of the primary keys, as defined in the ORM
layer.
Parameters: clazz - - Class whose primary key field names are requested A List of Strings, each containing the field name of the primary key throws: IllegalArgumentException - if the given Object is null throws: ClassNotPersistableException - if the given object is of a type not described in the OJB repository |
getReferencesForForeignKey | public Map<String, Class> getReferencesForForeignKey(Class persistableObjectClass, String attributeName)(Code) | | Attempts to match the attribute name given for the class as a fk field to a reference class defined in the repository. Since
a fk field can have references to many tables, this returns a list of all found.
Parameters: persistableObjectClass - Parameters: attributeName - Map with attribue name as key of map and class as value |
getRelationshipMetadata | public Map<String, BusinessObjectRelationship> getRelationshipMetadata(Class persistableClass, String attributeName, String attributePrefix)(Code) | | Parameters: persistableClass - Parameters: attributeName - Name of an attribute used in the relationship BusinessObjectRelationship object containing information about the object type related via the named relationship of thegiven class, or null if the persistence service can find no object type related via the named relationship throws: IllegalArgumentException - if the given Class is null throws: IllegalArgumentException - if the given relationshipName is blanks throws: ClassNotPersistableException - if the given Class is a type not described in the OJB repository |
hasCollection | public boolean hasCollection(Class boClass, String collectionName)(Code) | | Returns whether BOs of the given class have a collection defined within them with the given collection name.
Parameters: boClass - Parameters: collectionName - |
hasPrimaryKeyFieldValues | public boolean hasPrimaryKeyFieldValues(Object persistableObject)(Code) | | Parameters: persistableObject - true if all primary key fields of the string have a non-null (and non-empty, for Strings) value throws: IllegalArgumentException - if the given Object is null throws: ClassNotPersistableException - if the given object is of a type not described in the OJB repository |
hasReference | public boolean hasReference(Class boClass, String referenceName)(Code) | | Returns whether there is a reference defined in the persistence layer with the given name.
Depending on the type of underlying persistence mechanism, this method may or may not return true
when the referenceName really refers to a collection type.
To determine whether a reference is a collection, use the hasCollection method instead.
In OJB, this method will return false for collection references.
Parameters: boClass - Parameters: referenceName - |
isCollectionUpdatable | public boolean isCollectionUpdatable(Class boClass, String collectionName)(Code) | | |
isPersistable | public boolean isPersistable(Class clazz)(Code) | | Parameters: clazz - true if the given Class is persistable (is known to OJB) |
isReferenceUpdatable | public boolean isReferenceUpdatable(Class boClass, String referenceName)(Code) | | |
listFieldNames | public List listFieldNames(Class clazz)(Code) | | Parameters: clazz - Class whose field names you want to list a List of field names for the given class in the OJB repository file throws: IllegalArgumentException - if the given Class is null throws: ClassNotPersistableException - if the given object is of a type not described in the OJB repository |
listPersistableSubclasses | public List listPersistableSubclasses(Class superclazz)(Code) | | Parameters: superclazz - class whose persistable subclasses (or interface whose implementors) will be returned a List of persistable Classes which extend or implement the given Class throws: IllegalArgumentException - if the given class is null |
listPrimaryKeyFieldNames | public List listPrimaryKeyFieldNames(Class clazz)(Code) | | Parameters: clazz - Class whose primary key field names you want to list a List of field names for the given class which are designated as key fields in the OJB repository file throws: IllegalArgumentException - if the given Class is null throws: ClassNotPersistableException - if the given object is of a type not described in the OJB repository |
listReferenceObjectFields | public Map<String, Class> listReferenceObjectFields(Class boClass)(Code) | | This method uses the persistence layer to determine the list of reference objects contained within this parent object. For
example, an Account object contains sub-objects such as Chart, as well as the key that connects the two, String
chartOfAccountsCode.
The return structure is: Map.
As an example, an Account object passed into this would return:
0:['chartOfAccounts', org.kuali.module.chart.bo.Chart] 1:['organization', org.kuali.module.chart.bo.Org] etc.
Parameters: boClass - Class that would like to be analyzed for reference names Map containing the reference name for the key as a string, and the class of the reference as the value. If the objectcontains no references, then this Map will be empty. |
listReferenceObjectFields | public Map<String, Class> listReferenceObjectFields(PersistableBusinessObject bo)(Code) | | This method uses the persistence layer to determine the list of reference objects contained within this parent object. For
example, an Account object contains sub-objects such as Chart, as well as the key that connects the two, String
chartOfAccountsCode.
The return structure is: Map.
As an example, an Account object passed into this would return:
0:['chartOfAccounts', org.kuali.module.chart.bo.Chart] 1:['organization', org.kuali.module.chart.bo.Org] etc.
Parameters: bo - BusinessObject (or subclass) instance that would like to be analyzed for reference names Map containing the reference name for the key as a string, and the class of the reference as the value. If the objectcontains no references, then this Map will be empty. |
|
|