Class CheckOutCheckInServiceImpl

java.lang.Object
org.alfresco.repo.coci.CheckOutCheckInServiceImpl
All Implemented Interfaces:
CheckOutCheckInService, Extensible

public class CheckOutCheckInServiceImpl extends Object implements CheckOutCheckInService, Extensible
Check out check in service implementation
Author:
Roy Wetherall
  • Constructor Details

    • CheckOutCheckInServiceImpl

      public CheckOutCheckInServiceImpl()
  • Method Details

    • setBehaviourFilter

      public void setBehaviourFilter(BehaviourFilter behaviourFilter)
      Parameters:
      behaviourFilter - the behaviourFilter to set
    • setNodeService

      public void setNodeService(NodeService nodeService)
      Set the node service
    • setVersionService

      public void setVersionService(VersionService versionService)
      Set the version service
    • setOwnableService

      public void setOwnableService(OwnableService ownableService)
      Set the ownable service
    • setLockService

      public void setLockService(LockService lockService)
      Sets the lock service
    • setCopyService

      public void setCopyService(CopyService copyService)
      Sets the copy service
    • setAuthenticationService

      public void setAuthenticationService(AuthenticationService authenticationService)
      Sets the authentication service
    • setFileFolderService

      public void setFileFolderService(FileFolderService fileFolderService)
      Set the file folder service
    • setPolicyComponent

      public void setPolicyComponent(PolicyComponent policyComponent)
      Parameters:
      policyComponent - policy component
    • setRuleService

      public void setRuleService(RuleService ruleService)
      Parameters:
      ruleService - rule service
    • init

      public void init()
      Initialise method
    • checkout

      public NodeRef checkout(NodeRef nodeRef)
      Description copied from interface: CheckOutCheckInService
      Checks out the working copy of the node into the same parent node with the same child associations details.
      Specified by:
      checkout in interface CheckOutCheckInService
      Parameters:
      nodeRef - a reference to the node to checkout
      Returns:
      a node reference to the created working copy
      See Also:
    • checkout

      public NodeRef checkout(NodeRef nodeRef, NodeRef destinationParentNodeRef, QName destinationAssocTypeQName, QName destinationAssocQName)
      Description copied from interface: CheckOutCheckInService
      Checks out the given node placing a working copy in the destination specified.

      When a node is checked out a read-only lock is placed on the original node and a working copy is placed in the destination specified.

      The copy aspect is applied to the working copy so that the original node can be identified.

      The working copy aspect is applied to the working copy so that it can be identified as the working copy of a checked out node.

      The working copy node reference is returned to the caller.

      Specified by:
      checkout in interface CheckOutCheckInService
      Parameters:
      nodeRef - a reference to the node to checkout
      destinationParentNodeRef - the destination node reference for the working copy
      destinationAssocTypeQName - the destination child assoc type for the working copy
      destinationAssocQName - the destination child assoc qualified name for the working copy
      Returns:
      node reference to the created working copy
    • checkin

      public NodeRef checkin(NodeRef workingCopyNodeRef, Map<String,Serializable> versionProperties)
      Description copied from interface: CheckOutCheckInService
      If no content url is specified then current content set on the working copy is understood to be current.
      Specified by:
      checkin in interface CheckOutCheckInService
      Parameters:
      workingCopyNodeRef - the working copy node reference
      versionProperties - the version properties. If null is passed then the original node is NOT versioned during the checkin operation.
      Returns:
      the node reference to the original node, updated with the checked in state
    • checkin

      public NodeRef checkin(NodeRef workingCopyNodeRef, Map<String,Serializable> versionProperties, String contentUrl)
      Description copied from interface: CheckOutCheckInService
      By default the checked in node is not keep checked in.
      Specified by:
      checkin in interface CheckOutCheckInService
      Parameters:
      workingCopyNodeRef - the working copy node reference
      versionProperties - the version properties. If null is passed then the original node is NOT versioned during the checkin operation.
      contentUrl - a content url that should be set on the working copy before the checkin operation takes place. If null then the current working copy content is copied back to the original node.
      Returns:
      the node reference to the original node, updated with the checked in state
    • checkin

      public NodeRef checkin(NodeRef workingCopyNodeRef, Map<String,Serializable> versionProperties, String contentUrl, boolean keepCheckedOut)
      Description copied from interface: CheckOutCheckInService
      Checks in the working node specified.

      When a working copy is checked in the current state of the working copy is copied to the original node. This will include any content updated in the working node.

      If versioning is not enabled on a node (the versionable aspect is not present on the node), the check in overwrites the existing node and releases the lock unless the keepCheckedOut flag is used. With versioning enabled on the node, a new version is always created.

      If a content Url is provided it will be used to update the content of the working node before the checkin operation takes place.

      Once the operation has completed the read lock applied to the original node during checkout will be removed and the working copy of the node deleted from the repository, unless the operation is instructed to keep the original node checked out. In which case the lock and the working copy will remain.

      The node reference to the original node is returned.

      Specified by:
      checkin in interface CheckOutCheckInService
      Parameters:
      workingCopyNodeRef - the working copy node reference
      versionProperties - the version properties. If null is passed then the original node is NOT versioned during the checkin operation.
      contentUrl - a content url that should be set on the working copy before the checkin operation takes place. If null then the current working copy content is copied back to the original node.
      keepCheckedOut - indicates whether the node should remain checked out after the checkin has taken place. When the node remains checked out the working node reference remains the same.
      Returns:
      the node reference to the original node, updated with the checked in state
    • cancelCheckout

      public NodeRef cancelCheckout(NodeRef workingCopyNodeRef)
      Description copied from interface: CheckOutCheckInService
      Cancels the checkout for a given working copy.

      The read-only lock on the original node is removed and the working copy is removed.

      Note that all modification made to the working copy will be lost and the original node will remain unchanged.

      A reference to the original node reference is returned.

      Specified by:
      cancelCheckout in interface CheckOutCheckInService
      Parameters:
      workingCopyNodeRef - the working copy node reference
      Returns:
      the original node reference
    • getWorkingCopy

      public NodeRef getWorkingCopy(NodeRef nodeRef)
      Description copied from interface: CheckOutCheckInService
      Helper method to retrieve the working copy node reference for a checked out node.

      A null node reference is returned if the node is not checked out.

      Specified by:
      getWorkingCopy in interface CheckOutCheckInService
      Parameters:
      nodeRef - a node reference
      Returns:
      the working copy node reference or null if none.
    • getCheckedOut

      public NodeRef getCheckedOut(NodeRef nodeRef)
      Description copied from interface: CheckOutCheckInService
      Helper method to retrieve the original node (check-out source) for a working copy.

      A null node reference is returned if the node is not a working copy.

      Specified by:
      getCheckedOut in interface CheckOutCheckInService
      Parameters:
      nodeRef - the (potential) working copy
      Returns:
      the original (source) node or null if it is not a working copy
    • isWorkingCopy

      public boolean isWorkingCopy(NodeRef nodeRef)
      Description copied from interface: CheckOutCheckInService
      Determine if a node is a working copy or not
      Specified by:
      isWorkingCopy in interface CheckOutCheckInService
      Parameters:
      nodeRef - the (potential) working copy
      Returns:
      true if the node is a working copy otherwise false
    • isCheckedOut

      public boolean isCheckedOut(NodeRef nodeRef)
      Description copied from interface: CheckOutCheckInService
      Determine if a node has been checked out or not
      Specified by:
      isCheckedOut in interface CheckOutCheckInService
      Parameters:
      nodeRef - the (potentially) checked out node
      Returns:
      true if the node has been checked out otherwise false
    • createWorkingCopyName

      public static String createWorkingCopyName(String name, String workingCopyLabel)
      Create a working copy name using the given fileName and workingCopyLabel. The label will be inserted before the file extension (if present), or else appended to the name (in either case a space is prepended to the workingCopyLabel).

      Examples, where workingCopyLabel is "wc":

      "Myfile.txt" becomes "Myfile wc.txt", "Myfile" becomes "Myfile wc".

      In the event that fileName is empty or null, the workingCopyLabel is used for the new working copy name

      Example: "" becomes "wc".

      Parameters:
      name - String
      workingCopyLabel - String
      Returns:
      String
    • getWorkingCopyLabel

      public static String getWorkingCopyLabel()
      Get the working copy label.
      Returns:
      the working copy label
    • getTrait

      public <T extends Trait> ExtendedTrait<T> getTrait(Class<? extends T> traitAPI)
      Specified by:
      getTrait in interface Extensible