org.kuali.rice.kim.document.rule
Class IdentityManagementPersonDocumentRule

java.lang.Object
  extended by org.kuali.rice.krad.rules.DocumentRuleBase
      extended by org.kuali.rice.kns.rules.DocumentRuleBase
          extended by org.kuali.rice.kns.rules.TransactionalDocumentRuleBase
              extended by org.kuali.rice.kim.document.rule.IdentityManagementPersonDocumentRule
All Implemented Interfaces:
AddGroupRule, AddPersonDelegationMemberRule, AddPersonDocumentRoleQualifierRule, AddRoleRule, AddAdHocRoutePersonRule, AddAdHocRouteWorkgroupRule, AddNoteRule, ApproveDocumentRule, BusinessRule, CompleteDocumentRule, RouteDocumentRule, SaveDocumentRule, SendAdHocRequestsRule

public class IdentityManagementPersonDocumentRule
extends TransactionalDocumentRuleBase
implements AddGroupRule, AddRoleRule, AddPersonDocumentRoleQualifierRule, AddPersonDelegationMemberRule

This is a description of what this class does - shyu don't forget to fill this in.

Author:
Kuali Rice Team (rice.collab@kuali.org)

Field Summary
protected  ActiveRoleMemberHelper activeRoleMemberHelper
           
protected  AddGroupRule addGroupRule
           
protected  Class<? extends AddGroupRule> addGroupRuleClass
           
protected  AddPersonDelegationMemberRule addPersonDelegationMemberRule
           
protected  Class<? extends AddPersonDelegationMemberRule> addPersonDelegationMemberRuleClass
           
protected  AddRoleRule addRoleRule
           
protected  Class<? extends AddRoleRule> addRoleRuleClass
           
protected  AttributeValidationHelper attributeValidationHelper
           
protected  IdentityManagementKimDocumentAuthorizer authorizer
           
protected  BusinessObjectService businessObjectService
           
protected  IdentityService identityService
           
protected  RoleService roleService
           
protected  UiDocumentService uiDocumentService
           
 
Constructor Summary
IdentityManagementPersonDocumentRule()
           
 
Method Summary
protected  boolean checkAffiliationEithOneEMpInfo(List<PersonDocumentAffiliation> affiliations)
           
protected  boolean checkAffiliationTypeChange(List<PersonDocumentAffiliation> affiliations)
           
protected  boolean checkMultipleDefault(List<? extends PersonDocumentBoDefaultBase> boList, String listName)
           
protected  boolean checkPrimaryEmploymentInfo(List<PersonDocumentAffiliation> affiliations)
           
protected  boolean checkUnassignableRoles(IdentityManagementPersonDocument document)
           
protected  boolean checkUniqueAffiliationTypePerCampus(List<PersonDocumentAffiliation> affiliations)
           
protected  boolean checkUnpopulatableGroups(IdentityManagementPersonDocument document)
           
protected  boolean doesPrincipalNameExist(String principalName, String principalId)
           
 Set<String> findUniqueQualificationAttributes(PersonDocumentRole role, List<KimAttributeField> attributeDefinitions)
          Finds the set of unique qualification attributes for the given role
 AddGroupRule getAddGroupRule()
           
 Class<? extends AddGroupRule> getAddGroupRuleClass()
           
 AddPersonDelegationMemberRule getAddPersonDelegationMemberRule()
           
 AddRoleRule getAddRoleRule()
           
 Class<? extends AddRoleRule> getAddRoleRuleClass()
           
 IdentityManagementKimDocumentAuthorizer getAuthorizer(IdentityManagementPersonDocument document)
           
 BusinessObjectService getBusinessObjectService()
           
 IdentityService getIdentityService()
           
 RoleService getRoleService()
           
 UiDocumentService getUIDocumentService()
           
protected  boolean isPersonAnEmployee(List<PersonDocumentAffiliation> affiliations)
           
 boolean processAddGroup(AddGroupEvent addGroupEvent)
           
 boolean processAddPersonDelegationMember(AddPersonDelegationMemberEvent addPersonDelegationMemberEvent)
           
 boolean processAddPersonDocumentRoleQualifier(IdentityManagementPersonDocument document, PersonDocumentRole role, KimDocumentRoleMember kimDocumentRoleMember, int selectedRoleIdx)
           
 boolean processAddRole(AddRoleEvent addRoleEvent)
           
