@MappedSuperclass public abstract class DocumentBase extends PersistableBusinessObjectBaseAdapter implements Document
Document
,
Serialized FormModifier and Type | Field and Description |
---|---|
protected List<AdHocRoutePerson> |
adHocRoutePersons |
protected List<AdHocRouteWorkgroup> |
adHocRouteWorkgroups |
protected DocumentHeader |
documentHeader |
protected String |
documentNumber |
protected List<Note> |
notes |
protected List<PessimisticLock> |
pessimisticLocks |
extension, newCollectionRecord
objectId, versionNumber
Constructor and Description |
---|
DocumentBase()
Constructs a DocumentBase.java.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addCopyErrorDocumentNote(String noteText)
Adds a note to the document indicating it was created by a copy or error correction.
|
void |
addNote(Note note)
Adds the given Note to the document's list of Notes.
|
void |
addPessimisticLock(PessimisticLock lock)
This method adds a new
PessimisticLock to the document
NOTE: LOCKS ADDED VIA THIS METHOD WILL NOT BE SAVED WITH THE DOCUMENT |
void |
afterActionTaken(ActionType performed,
ActionTakenEvent event)
method to integrate with workflow where we will be able to perform logic after an action taken being performed on a document
|
void |
afterWorkflowEngineProcess(boolean successfullyProcessed)
The the default implementation for afterWorkflowEngineProcess does nothing, but is meant to provide a hook for
documents to implement for other needs.
|
void |
beforeWorkflowEngineProcess()
The the default implementation for beforeWorkflowEngineProcess does nothing, but is meant to provide a hook for
documents to implement for other needs.
|
protected PropertySerializabilityEvaluator |
createPropertySerializabilityEvaluator(WorkflowProperties workflowProperties,
WorkflowAttributes workflowAttributes) |
void |
doActionTaken(ActionTakenEvent event)
method to integrate with workflow where we will be able to perform logic for an action taken being performed on a document
|
void |
doRouteLevelChange(DocumentRouteLevelChange levelChangeEvent)
The the default implementation for RouteLevelChange does nothing, but is meant to provide a hook for documents to
implement
for other needs.
|
void |
doRouteStatusChange(DocumentRouteStatusChange statusChangeEvent)
Handle the doRouteStatusChange event from the post processor
|
List<DocumentEvent> |
generateSaveEvents()
Hook for override
|
List<ActionRequest> |
getActionRequests()
This method gets a list of the
ActionRequest objects associated with this document. |
List<AdHocRoutePerson> |
getAdHocRoutePersons()
getter method to get the list of ad hoc route persons associated with a document at a point in time, this list is only valid
for a given users version of a document as this state is only persisted in workflow itself when someone takes an action on a
document
|
List<AdHocRouteWorkgroup> |
getAdHocRouteWorkgroups()
getter method to get the list of ad hoc route workgroups associated with a document at a point in time, this list is only
valid for a given users version of a document as this state is only persisted in workflow itself when someone takes an action
on a document
|
boolean |
getAllowsCopy()
This method returns whether or not this document can be copied.
|
protected AttachmentService |
getAttachmentService() |
String |
getBasePathToDocumentDuringSerialization()
Returns the POJO property name of "this" document in the object returned by
wrapDocumentWithMetadataForXmlSerialization() |
String |
getCustomLockDescriptor(Person user)
This default implementation just throws a PessimisticLockingException.
|
DocumentHeader |
getDocumentHeader()
This retrieves the standard
DocumentHeader object, which contains standard meta-data about a document. |
String |
getDocumentNumber()
All documents have a document header id.
|
PropertySerializabilityEvaluator |
getDocumentPropertySerizabilityEvaluator()
If workflowProperties have been defined within the data dictionary for this document, then it returns an instance
of
BusinessObjectPropertySerializibilityEvaluator initialized with the properties. |
String |
getDocumentTitle()
Retrieves the title of the document
|
List<String> |
getLockClearingMethodNames()
Deprecated.
|
List<String> |
getLockClearningMethodNames()
Deprecated.
|
protected List<String> |
getNonLockingActionTakenCodes()
Return the list of actions a user could take on a document which should not result
in the recalculation of the
PessimisticLock s. |
Note |
getNote(int index)
Retrieves the note at the given index.
|
List<Note> |
getNotes()
Returns a mutable list of all notes on the document.
|
protected NoteService |
getNoteService() |
GloballyUnique |
getNoteTarget()
Returns the business object with which notes related to this document should be associated.
|
NoteType |
getNoteType()
Returns the
NoteType to use for notes associated with this document. |
List<PessimisticLock> |
getPessimisticLocks()
This method gets a list of the
PessimisticLock objects associated with this document |
String |
getSuperUserAnnotation()
This method gets the annotation to be attached to a super user action.
|
List<String> |
getWorkflowEngineDocumentIdsToLock()
The default implementation returns no additional ids for the workflow engine to lock prior to processing.
|
String |
getXmlForRouteReport()
This method is used to get the xml that should be used in a Route Report.
|
protected void |
logErrors()
This method logs errors.
|
void |
populateDocumentForRouting()
This is the method to integrate with workflow, where we will actually populate the workflow defined data structure(s) so that
workflow can routed based on this data.
|
protected void |
postLoad()
Loads the KRAD document header via the document header service.
|
void |
postProcessSave(DocumentEvent event)
Do any work on the document after the save.
|
protected void |
postRemove()
This overridden method is used to delete the
DocumentHeader object due to the system not being able to
manage the DocumentHeader object via mapping files |
void |
prepareForSave()
This method provides a hook that will be called before the document is saved.
|
void |
prepareForSave(DocumentEvent event)
Override this method with implementation specific prepareForSave logic
|
protected void |
prePersist()
Save the KRAD document header via the document header service.
|
void |
processAfterRetrieve()
This method provides a hook that will be called after a document is retrieved, but before it is returned from the
DocumentService.
|
void |
refreshPessimisticLocks()
This method updates the list of
PessimisticLock objects on the document if changes could
have been made |
void |
refreshReferenceObject(String referenceObjectName)
Deprecated.
This is a KNS/OJB-related method. It should not be used on KRAD/JPA-based documents.
|
boolean |
removeNote(Note note)
Removes the given note from the document's list of notes.
|
String |
serializeDocumentToXml()
This is a method where we can get the xml of a document that the workflow system will use to base it's routing and search
attributes on.
|
void |
setAdHocRoutePersons(List<AdHocRoutePerson> adHocRoutePersons)
setter method to set the list of ad hoc route persons associated with a document at a point in time, this list is only valid
for a given users version of a document as this state is only persisted in workflow itself when someone takes an action on a
document
|
void |
setAdHocRouteWorkgroups(List<AdHocRouteWorkgroup> adHocRouteWorkgroups)
setter method to set the list of ad hoc route workgroups associated with a document at a point in time, this list is only
valid for a given users version of a document as this state is only persisted in workflow itself when someone takes an action
on a document
|
void |
setDocumentHeader(DocumentHeader documentHeader)
Sets the associated
DocumentHeader for this document. |
void |
setDocumentNumber(String documentNumber)
setter for document header id
|
protected void |
setNewDocumentHeader()
Gets a new document header for this documents type and sets in the document instance.
|
void |
setNotes(List<Note> notes)
Sets the document's list of notes to the given list.
|
void |
setPessimisticLocks(List<PessimisticLock> pessimisticLocks) |
void |
setSuperUserAnnotation(String superUserAnnotation)
This method sets the annotation to be attached to a super user action.
|
void |
toCopy() |
boolean |
useCustomLockDescriptors()
This default implementation simply returns false to indicate that custom lock descriptors are not supported by
DocumentBase.
|
void |
validateBusinessRules(DocumentEvent event)
Sends document off to the rules engine to verify business rules.
|
KualiDocumentXmlMaterializer |
wrapDocumentWithMetadataForXmlSerialization()
Wraps a document in an instance of KualiDocumentXmlMaterializer, that provides additional metadata for
serialization
|
buildListOfDeletionAwareLists, getExtension, getLegacyDataAdapter, isNewCollectionRecord, linkEditableUserFields, refresh, refreshNonUpdateableReferences, setExtension, setNewCollectionRecord
generateAndSetObjectIdIfNeeded, getExtensionObject, getObjectId, getVersionNumber, preUpdate, setExtensionObject, setObjectId, setVersionNumber, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getObjectId
protected String documentNumber
protected DocumentHeader documentHeader
protected List<PessimisticLock> pessimisticLocks
protected List<AdHocRoutePerson> adHocRoutePersons
protected List<AdHocRouteWorkgroup> adHocRouteWorkgroups
public DocumentBase()
public boolean getAllowsCopy()
Document
getAllowsCopy
in interface Document
Document.getAllowsCopy()
public String getDocumentTitle()
This is the default document title implementation. It concatenates the document's data dictionary file label attribute and the document's document header description together. This title is used to populate workflow and will show up in document search results and user action lists.
return String representing the title of the documentgetDocumentTitle
in interface Document
Document.getDocumentTitle()
public void prepareForSave()
Document
prepareForSave
in interface Document
Document.prepareForSave()
public void processAfterRetrieve()
Document
processAfterRetrieve
in interface Document
Document.processAfterRetrieve()
public void doRouteLevelChange(DocumentRouteLevelChange levelChangeEvent)
doRouteLevelChange
in interface Document
levelChangeEvent
- route level change eventDocument.doRouteLevelChange(org.kuali.rice.kew.framework.postprocessor.DocumentRouteLevelChange)
public void doActionTaken(ActionTakenEvent event)
Document
doActionTaken
in interface Document
event
- action taken eventDocument.doActionTaken(org.kuali.rice.kew.framework.postprocessor.ActionTakenEvent)
public void afterActionTaken(ActionType performed, ActionTakenEvent event)
Document
afterActionTaken
in interface Document
performed
- action type performedevent
- action taken eventDocument.afterActionTaken(ActionType, org.kuali.rice.kew.framework.postprocessor.ActionTakenEvent)
protected List<String> getNonLockingActionTakenCodes()
PessimisticLock
s.doActionTaken(ActionTakenEvent)
public void afterWorkflowEngineProcess(boolean successfullyProcessed)
afterWorkflowEngineProcess
in interface Document
successfullyProcessed
- - true if the document was processed successfully, false otherwiseDocument.afterWorkflowEngineProcess(boolean)
public void beforeWorkflowEngineProcess()
beforeWorkflowEngineProcess
in interface Document
Document.beforeWorkflowEngineProcess()
public List<String> getWorkflowEngineDocumentIdsToLock()
getWorkflowEngineDocumentIdsToLock
in interface Document
Document.getWorkflowEngineDocumentIdsToLock()
public void toCopy() throws WorkflowException, IllegalStateException
WorkflowException
IllegalStateException
Copyable.toCopy()
protected void setNewDocumentHeader() throws WorkflowException
WorkflowException
protected void addCopyErrorDocumentNote(String noteText)
noteText
- - text for notepublic String getXmlForRouteReport()
Document
getXmlForRouteReport
in interface Document
Document.getXmlForRouteReport()
public void populateDocumentForRouting()
Document
populateDocumentForRouting
in interface Document
Document.populateDocumentForRouting()
public String serializeDocumentToXml()
Document
serializeDocumentToXml
in interface Document
Document.serializeDocumentToXml()
public KualiDocumentXmlMaterializer wrapDocumentWithMetadataForXmlSerialization()
wrapDocumentWithMetadataForXmlSerialization
in interface Document
Document.wrapDocumentWithMetadataForXmlSerialization()
public PropertySerializabilityEvaluator getDocumentPropertySerizabilityEvaluator()
BusinessObjectPropertySerializibilityEvaluator
initialized with the properties. If none have been
defined, then returns
AlwaysTruePropertySerializibilityEvaluator
.getDocumentPropertySerizabilityEvaluator
in interface Document
Document.getDocumentPropertySerizabilityEvaluator()
protected PropertySerializabilityEvaluator createPropertySerializabilityEvaluator(WorkflowProperties workflowProperties, WorkflowAttributes workflowAttributes)
public String getBasePathToDocumentDuringSerialization()
wrapDocumentWithMetadataForXmlSerialization()
getBasePathToDocumentDuringSerialization
in interface Document
Document.getBasePathToDocumentDuringSerialization()
public DocumentHeader getDocumentHeader()
DocumentHeader
object, which contains standard meta-data about a document.getDocumentHeader
in interface Document
public void setDocumentHeader(DocumentHeader documentHeader)
DocumentHeader
for this document.setDocumentHeader
in interface Document
public String getDocumentNumber()
getDocumentNumber
in interface Document
public void setDocumentNumber(String documentNumber)
setDocumentNumber
in interface Document
public List<AdHocRoutePerson> getAdHocRoutePersons()
getAdHocRoutePersons
in interface Document
public void setAdHocRoutePersons(List<AdHocRoutePerson> adHocRoutePersons)
setAdHocRoutePersons
in interface Document
public List<AdHocRouteWorkgroup> getAdHocRouteWorkgroups()
getAdHocRouteWorkgroups
in interface Document
public void setAdHocRouteWorkgroups(List<AdHocRouteWorkgroup> adHocRouteWorkgroups)
setAdHocRouteWorkgroups
in interface Document
public void postProcessSave(DocumentEvent event)
Document
postProcessSave
in interface Document
event
- - indicates which document event was requestedpublic void prepareForSave(DocumentEvent event)
prepareForSave
in interface Document
event
- - indicates which document event was requestedDocument.prepareForSave(org.kuali.rice.krad.rules.rule.event.DocumentEvent)
public void validateBusinessRules(DocumentEvent event)
Document
validateBusinessRules
in interface Document
event
- - indicates which document event was requestedprotected void logErrors()
public List<DocumentEvent> generateSaveEvents()
generateSaveEvents
in interface Document
Document.generateSaveEvents()
public void doRouteStatusChange(DocumentRouteStatusChange statusChangeEvent)
Document
doRouteStatusChange
in interface Document
statusChangeEvent
- status change eventDocument.doRouteStatusChange(org.kuali.rice.kew.framework.postprocessor.DocumentRouteStatusChange)
public GloballyUnique getNoteTarget()
DocumentHeader
of this document will be returned as the note target.
Sub classes can override this method if they want notes to be associated with something
other than the document header. If this method is overridden, the getNoteType()
method should be overridden to return NoteType.BUSINESS_OBJECT
getNoteTarget
in interface Document
public NoteType getNoteType()
NoteType
to use for notes associated with this document.
By default this returns NoteType.DOCUMENT_HEADER
since notes are
associated with the DocumentHeader
record by default.
The case in which this should be overridden is if getNoteTarget()
is
overridden to return an object other than the DocumentHeader.
getNoteType
in interface Document
Document.getNoteType()
public void addNote(Note note)
Document
addNote
in interface Document
note
- the Note to add, must be non-nullDocument.addNote(org.kuali.rice.krad.bo.Note)
public boolean removeNote(Note note)
Document
removeNote
in interface Document
note
- the note to remove from the document's list of notes, must be non-nullDocument.removeNote(org.kuali.rice.krad.bo.Note)
public Note getNote(int index)
Document
getNote
in interface Document
index
- the zero-based index of the note to retrieveDocument.getNote(int)
public List<Note> getNotes()
Document
getNotes
in interface Document
Document.getNotes()
public void setNotes(List<Note> notes)
Document
setNotes
in interface Document
notes
- the list of notes to set on the document, must be non-nullDocument.setNotes(java.util.List)
public List<ActionRequest> getActionRequests()
ActionRequest
objects associated with this document.getActionRequests
in interface Document
public String getSuperUserAnnotation()
getSuperUserAnnotation
in interface Document
public void setSuperUserAnnotation(String superUserAnnotation)
setSuperUserAnnotation
in interface Document
superUserAnnotation
- the super user annotationprotected void postLoad()
protected void prePersist()
prePersist
in class DataObjectBase
protected void postRemove()
DocumentHeader
object due to the system not being able to
manage the DocumentHeader
object via mapping filespublic List<PessimisticLock> getPessimisticLocks()
Document
PessimisticLock
objects associated with this documentgetPessimisticLocks
in interface Document
Document.getPessimisticLocks()
public void refreshPessimisticLocks()
Document
PessimisticLock
objects on the document if changes could
have been maderefreshPessimisticLocks
in interface Document
Document.refreshPessimisticLocks()
public void setPessimisticLocks(List<PessimisticLock> pessimisticLocks)
pessimisticLocks
- the PessimisticLock objects to setpublic void addPessimisticLock(PessimisticLock lock)
Document
PessimisticLock
to the document
NOTE: LOCKS ADDED VIA THIS METHOD WILL NOT BE SAVED WITH THE DOCUMENTaddPessimisticLock
in interface Document
lock
- - the lock to add to the documentDocument.addPessimisticLock(org.kuali.rice.krad.document.authorization.PessimisticLock)
@Deprecated public List<String> getLockClearingMethodNames()
Document
getLockClearingMethodNames
in interface Document
Document.getLockClearingMethodNames()
@Deprecated public List<String> getLockClearningMethodNames()
Document
getLockClearningMethodNames
in interface Document
Document.getLockClearingMethodNames()
public boolean useCustomLockDescriptors()
useCustomLockDescriptors
in interface Document
Document.useCustomLockDescriptors()
public String getCustomLockDescriptor(Person user)
getCustomLockDescriptor
in interface Document
user
- The user trying to establish the lock.Document.getCustomLockDescriptor(org.kuali.rice.kim.api.identity.Person)
protected AttachmentService getAttachmentService()
protected NoteService getNoteService()
@Deprecated public void refreshReferenceObject(String referenceObjectName)
Copyright © 2005–2014 The Kuali Foundation. All rights reserved.