org.activiti.engine

## Interface TaskService

-     public interface TaskService

  Service which provides access to `Task` and form related operations.
  Author:
    Tom Baeyens, Joram Barrez

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCandidateGroup(String taskId, String groupId)` Convenience shorthand for `addGroupIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
    `void` | `addCandidateUser(String taskId, String userId)` Convenience shorthand for `addUserIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
    `Comment` | `addComment(String taskId, String processInstanceId, String message)` Add a comment to a task and/or process instance.
    `Comment` | `addComment(String taskId, String processInstanceId, String type, String message)` Add a comment to a task and/or process instance with a custom type.
    `void` | `addGroupIdentityLink(String taskId, String groupId, String identityLinkType)` Involves a group with a task.
    `void` | `addUserIdentityLink(String taskId, String userId, String identityLinkType)` Involves a user with a task.
    `void` | `claim(String taskId, String userId)` Claim responsibility for a task: the given user is made assignee for the task.
    `void` | `complete(String taskId)` Called when the task is successfully executed.
    `void` | `complete(String taskId, Map<String,Object> variables)` Called when the task is successfully executed, and the required task parameters are given by the end-user.
    `void` | `complete(String taskId, Map<String,Object> variables, boolean localScope)` Called when the task is successfully executed, and the required task paramaters are given by the end-user.
    `Attachment` | `createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, InputStream content)` Add a new attachment to a task and/or a process instance and use an input stream to provide the content
    `Attachment` | `createAttachment(String attachmentType, String taskId, String processInstanceId, String attachmentName, String attachmentDescription, String url)` Add a new attachment to a task and/or a process instance and use an url as the content
    `NativeTaskQuery` | `createNativeTaskQuery()` Returns a new `NativeQuery` for tasks.
    `TaskQuery` | `createTaskQuery()` Returns a new `TaskQuery` that can be used to dynamically query tasks.
    `void` | `delegateTask(String taskId, String userId)` Delegates the task to another user.
    `void` | `deleteAttachment(String attachmentId)` Delete an attachment
    `void` | `deleteCandidateGroup(String taskId, String groupId)` Convenience shorthand for `deleteGroupIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
    `void` | `deleteCandidateUser(String taskId, String userId)` Convenience shorthand for `deleteUserIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
    `void` | `deleteComment(String commentId)` Removes an individual comment with the given id.
    `void` | `deleteComments(String taskId, String processInstanceId)` Removes all comments from the provided task and/or process instance
    `void` | `deleteGroupIdentityLink(String taskId, String groupId, String identityLinkType)` Removes the association between a group and a task for the given identityLinkType.
    `void` | `deleteTask(String taskId)` Deletes the given task, not deleting historic information that is related to this task.
    `void` | `deleteTask(String taskId, boolean cascade)` Deletes the given task.
    `void` | `deleteTask(String taskId, String deleteReason)` Deletes the given task, not deleting historic information that is related to this task..
    `void` | `deleteTasks(Collection<String> taskIds)` Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.
    `void` | `deleteTasks(Collection<String> taskIds, boolean cascade)` Deletes all tasks of the given collection.
    `void` | `deleteTasks(Collection<String> taskIds, String deleteReason)` Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.
    `void` | `deleteUserIdentityLink(String taskId, String userId, String identityLinkType)` Removes the association between a user and a task for the given identityLinkType.
    `Attachment` | `getAttachment(String attachmentId)` Retrieve a particular attachment
    `InputStream` | `getAttachmentContent(String attachmentId)` Retrieve stream content of a particular attachment
    `Comment` | `getComment(String commentId)` Returns an individual comment with the given id.
    `List<Comment>` | `getCommentsByType(String type)` All comments of a given type.
    `Event` | `getEvent(String eventId)` Returns an individual event with the given id.
    `List<IdentityLink>` | `getIdentityLinksForTask(String taskId)` Retrieves the `IdentityLink`s associated with the given task.
    `List<Attachment>` | `getProcessInstanceAttachments(String processInstanceId)` The list of attachments associated to a process instance
    `List<Comment>` | `getProcessInstanceComments(String processInstanceId)` The comments related to the given process instance.
    `List<Comment>` | `getProcessInstanceComments(String processInstanceId, String type)` The comments related to the given process instance.
    `List<Task>` | `getSubTasks(String parentTaskId)` The list of subtasks for this parent task
    `List<Attachment>` | `getTaskAttachments(String taskId)` The list of attachments associated to a task
    `List<Comment>` | `getTaskComments(String taskId)` The comments related to the given task.
    `List<Comment>` | `getTaskComments(String taskId, String type)` The comments related to the given task of the given type.
    `List<Event>` | `getTaskEvents(String taskId)` The all events related to the given task.
    `Object` | `getVariable(String taskId, String variableName)` get a variables and search in the task scope and if available also the execution scopes.
    `<T> T` | `getVariable(String taskId, String variableName, Class<T> variableClass)` get a variables and search in the task scope and if available also the execution scopes.
    `List<org.activiti.engine.impl.persistence.entity.VariableInstance>` | `getVariableInstancesLocalByTaskIds(Set<String> taskIds)` get all variables and search only in the task scope.
    `Object` | `getVariableLocal(String taskId, String variableName)` checks whether or not the task has a variable defined with the given name.
    `<T> T` | `getVariableLocal(String taskId, String variableName, Class<T> variableClass)` checks whether or not the task has a variable defined with the given name.
    `Map<String,Object>` | `getVariables(String taskId)` get all variables and search in the task scope and if available also the execution scopes.
    `Map<String,Object>` | `getVariables(String taskId, Collection<String> variableNames)` get values for all given variableNames and search only in the task scope.
    `Map<String,Object>` | `getVariablesLocal(String taskId)` get all variables and search only in the task scope.
    `Map<String,Object>` | `getVariablesLocal(String taskId, Collection<String> variableNames)` get a variable on a task
    `boolean` | `hasVariable(String taskId, String variableName)` checks whether or not the task has a variable defined with the given name, in the task scope and if available also the execution scopes.
    `boolean` | `hasVariableLocal(String taskId, String variableName)` checks whether or not the task has a variable defined with the given name, local task scope only.
    `Task` | `newTask()` Creates a new task that is not related to any process instance.
    `Task` | `newTask(String taskId)` create a new task with a user defined task id
    `void` | `removeVariable(String taskId, String variableName)` Removes the variable from the task.
    `void` | `removeVariableLocal(String taskId, String variableName)` Removes the variable from the task (not considering parent scopes).
    `void` | `removeVariables(String taskId, Collection<String> variableNames)` Removes all variables in the given collection from the task.
    `void` | `removeVariablesLocal(String taskId, Collection<String> variableNames)` Removes all variables in the given collection from the task (not considering parent scopes).
    `void` | `resolveTask(String taskId)` Marks that the assignee is done with this task and that it can be send back to the owner.
    `void` | `resolveTask(String taskId, Map<String,Object> variables)` Marks that the assignee is done with this task providing the required variables and that it can be sent back to the owner.
    `void` | `saveAttachment(Attachment attachment)` Update the name and decription of an attachment
    `void` | `saveTask(Task task)` Saves the given task to the persistent data store.
    `void` | `setAssignee(String taskId, String userId)` Changes the assignee of the given task to the given userId.
    `void` | `setDueDate(String taskId, Date dueDate)` Changes the due date of the task
    `void` | `setOwner(String taskId, String userId)` Transfers ownership of this task to another user.
    `void` | `setPriority(String taskId, int priority)` Changes the priority of the task.
    `void` | `setVariable(String taskId, String variableName, Object value)` set variable on a task.
    `void` | `setVariableLocal(String taskId, String variableName, Object value)` set variable on a task.
    `void` | `setVariables(String taskId, Map<String,? extends Object> variables)` set variables on a task.
    `void` | `setVariablesLocal(String taskId, Map<String,? extends Object> variables)` set variables on a task.
    `void` | `unclaim(String taskId)` A shortcut to `claim(java.lang.String, java.lang.String)` with null user in order to unclaim the task

- - ### Method Detail

    - #### newTask

          Task newTask()

      Creates a new task that is not related to any process instance. The returned task is transient and must be saved with `saveTask(Task)` 'manually'.

    - #### newTask

          Task newTask(String taskId)

      create a new task with a user defined task id

    - #### saveTask

          void saveTask(Task task)

      Saves the given task to the persistent data store. If the task is already present in the persistent store, it is updated. After a new task has been saved, the task instance passed into this method is updated with the id of the newly created task.
      Parameters:
        `task` - the task, cannot be null.

    - #### deleteTask

          void deleteTask(String taskId)

      Deletes the given task, not deleting historic information that is related to this task.
      Parameters:
        `taskId` - The id of the task that will be deleted, cannot be null. If no task exists with the given taskId, the operation is ignored.
      Throws:
        `ActivitiObjectNotFoundException` - when the task with given id does not exist.
        `ActivitiException` - when an error occurs while deleting the task or in case the task is part of a running process.

    - #### deleteTasks

          void deleteTasks(Collection<String> taskIds)

      Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.
      Parameters:
        `taskIds` - The id's of the tasks that will be deleted, cannot be null. All id's in the list that don't have an existing task will be ignored.
      Throws:
        `ActivitiObjectNotFoundException` - when one of the task does not exist.
        `ActivitiException` - when an error occurs while deleting the tasks or in case one of the tasks is part of a running process.

    - #### deleteTask

          void deleteTask(String taskId,
                          boolean cascade)

      Deletes the given task.
      Parameters:
        `taskId` - The id of the task that will be deleted, cannot be null. If no task exists with the given taskId, the operation is ignored.
        `cascade` - If cascade is true, also the historic information related to this task is deleted.
      Throws:
        `ActivitiObjectNotFoundException` - when the task with given id does not exist.
        `ActivitiException` - when an error occurs while deleting the task or in case the task is part of a running process.

    - #### deleteTasks

          void deleteTasks(Collection<String> taskIds,
                           boolean cascade)

      Deletes all tasks of the given collection.
      Parameters:
        `taskIds` - The id's of the tasks that will be deleted, cannot be null. All id's in the list that don't have an existing task will be ignored.
        `cascade` - If cascade is true, also the historic information related to this task is deleted.
      Throws:
        `ActivitiObjectNotFoundException` - when one of the tasks does not exist.
        `ActivitiException` - when an error occurs while deleting the tasks or in case one of the tasks is part of a running process.

    - #### deleteTask

          void deleteTask(String taskId,
                          String deleteReason)

      Deletes the given task, not deleting historic information that is related to this task..
      Parameters:
        `taskId` - The id of the task that will be deleted, cannot be null. If no task exists with the given taskId, the operation is ignored.
        `deleteReason` - reason the task is deleted. Is recorded in history, if enabled.
      Throws:
        `ActivitiObjectNotFoundException` - when the task with given id does not exist.
        `ActivitiException` - when an error occurs while deleting the task or in case the task is part of a running process

    - #### deleteTasks

          void deleteTasks(Collection<String> taskIds,
                           String deleteReason)

      Deletes all tasks of the given collection, not deleting historic information that is related to these tasks.
      Parameters:
        `taskIds` - The id's of the tasks that will be deleted, cannot be null. All id's in the list that don't have an existing task will be ignored.
        `deleteReason` - reason the task is deleted. Is recorded in history, if enabled.
      Throws:
        `ActivitiObjectNotFoundException` - when one of the tasks does not exist.
        `ActivitiException` - when an error occurs while deleting the tasks or in case one of the tasks is part of a running process.

    - #### claim

          void claim(String taskId,
                     String userId)

      Claim responsibility for a task: the given user is made assignee for the task. The difference with `setAssignee(String, String)` is that here a check is done if the task already has a user assigned to it. No check is done whether the user is known by the identity component.
      Parameters:
        `taskId` - task to claim, cannot be null.
        `userId` - user that claims the task. When userId is null the task is unclaimed, assigned to no one.
      Throws:
        `ActivitiObjectNotFoundException` - when the task doesn't exist.
        `ActivitiTaskAlreadyClaimedException` - when the task is already claimed by another user.

    - #### unclaim

          void unclaim(String taskId)

      A shortcut to `claim(java.lang.String, java.lang.String)` with null user in order to unclaim the task
      Parameters:
        `taskId` - task to unclaim, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when the task doesn't exist.

    - #### complete

          void complete(String taskId)

      Called when the task is successfully executed.
      Parameters:
        `taskId` - the id of the task to complete, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when no task exists with the given id.
        `ActivitiException` - when this task is `DelegationState#PENDING` delegation.

    - #### delegateTask

          void delegateTask(String taskId,
                            String userId)

      Delegates the task to another user. This means that the assignee is set and the delegation state is set to `DelegationState#PENDING`. If no owner is set on the task, the owner is set to the current assignee of the task.
      Parameters:
        `taskId` - The id of the task that will be delegated.
        `userId` - The id of the user that will be set as assignee.
      Throws:
        `ActivitiObjectNotFoundException` - when no task exists with the given id.

    - #### resolveTask

          void resolveTask(String taskId)

      Marks that the assignee is done with this task and that it can be send back to the owner. Can only be called when this task is `DelegationState#PENDING` delegation. After this method returns, the `delegationState` is set to `DelegationState#RESOLVED`.
      Parameters:
        `taskId` - the id of the task to resolve, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when no task exists with the given id.

    - #### resolveTask

          void resolveTask(String taskId,
                           Map<String,Object> variables)

      Marks that the assignee is done with this task providing the required variables and that it can be sent back to the owner. Can only be called when this task is `DelegationState#PENDING` delegation. After this method returns, the `delegationState` is set to `DelegationState#RESOLVED`.
      Parameters:
        `taskId` -
        `variables` -
      Throws:
        `ProcessEngineException` - When no task exists with the given id.

    - #### complete

          void complete(String taskId,
                        Map<String,Object> variables)

      Called when the task is successfully executed, and the required task parameters are given by the end-user.
      Parameters:
        `taskId` - the id of the task to complete, cannot be null.
        `variables` - task parameters. May be null or empty.
      Throws:
        `ActivitiObjectNotFoundException` - when no task exists with the given id.

    - #### complete

          void complete(String taskId,
                        Map<String,Object> variables,
                        boolean localScope)

      Called when the task is successfully executed, and the required task paramaters are given by the end-user.
      Parameters:
        `taskId` - the id of the task to complete, cannot be null.
        `variables` - task parameters. May be null or empty.
        `localScope` - If true, the provided variables will be stored task-local, instead of process instance wide (which is the default for `complete(String, Map)`).
      Throws:
        `ActivitiObjectNotFoundException` - when no task exists with the given id.

    - #### setAssignee

          void setAssignee(String taskId,
                           String userId)

      Changes the assignee of the given task to the given userId. No check is done whether the user is known by the identity component.
      Parameters:
        `taskId` - id of the task, cannot be null.
        `userId` - id of the user to use as assignee.
      Throws:
        `ActivitiObjectNotFoundException` - when the task or user doesn't exist.

    - #### setOwner

          void setOwner(String taskId,
                        String userId)

      Transfers ownership of this task to another user. No check is done whether the user is known by the identity component.
      Parameters:
        `taskId` - id of the task, cannot be null.
        `userId` - of the person that is receiving ownership.
      Throws:
        `ActivitiObjectNotFoundException` - when the task or user doesn't exist.

    - #### getIdentityLinksForTask

          List<IdentityLink> getIdentityLinksForTask(String taskId)

      Retrieves the `IdentityLink`s associated with the given task. Such an `IdentityLink` informs how a certain identity (eg. group or user) is associated with a certain task (eg. as candidate, assignee, etc.)

    - #### addCandidateUser

          void addCandidateUser(String taskId,
                                String userId)

      Convenience shorthand for `addUserIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
      Parameters:
        `taskId` - id of the task, cannot be null.
        `userId` - id of the user to use as candidate, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when the task or user doesn't exist.

    - #### addCandidateGroup

          void addCandidateGroup(String taskId,
                                 String groupId)

      Convenience shorthand for `addGroupIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
      Parameters:
        `taskId` - id of the task, cannot be null.
        `groupId` - id of the group to use as candidate, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when the task or group doesn't exist.

    - #### addUserIdentityLink

          void addUserIdentityLink(String taskId,
                                   String userId,
                                   String identityLinkType)

      Involves a user with a task. The type of identity link is defined by the given identityLinkType.
      Parameters:
        `taskId` - id of the task, cannot be null.
        `userId` - id of the user involve, cannot be null.
        `identityLinkType` - type of identityLink, cannot be null (@see `IdentityLinkType`).
      Throws:
        `ActivitiObjectNotFoundException` - when the task or user doesn't exist.

    - #### addGroupIdentityLink

          void addGroupIdentityLink(String taskId,
                                    String groupId,
                                    String identityLinkType)

      Involves a group with a task. The type of identityLink is defined by the given identityLink.
      Parameters:
        `taskId` - id of the task, cannot be null.
        `groupId` - id of the group to involve, cannot be null.
        `identityLinkType` - type of identity, cannot be null (@see `IdentityLinkType`).
      Throws:
        `ActivitiObjectNotFoundException` - when the task or group doesn't exist.

    - #### deleteCandidateUser

          void deleteCandidateUser(String taskId,
                                   String userId)

      Convenience shorthand for `deleteUserIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
      Parameters:
        `taskId` - id of the task, cannot be null.
        `userId` - id of the user to use as candidate, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when the task or user doesn't exist.

    - #### deleteCandidateGroup

          void deleteCandidateGroup(String taskId,
                                    String groupId)

      Convenience shorthand for `deleteGroupIdentityLink(String, String, String)`; with type `IdentityLinkType.CANDIDATE`
      Parameters:
        `taskId` - id of the task, cannot be null.
        `groupId` - id of the group to use as candidate, cannot be null.
      Throws:
        `ActivitiObjectNotFoundException` - when the task or group doesn't exist.

    - #### deleteUserIdentityLink

          void deleteUserIdentityLink(String taskId,
                                      String userId,
                                      String identityLinkType)

      Removes the association between a user and a task for the given identityLinkType.
      Parameters:
        `taskId` - id of the task, cannot be null.
        `userId` - id of the user involve, cannot be null.
        `identityLinkType` - type of identityLink, cannot be null (@see `IdentityLinkType`).
      Throws:
        `ActivitiObjectNotFoundException` - when the task or user doesn't exist.

    - #### deleteGroupIdentityLink

          void deleteGroupIdentityLink(String taskId,
                                       String groupId,
                                       String identityLinkType)

      Removes the association between a group and a task for the given identityLinkType.
      Parameters:
        `taskId` - id of the task, cannot be null.
        `groupId` - id of the group to involve, cannot be null.
        `identityLinkType` - type of identity, cannot be null (@see `IdentityLinkType`).
      Throws:
        `ActivitiObjectNotFoundException` - when the task or group doesn't exist.

    - #### setPriority

          void setPriority(String taskId,
                           int priority)

      Changes the priority of the task. Authorization: actual owner / business admin
      Parameters:
        `taskId` - id of the task, cannot be null.
        `priority` - the new priority for the task.
      Throws:
        `ActivitiObjectNotFoundException` - when the task doesn't exist.

    - #### setDueDate

          void setDueDate(String taskId,
                          Date dueDate)

      Changes the due date of the task
      Parameters:
        `taskId` - id of the task, cannot be null.
        `dueDate` - the new due date for the task
      Throws:
        `ActivitiException` - when the task doesn't exist.

    - #### createTaskQuery

          TaskQuery createTaskQuery()

      Returns a new `TaskQuery` that can be used to dynamically query tasks.

    - #### createNativeTaskQuery

          NativeTaskQuery createNativeTaskQuery()

      Returns a new `NativeQuery` for tasks.

    - #### setVariable

          void setVariable(String taskId,
                           String variableName,
                           Object value)

      set variable on a task. If the variable is not already existing, it will be created in the most outer scope. This means the process instance in case this task is related to an execution.

    - #### setVariables

          void setVariables(String taskId,
                            Map<String,? extends Object> variables)

      set variables on a task. If the variable is not already existing, it will be created in the most outer scope. This means the process instance in case this task is related to an execution.

    - #### setVariableLocal

          void setVariableLocal(String taskId,
                                String variableName,
                                Object value)

      set variable on a task. If the variable is not already existing, it will be created in the task.

    - #### setVariablesLocal

          void setVariablesLocal(String taskId,
                                 Map<String,? extends Object> variables)

      set variables on a task. If the variable is not already existing, it will be created in the task.

    - #### getVariable

          Object getVariable(String taskId,
                             String variableName)

      get a variables and search in the task scope and if available also the execution scopes.

    - #### getVariable

          <T> T getVariable(String taskId,
                            String variableName,
                            Class<T> variableClass)

      get a variables and search in the task scope and if available also the execution scopes.

    - #### hasVariable

          boolean hasVariable(String taskId,
                              String variableName)

      checks whether or not the task has a variable defined with the given name, in the task scope and if available also the execution scopes.

    - #### getVariableLocal

          Object getVariableLocal(String taskId,
                                  String variableName)

      checks whether or not the task has a variable defined with the given name.

    - #### getVariableLocal

          <T> T getVariableLocal(String taskId,
                                 String variableName,
                                 Class<T> variableClass)

      checks whether or not the task has a variable defined with the given name.

    - #### hasVariableLocal

          boolean hasVariableLocal(String taskId,
                                   String variableName)

      checks whether or not the task has a variable defined with the given name, local task scope only.

    - #### getVariables

          Map<String,Object> getVariables(String taskId)

      get all variables and search in the task scope and if available also the execution scopes. If you have many variables and you only need a few, consider using `getVariables(String, Collection)` for better performance.

    - #### getVariablesLocal

          Map<String,Object> getVariablesLocal(String taskId)

      get all variables and search only in the task scope. If you have many task local variables and you only need a few, consider using `getVariablesLocal(String, Collection)` for better performance.

    - #### getVariables

          Map<String,Object> getVariables(String taskId,
                                          Collection<String> variableNames)

      get values for all given variableNames and search only in the task scope.

    - #### getVariablesLocal

          Map<String,Object> getVariablesLocal(String taskId,
                                               Collection<String> variableNames)

      get a variable on a task

    - #### getVariableInstancesLocalByTaskIds

          List<org.activiti.engine.impl.persistence.entity.VariableInstance> getVariableInstancesLocalByTaskIds(Set<String> taskIds)

      get all variables and search only in the task scope.

    - #### removeVariable

          void removeVariable(String taskId,
                              String variableName)

      Removes the variable from the task. When the variable does not exist, nothing happens.

    - #### removeVariableLocal

          void removeVariableLocal(String taskId,
                                   String variableName)

      Removes the variable from the task (not considering parent scopes). When the variable does not exist, nothing happens.

    - #### removeVariables

          void removeVariables(String taskId,
                               Collection<String> variableNames)

      Removes all variables in the given collection from the task. Non existing variable names are simply ignored.

    - #### removeVariablesLocal

          void removeVariablesLocal(String taskId,
                                    Collection<String> variableNames)

      Removes all variables in the given collection from the task (not considering parent scopes). Non existing variable names are simply ignored.

    - #### addComment

          Comment addComment(String taskId,
                             String processInstanceId,
                             String message)

      Add a comment to a task and/or process instance.

    - #### addComment

          Comment addComment(String taskId,
                             String processInstanceId,
                             String type,
                             String message)

      Add a comment to a task and/or process instance with a custom type.

    - #### getComment

          Comment getComment(String commentId)

      Returns an individual comment with the given id. Returns null if no comment exists with the given id.

    - #### deleteComments

          void deleteComments(String taskId,
                              String processInstanceId)

      Removes all comments from the provided task and/or process instance

    - #### deleteComment

          void deleteComment(String commentId)

      Removes an individual comment with the given id.
      Throws:
        `ActivitiObjectNotFoundException` - when no comment exists with the given id.

    - #### getTaskComments

          List<Comment> getTaskComments(String taskId)

      The comments related to the given task.

    - #### getTaskComments

          List<Comment> getTaskComments(String taskId,
                                        String type)

      The comments related to the given task of the given type.

    - #### getCommentsByType

          List<Comment> getCommentsByType(String type)

      All comments of a given type.

    - #### getTaskEvents

          List<Event> getTaskEvents(String taskId)

      The all events related to the given task.

    - #### getEvent

          Event getEvent(String eventId)

      Returns an individual event with the given id. Returns null if no event exists with the given id.

    - #### getProcessInstanceComments

          List<Comment> getProcessInstanceComments(String processInstanceId)

      The comments related to the given process instance.

    - #### getProcessInstanceComments

          List<Comment> getProcessInstanceComments(String processInstanceId,
                                                   String type)

      The comments related to the given process instance.

    - #### createAttachment

          Attachment createAttachment(String attachmentType,
                                      String taskId,
                                      String processInstanceId,
                                      String attachmentName,
                                      String attachmentDescription,
                                      InputStream content)

      Add a new attachment to a task and/or a process instance and use an input stream to provide the content

    - #### createAttachment

          Attachment createAttachment(String attachmentType,
                                      String taskId,
                                      String processInstanceId,
                                      String attachmentName,
                                      String attachmentDescription,
                                      String url)

      Add a new attachment to a task and/or a process instance and use an url as the content

    - #### saveAttachment

          void saveAttachment(Attachment attachment)

      Update the name and decription of an attachment

    - #### getAttachment

          Attachment getAttachment(String attachmentId)

      Retrieve a particular attachment

    - #### getAttachmentContent

          InputStream getAttachmentContent(String attachmentId)

      Retrieve stream content of a particular attachment

    - #### getTaskAttachments

          List<Attachment> getTaskAttachments(String taskId)

      The list of attachments associated to a task

    - #### getProcessInstanceAttachments

          List<Attachment> getProcessInstanceAttachments(String processInstanceId)

      The list of attachments associated to a process instance

    - #### deleteAttachment

          void deleteAttachment(String attachmentId)

      Delete an attachment

    - #### getSubTasks

          List<Task> getSubTasks(String parentTaskId)

      The list of subtasks for this parent task

Copyright © 2016 Alfresco. All rights reserved.