protected  boolean processCustomRouteDocumentBusinessRules(Document document)
          This method should be overridden by children rule classes as a hook to implement document specific business rule checks for the "route document" event.
protected  boolean processCustomSaveDocumentBusinessRules(Document document)
          This method should be overridden by children rule classes as a hook to implement document specific business rule checks for the "save document" event.
protected  boolean sameMembershipQualifications(KimDocumentRoleMember membershipA, KimDocumentRoleMember membershipB, Set<String> uniqueQualifierAttributes)
          Determines if two seperate memberships have the same qualifications
 void setAddGroupRuleClass(Class<? extends AddGroupRule> addGroupRuleClass)
          Can be overridden by subclasses to indicate the rule class to use when adding groups.
 void setAddRoleRuleClass(Class<? extends AddRoleRule> addRoleRuleClass)
          Can be overridden by subclasses to indicate the rule class to use when adding roles.
protected  boolean validActiveDatesForDelegations(List<RoleDocumentDelegationMember> delegationMembers)
           
protected  boolean validActiveDatesForGroup(List<PersonDocumentGroup> groups)
           
protected  boolean validActiveDatesForRole(List<PersonDocumentRole> roles)
           
protected  boolean validateActiveDate(String errorPath, Timestamp activeFromDate, Timestamp activeToDate)
           
protected  boolean validateAffiliationAndName(IdentityManagementPersonDocument personDoc)
           
protected  boolean validateDelegationMemberRoleQualifier(List<RoleDocumentDelegationMember> delegationMembers)
           
protected  boolean validateEntityInformation(boolean isCreatingNew, IdentityManagementPersonDocument personDoc)
           
protected  boolean validateRoleQualifier(List<PersonDocumentRole> roles)
           
protected  boolean validateUniquePersonRoleQualifiersUniqueForMembership(PersonDocumentRole role, KimDocumentRoleMember membershipToCheck, int membershipToCheckIndex, Set<String> uniqueQualifierAttributes, int roleIndex, List<RemotableAttributeError> validationErrors)
          Checks all the qualifiers for the given membership, so that all qualifiers which should be unique are guaranteed to be unique
protected  boolean validDuplicatePrincipalName(IdentityManagementPersonDocument personDoc)
           
protected  boolean validEmployeeIDForAffiliation(List<PersonDocumentAffiliation> affiliations)
           
 
Methods inherited from class org.kuali.rice.kns.rules.DocumentRuleBase
getDictionaryValidationService
 
Methods inherited from class org.kuali.rice.krad.rules.DocumentRuleBase
buildDocumentTypeActionRequestPermissionDetails, buildDocumentTypePermissionDetails, getDataDictionaryService, getDocumentDictionaryService, getGroupService, getKualiConfigurationService, getMaxDictionaryValidationDepth, getPermissionService, getPersonService, hasAdHocRouteCompletion, isAddHocRoutePersonValid, isAddHocRouteWorkgroupValid, isAdHocRouteCompletionToInitiator, isAdHocRouteRecipientsValid, isDocumentAttributesValid, isDocumentOverviewValid, isNoteValid, processAddAdHocRoutePerson, processAddAdHocRouteWorkgroup, processAddNote, processApproveDocument, processCompleteDocument, processCustomAddAdHocRoutePersonBusinessRules, processCustomAddAdHocRouteWorkgroupBusinessRules, processCustomAddNoteBusinessRules, processCustomApproveDocumentBusinessRules, processCustomCompleteDocumentBusinessRules, processCustomSendAdHocRequests, processRouteDocument, processSaveDocument, processSendAdHocRequests, setDocumentDictionaryService, setMaxDictionaryValidationDepth, useKimPermission, validateSensitiveDataValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

addGroupRule

protected AddGroupRule addGroupRule

addRoleRule

protected AddRoleRule addRoleRule

addPersonDelegationMemberRule

protected AddPersonDelegationMemberRule addPersonDelegationMemberRule

authorizer

protected IdentityManagementKimDocumentAuthorizer authorizer

