org.kuali.rice.kew.document
Class RoutingRuleMaintainable

java.lang.Object
  extended by org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl
      extended by org.kuali.rice.krad.maintenance.MaintainableImpl
          extended by org.kuali.rice.kns.maintenance.KualiMaintainableImpl
              extended by org.kuali.rice.kew.document.RoutingRuleMaintainable
All Implemented Interfaces:
Serializable, SelectiveReferenceRefresher, Maintainable, ViewHelperService

public class RoutingRuleMaintainable
extends KualiMaintainableImpl

This class is the maintainable implementation for Routing Rules in KEW (represented by the RuleBaseValues business object).

Author:
Kuali Rice Team (rice.collab@kuali.org)
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.kuali.rice.kns.maintenance.KualiMaintainableImpl
businessObject, businessObjectAuthorizationService, businessObjectDictionaryService, businessObjectMetaDataService, documentHelperService, inactiveRecordDisplay, maintenanceDocumentDictionaryService, newCollectionLineNames, newCollectionLines, persistenceStructureService, personService
 
Constructor Summary
RoutingRuleMaintainable()
           
 
Method Summary
 List<MaintenanceLock> generateMaintenanceLocks()
          Overridden implementation of maintenance locks.
 String getDocumentTitle(MaintenanceDocument document)
           
protected  RuleBaseValues getNewRule(MaintenanceDocument document)
          Returns the new RuleBaseValues business object.
protected  RuleBaseValues getOldRule(MaintenanceDocument document)
          Returns the old RuleBaseValues business object.
 List getSections(MaintenanceDocument document, Maintainable oldMaintainable)
          Override the getSections method on this maintainable so that the Section Containing the various Rule Attributes can be dynamically generated based on the RuleTemplate which is selected.
protected  RuleBaseValues getThisRule()
          Returns the RuleBaseValues business object associated with this Maintainable.
 void prepareForSave()
          This overridden method ...
 void processAfterCopy(MaintenanceDocument document, Map<String,String[]> parameters)
          Set the new collection records back to true so they can be deleted (copy should act like new)
 void processAfterEdit(MaintenanceDocument document, Map<String,String[]> parameters)
           
 void processAfterNew(MaintenanceDocument document, Map<String,String[]> parameters)
          On creation of a new rule document, we must validate that a rule template and document type are set.
 void saveBusinessObject()
          A complete override of the implementation for saving a Rule
 void saveDataObject()
          A complete override of the implementation for saving a Rule
 void setGenerateBlankRequiredValues(String docTypeName)
          This is a hack to get around the fact that when a document is first created, this value is true which causes issues if you want to be able to initialize fields on the document using request parameters.
protected  void setNewCollectionLineDefaultValues(String collectionName, PersistableBusinessObject addLine)
           
 
Methods inherited from class org.kuali.rice.kns.maintenance.KualiMaintainableImpl
addMultipleValueLookupResults, addNewLineToCollection, clearBusinessObjectOfRestrictedValues, clearCollectionRestrictedValues, clearFieldRestrictedValues, decryptEncryptedData, deleteBusinessObject, generateAllAffectedReferences, getAffectedReferencesFromLookup, getAllRefreshableReferences, getBoClass, getBusinessObject, getBusinessObjectAuthorizationService, getBusinessObjectDictionaryService, getBusinessObjectMetaDataService, getCoreSections, getDocumentHelperService, getDuplicateIdentifierFieldsFromDataDictionary, getInactiveRecordDisplay, getMaintainableTitle, getMaintenanceDocumentDictionaryService, getMultiValueIdentifierList, getNewCollectionLine, getPersistenceStructureService, getPersonService, getShowInactiveRecords, hasBusinessObjectExisted, initNewCollectionLine, isBoNotesEnabled, isExternalBusinessObject, isOldBusinessObjectInDocument, isRelationshipRefreshable, performCollectionForceUpperCase, performFieldForceUpperCase, performFieldForceUpperCase, performForceUpperCase, populateBusinessObject, populateNewCollectionLines, populateNewSubCollectionLines, prepareBusinessObject, prepareBusinessObjectForAdditionFromMultipleValueLookup, processAfterAddLine, processAfterPost, processBeforeAddLine, refresh, refreshReferences, setBoClass, setBusinessObject, setBusinessObjectAuthorizationService, setBusinessObjectDictionaryService, setBusinessObjectMetaDataService, setDataObject, setDocumentHelperService, setGenerateDefaultValues, setMaintenanceDocumentDictionaryService, setPersistenceStructureService, setPersonService, setShowInactiveRecords, setupNewFromExisting, shouldFieldBeEncrypted
 