businessObjectService

protected BusinessObjectService businessObjectService

identityService

protected IdentityService identityService

roleService

protected RoleService roleService

uiDocumentService

protected UiDocumentService uiDocumentService

addGroupRuleClass

protected Class<? extends AddGroupRule> addGroupRuleClass

addRoleRuleClass

protected Class<? extends AddRoleRule> addRoleRuleClass

addPersonDelegationMemberRuleClass

protected Class<? extends AddPersonDelegationMemberRule> addPersonDelegationMemberRuleClass

activeRoleMemberHelper

protected ActiveRoleMemberHelper activeRoleMemberHelper

attributeValidationHelper

protected AttributeValidationHelper attributeValidationHelper
Constructor Detail

IdentityManagementPersonDocumentRule

public IdentityManagementPersonDocumentRule()
Method Detail

processCustomSaveDocumentBusinessRules

protected boolean processCustomSaveDocumentBusinessRules(Document document)
Description copied from class: DocumentRuleBase
This method should be overridden by children rule classes as a hook to implement document specific business rule checks for the "save document" event.

Overrides:
processCustomSaveDocumentBusinessRules in class DocumentRuleBase
Returns:
boolean True if the rules checks passed, false otherwise.

validateEntityInformation

protected boolean validateEntityInformation(boolean isCreatingNew,
                                            IdentityManagementPersonDocument personDoc)

validDuplicatePrincipalName

protected boolean validDuplicatePrincipalName(IdentityManagementPersonDocument personDoc)

checkUnassignableRoles

protected boolean checkUnassignableRoles(IdentityManagementPersonDocument document)

checkUnpopulatableGroups

protected boolean checkUnpopulatableGroups(IdentityManagementPersonDocument document)

processCustomRouteDocumentBusinessRules

protected boolean processCustomRouteDocumentBusinessRules(Document document)
Description copied from class: DocumentRuleBase
This method should be overridden by children rule classes as a hook to implement document specific business rule checks for the "route document" event.

Overrides:
processCustomRouteDocumentBusinessRules in class DocumentRuleBase
Returns:
boolean True if the rules checks passed, false otherwise.

checkMultipleDefault

protected boolean checkMultipleDefault(List<? extends PersonDocumentBoDefaultBase> boList,
                                       String listName)

checkPrimaryEmploymentInfo

protected boolean checkPrimaryEmploymentInfo(List<PersonDocumentAffiliation> affiliations)

checkAffiliationTypeChange

protected boolean checkAffiliationTypeChange(List<PersonDocumentAffiliation> affiliations)

validEmployeeIDForAffiliation

protected boolean validEmployeeIDForAffiliation(List<PersonDocumentAffiliation> affiliations)

isPersonAnEmployee

protected boolean isPersonAnEmployee(List<PersonDocumentAffiliation> affiliations)

checkUniqueAffiliationTypePerCampus

protected boolean checkUniqueAffiliationTypePerCampus(List<PersonDocumentAffiliation> affiliations)

checkAffiliationEithOneEMpInfo

protected boolean checkAffiliationEithOneEMpInfo(List<PersonDocumentAffiliation> affiliations)

validateAffiliationAndName

protected boolean validateAffiliationAndName(IdentityManagementPersonDocument personDoc)

doesPrincipalNameExist

protected boolean doesPrincipalNameExist(String principalName,
                                         String principalId)

validateRoleQualifier

protected boolean validateRoleQualifier(List<PersonDocumentRole> roles)

validateUniquePersonRoleQualifiersUniqueForMembership

protected boolean validateUniquePersonRoleQualifiersUniqueForMembership(PersonDocumentRole role,
                                                                        KimDocumentRoleMember membershipToCheck,
                                                                        int membershipToCheckIndex,
                                                                        Set<String> uniqueQualifierAttributes,
                                                                        int roleIndex,
                                                                        List<RemotableAttributeError> validationErrors)
Checks all the qualifiers for the given membership, so that all qualifiers which should be unique are guaranteed to be unique

Parameters:
roleIndex - the index of the role on the document (for error reporting purposes)
membershipToCheckIndex - the index of the person's membership in the role (for error reporting purposes)
Returns:
true if all unique values are indeed unique, false otherwise