Methods inherited from class org.kuali.rice.krad.maintenance.MaintainableImpl
deleteDataObject, doRouteStatusChange, getBusinessObjectService, getCustomLockDescriptor, getDataObject, getDataObjectAuthorizationService, getDataObjectClass, getDataObjectMetaDataService, getDocumentDictionaryService, getDocumentNumber, getDocumentTitle, getDocumentTypeName, getEncryptionService, getLockingDocumentId, getLookupService, getMaintenanceAction, getMaintenanceDocumentService, getWorkflowEngineDocumentIdsToLock, isNotesEnabled, isOldDataObjectInDocument, prepareExternalBusinessObject, processAfterAddLine, processAfterCopy, processAfterDeleteLine, processAfterEdit, processAfterNew, processAfterPost, processAfterRetrieve, retrieveObjectForEditOrCopy, setBusinessObjectService, setDataObjectAuthorizationService, setDataObjectClass, setDataObjectMetaDataService, setDocumentDictionaryService, setDocumentNumber, setEncryptionService, setLookupService, setMaintenanceAction, setMaintenanceDocumentService, setupNewFromExisting, useCustomLockDescriptors
 
Methods inherited from class org.kuali.rice.krad.uif.service.impl.ViewHelperServiceImpl
addClientSideStateForComponent, addCustomContainerComponents, applyDefaultValuesForCollectionLine, buildClientSideStateScript, buildInquiryLink, findNestedDictionaryAttribute, getCommonContext, getDataDictionaryService, getExpressionEvaluatorService, getPreModelContext, getViewDictionaryService, initializeDataFieldFromDataDictionary, invokeAuthorizerPresentationController, invokeMethodFinalizer, logAndThrowRuntime, performAddLineValidation, performApplyModel, performComponentApplyModel, performComponentFinalize, performComponentInitialization, performComponentLifecycle, performCustomApplyModel, performCustomFinalize, performCustomInitialization, performDeleteLineValidation, performFinalize, performInitialization, populateDefaultValueForField, populateViewFromRequestParameters, processAnyRemoteFieldsHolder, processBeforeAddLine, processCollectionAddLine, processCollectionDeleteLine, processMultipleValueLookupResults, runComponentModifiers, setDataDictionaryService, setExpressionEvaluatorService, setViewContext, setViewDictionaryService, syncClientSideStateForComponent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.kuali.rice.krad.maintenance.Maintainable
deleteDataObject, doRouteStatusChange, getCustomLockDescriptor, getDataObject, getDataObjectClass, getDocumentTitle, getLockingDocumentId, getMaintenanceAction, getWorkflowEngineDocumentIdsToLock, isNotesEnabled, isOldDataObjectInDocument, prepareExternalBusinessObject, processAfterCopy, processAfterEdit, processAfterNew, processAfterPost, processAfterRetrieve, retrieveObjectForEditOrCopy, setDataObjectClass, setDocumentNumber, setMaintenanceAction, setupNewFromExisting, useCustomLockDescriptors
 
Methods inherited from interface org.kuali.rice.krad.uif.service.ViewHelperService
applyDefaultValuesForCollectionLine, buildInquiryLink, performApplyModel, performComponentInitialization, performComponentLifecycle, performFinalize, performInitialization, populateViewFromRequestParameters, processCollectionAddLine, processCollectionDeleteLine, processMultipleValueLookupResults
 

Constructor Detail

RoutingRuleMaintainable

public RoutingRuleMaintainable()
Method Detail

getSections

public List getSections(MaintenanceDocument document,
                        Maintainable oldMaintainable)
Override the getSections method on this maintainable so that the Section Containing the various Rule Attributes can be dynamically generated based on the RuleTemplate which is selected.

Overrides:
getSections in class KualiMaintainableImpl
oldMaintainable - - If this is the new maintainable, the old is passed in for reference. If it is the old maintainable, then null will be passed in
Returns:
List of org.kuali.ui.Section objects

processAfterNew

public void processAfterNew(MaintenanceDocument document,
                            Map<String,String[]> parameters)
On creation of a new rule document, we must validate that a rule template and document type are set.

Overrides:
processAfterNew in class KualiMaintainableImpl

setGenerateBlankRequiredValues

public void setGenerateBlankRequiredValues(String docTypeName)
This is a hack to get around the fact that when a document is first created, this value is true which causes issues if you want to be able to initialize fields on the document using request parameters. See SectionBridge.toSection for the "if" block where it populates Field.propertyValue to see why this causes problems

Overrides:
setGenerateBlankRequiredValues in class KualiMaintainableImpl
See Also:
Maintainable#setGenerateBlankRequiredValues()

saveBusinessObject

public void saveBusinessObject()
A complete override of the implementation for saving a Rule

Overrides:
saveBusinessObject in class KualiMaintainableImpl
See Also:
Maintainable.saveBusinessObject()

saveDataObject

public void saveDataObject()
A complete override of the implementation for saving a Rule

Specified by:
saveDataObject in interface Maintainable
Overrides:
saveDataObject in class MaintainableImpl
See Also:
Maintainable.saveDataObject()

processAfterCopy

public void processAfterCopy(MaintenanceDocument document,
                             Map<String,String[]> parameters)
Description copied from class: KualiMaintainableImpl
Set the new collection records back to true so they can be deleted (copy should act like new)

Overrides:
processAfterCopy in class KualiMaintainableImpl
See Also:
KualiMaintainableImpl#processAfterCopy()

processAfterEdit

public void processAfterEdit(MaintenanceDocument document,
                             Map<String,String[]> parameters)
Overrides:
processAfterEdit in class KualiMaintainableImpl

getNewRule

protected RuleBaseValues getNewRule(MaintenanceDocument document)
Returns the new RuleBaseValues business object.


getOldRule

protected RuleBaseValues getOldRule(MaintenanceDocument document)
Returns the old RuleBaseValues business object.


getThisRule

protected RuleBaseValues getThisRule()
Returns the RuleBaseValues business object associated with this Maintainable.


generateMaintenanceLocks

public List<MaintenanceLock> generateMaintenanceLocks()
Overridden implementation of maintenance locks. The default locking for Routing Rules is based on previous version (can't route more than one rule based off the same previous verison). However, for the first version of a rule, the previous version id will be null. So for a new Route Rule maintenance document we don't want any locks generated. TODO can we just let the locking key be the primary key? (ruleBaseValuesId)

Specified by:
generateMaintenanceLocks in interface Maintainable
Overrides:
generateMaintenanceLocks in class MaintainableImpl
Returns:
the locking representation(s) of this document, which are reproducible given the same keys and the same maintainable object
See Also:
Maintainable.generateMaintenanceLocks()

getDocumentTitle

public String getDocumentTitle(MaintenanceDocument document)
Overrides:
getDocumentTitle in class KualiMaintainableImpl

prepareForSave

public void prepareForSave()
This overridden method ...

Specified by:
prepareForSave in interface Maintainable
Overrides:
prepareForSave in class MaintainableImpl
See Also:
org.kuali.rice.krad.maintenance.KualiMaintainableImpl#prepareForSave()

setNewCollectionLineDefaultValues

protected void setNewCollectionLineDefaultValues(String collectionName,
                                                 PersistableBusinessObject addLine)
Overrides:
setNewCollectionLineDefaultValues in class KualiMaintainableImpl
See Also:
org.kuali.rice.krad.maintenance.KualiMaintainableImpl#setNewCollectionLineDefaultValues(java.lang.String, org.kuali.rice.krad.bo.PersistableBusinessObject)


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