sameMembershipQualifications

protected boolean sameMembershipQualifications(KimDocumentRoleMember membershipA,
                                               KimDocumentRoleMember membershipB,
                                               Set<String> uniqueQualifierAttributes)
Determines if two seperate memberships have the same qualifications

Parameters:
membershipA - the first membership to check
membershipB - the second membership to check
uniqueQualifierAttributes - the set of qualifier attributes which need to be unique
Returns:
true if equal, false if otherwise

findUniqueQualificationAttributes

public Set<String> findUniqueQualificationAttributes(PersonDocumentRole role,
                                                     List<KimAttributeField> attributeDefinitions)
Finds the set of unique qualification attributes for the given role

Parameters:
role - the role associated with this person
attributeDefinitions - the Map of attribute definitions where we can find out if a KimAttribute is supposed to be unique
Returns:
a Set of attribute definition ids for qualifications which are supposed to be unique

validActiveDatesForRole

protected boolean validActiveDatesForRole(List<PersonDocumentRole> roles)

validActiveDatesForGroup

protected boolean validActiveDatesForGroup(List<PersonDocumentGroup> groups)

validActiveDatesForDelegations

protected boolean validActiveDatesForDelegations(List<RoleDocumentDelegationMember> delegationMembers)

validateActiveDate

protected boolean validateActiveDate(String errorPath,
                                     Timestamp activeFromDate,
                                     Timestamp activeToDate)

processAddGroup

public boolean processAddGroup(AddGroupEvent addGroupEvent)
Specified by:
processAddGroup in interface AddGroupRule

processAddRole

public boolean processAddRole(AddRoleEvent addRoleEvent)
Specified by:
processAddRole in interface AddRoleRule

processAddPersonDelegationMember

public boolean processAddPersonDelegationMember(AddPersonDelegationMemberEvent addPersonDelegationMemberEvent)
Specified by:
processAddPersonDelegationMember in interface AddPersonDelegationMemberRule

getIdentityService

public IdentityService getIdentityService()

getRoleService

public RoleService getRoleService()

getUIDocumentService

public UiDocumentService getUIDocumentService()

getAuthorizer

public IdentityManagementKimDocumentAuthorizer getAuthorizer(IdentityManagementPersonDocument document)

getAddGroupRuleClass

public Class<? extends AddGroupRule> getAddGroupRuleClass()
Returns:
the addGroupRuleClass

setAddGroupRuleClass

public void setAddGroupRuleClass(Class<? extends AddGroupRule> addGroupRuleClass)
Can be overridden by subclasses to indicate the rule class to use when adding groups.

Parameters:
addGroupRuleClass - the addGroupRuleClass to set

getAddRoleRuleClass

public Class<? extends AddRoleRule> getAddRoleRuleClass()
Returns:
the addRoleRuleClass

setAddRoleRuleClass

public void setAddRoleRuleClass(Class<? extends AddRoleRule> addRoleRuleClass)
Can be overridden by subclasses to indicate the rule class to use when adding roles.

Parameters:
addRoleRuleClass - the addRoleRuleClass to set

getAddGroupRule

public AddGroupRule getAddGroupRule()
Returns:
the addGroupRule

getAddRoleRule

public AddRoleRule getAddRoleRule()
Returns:
the addRoleRule

getAddPersonDelegationMemberRule

public AddPersonDelegationMemberRule getAddPersonDelegationMemberRule()
Returns:
the addRoleRule

getBusinessObjectService

public BusinessObjectService getBusinessObjectService()
Returns:
the businessObjectService

processAddPersonDocumentRoleQualifier

public boolean processAddPersonDocumentRoleQualifier(IdentityManagementPersonDocument document,
                                                     PersonDocumentRole role,
                                                     KimDocumentRoleMember kimDocumentRoleMember,
                                                     int selectedRoleIdx)
Specified by:
processAddPersonDocumentRoleQualifier in interface AddPersonDocumentRoleQualifierRule

validateDelegationMemberRoleQualifier

protected boolean validateDelegationMemberRoleQualifier(List<RoleDocumentDelegationMember> delegationMembers)


Copyright © 2005-2014 The Kuali Foundation. All Rights Reserved.