Interface Task

All Superinterfaces:
ConnIdOperationsListener, DebugDumpable, MappingStatisticsCollector, NotificationStatisticsCollector, StatisticsCollector, TaskActionsExecutedCollector, TaskIterativeOperationCollector, TaskSynchronizationStatisticsCollector
All Known Subinterfaces:
RunningLightweightTask, RunningTask
All Known Implementing Classes:
NullTaskImpl

Task instance - a logical unit of work. It is executed either synchronously or asynchronously. When running asynchronously, it can be scheduled, suspended, or resumed. The classes that implement this interface hold a "java" task state. They represent the in-memory task data structure. The instances must be able to serialize the state to the repository object (TaskType) when needed. The task implementation should be simple Java objects (POJOs). They are created also for a synchronous tasks, which means they are created frequently. We want a low overhead for task management until the task is made persistent. API for modifying task properties works like this: - A getter (getItemName) reads data from the in-memory representation of a task. - A setter (setItemName) writes data to the in-memory representation, and (for persistent tasks) prepares a delta to be written into repository later. The deltas should be then written by calling flushPendingModifications(OperationResult) method. In case you want to write property change into the repository immediately, you have to use setItemNameImmediate method. In that case, the change does not go into the list of pending modifications, but it is instantly written into the repository (so the method uses OperationResult as parameter, and can throw relevant exceptions as well).
Author:
Radovan Semancik
  • Field Details

    • DOT_INTERFACE

      static final String DOT_INTERFACE
  • Method Details

    • getTaskIdentifier

      String getTaskIdentifier()
      Returns task (lightweight) identifier. This is an unique identification of any task, regardless whether it is persistent or transient (cf. OID). Therefore this can be used to identify all tasks, e.g. for the purposes of auditing and logging. Task identifier is assigned automatically when the task is created. It is immutable.
    • getOid

      String getOid()
      Returns task OID. Only persistent tasks have OID. So this method returns null if the task is not persistent.
    • getOwner

      PrismObject<? extends FocusType> getOwner(OperationResult result)
      Returns object that owns this task. It usually means the user that started the task or a system used that is used to execute the task. The owner will be used to determine access rights of the task, will be used for auditing, etc. The object is lazily fetched from repository.
    • getOwnerRef

      ObjectReferenceType getOwnerRef()
      Returns a reference to the task owner. (Cloned if the task is running.)
    • setOwner

      void setOwner(PrismObject<? extends FocusType> owner)
      Sets the task owner. Precondition: Task is transient.
    • setOwnerRef

      void setOwnerRef(ObjectReferenceType ownerRef)
      Sets the task owner reference. Precondition: Task is transient.
    • getName

      PolyStringType getName()
      Returns human-readable name of the task.
    • setName

      void setName(PolyStringType value)
      Sets the human-readable name of the task.
    • setName

      void setName(String value)
      Sets the human-readable name of the task.
    • setNameImmediate

      Sets the human-readable name of the task, immediately into repository.
      Throws:
      ObjectNotFoundException
      SchemaException
      ObjectAlreadyExistsException
    • getDescription

      String getDescription()
      Returns task description.
    • setDescription

      void setDescription(String value)
      Sets task description.
    • setDescriptionImmediate

      void setDescriptionImmediate(String value, OperationResult result) throws ObjectNotFoundException, SchemaException
      Sets task description, immediately storing it into the repo.
      Throws:
      ObjectNotFoundException
      SchemaException
    • getExecutionState

      TaskExecutionStateType getExecutionState()
      Returns high-level execution state.
    • isRunnable

      default boolean isRunnable()
    • isRunning

      default boolean isRunning()
    • getSchedulingState

      TaskSchedulingStateType getSchedulingState()
      Returns low-level scheduling state.
    • isClosed

      default boolean isClosed()
      Returns true if the task is closed. (Refers to the scheduling state.)
    • isReady

      default boolean isReady()
      Returns true if the task is ready. (Refers to the scheduling state.)
    • isWaiting

      default boolean isWaiting()
      Returns true if the task is waiting. (BEWARE: Refers to the scheduling state.)
    • isSuspended

      default boolean isSuspended()
      Returns true if the task is suspended. (BEWARE: Refers to the scheduling state.)
    • getWaitingReason

      TaskWaitingReasonType getWaitingReason()
      Returns the task waiting reason for a WAITING task.
    • getNode

      String getNode()
      Returns the node the task is currently executing at, based on repository information. This is present in all cases, however, it might be out-of-date, e.g. when node crashes.
    • getNodeAsObserved

      String getNodeAsObserved()
      Returns the node as really observed. This is a transient information that has to be requested explicitly.
    • setInitialExecutionAndScheduledState

      void setInitialExecutionAndScheduledState(TaskExecutionStateType executionState, TaskSchedulingStateType schedulingState)
      Sets initial task execution and scheduled state. It will be used when the task is made persistent. Precondition: Task is transient.
    • setInitiallyRunnable

      default void setInitiallyRunnable()
      Sets the initial task execution and scheduling state to allow the task to run.
    • setInitiallySuspended

      default void setInitiallySuspended()
      Sets the initial task execution and scheduling state to make task suspended.
    • setInitiallyWaitingForPrerequisites

      void setInitiallyWaitingForPrerequisites()
      Sets the initial task execution and scheduling state to make task waiting (for prerequisite tasks).
    • getPersistenceStatus

      @NotNull @NotNull TaskPersistenceStatus getPersistenceStatus()
      Returns task persistence status.
    • isTransient

      boolean isTransient()
      Returns true if task is transient (i.e. not stored in repository).
    • isPersistent

      boolean isPersistent()
      Returns true if task is persistent (i.e. stored in repository).
    • isAsynchronous

      boolean isAsynchronous()
      Returns true if the task is asynchronous. The asynchronous task is not executing in foreground. Therefore any thread that is not explicitly allocated for the task can be discarded. E.g. if a GUI thread detects that the task is asynchronous it knows that there is no point in waiting for the task result. It can just display appropriate message to the user (e.g. "please come back later") and return control back to the web container. Usually, asynchronous means the same as persistent. However, there can are lightweight tasks that are asynchronous but not stored in repository.
      Returns:
      true if the task is asynchronous.
    • getRecurrence

      @NotNull @NotNull TaskRecurrenceType getRecurrence()
      Returns task recurrence status.
    • isRecurring

      default boolean isRecurring()
      Checks whether the task is a cyclic (recurring) one.
    • isSingle

      default boolean isSingle()
      Checks whether the task is single-run.
    • makeSingle

      default void makeSingle()
      Makes a task single-run, with no particular schedule.
    • setSchedule

      void setSchedule(ScheduleType schedule)
      Sets the schedule for the task. Removes also the legacy recurrence flag.
    • getExecutionConstraints

      TaskExecutionConstraintsType getExecutionConstraints()
      Returns task execution constraints
    • setExecutionConstraints

      void setExecutionConstraints(TaskExecutionConstraintsType value)
      Sets task execution constraints.
    • getGroup

      String getGroup()
      Gets the execution group name (i.e. executionConstraints/group).
    • getGroups

      @NotNull @NotNull Collection<String> getGroups()
      Returns names of all groups (primary plus all secondary ones).
    • getGroupsWithLimits

      @NotNull @NotNull Map<String,Integer> getGroupsWithLimits()
      Returns all groups (primary plus all secondary ones) along with task count limits.
    • getSchedule

      ScheduleType getSchedule()
      Returns the schedule.
    • getScheduleInterval

      Integer getScheduleInterval()
      Returns the schedule interval.
    • hasScheduleInterval

      boolean hasScheduleInterval()
      Returns true if the schedule interval is set.
    • getThreadStopAction

      ThreadStopActionType getThreadStopAction()
      Returns thread stop action (what happens when the task thread is stopped e.g. because of node going down).
    • setThreadStopAction

      void setThreadStopAction(ThreadStopActionType value)
      Sets the thread stop action for this task.
    • getLastRunStartTimestamp

      Long getLastRunStartTimestamp()
      Returns the time when the task last run was started (or null if the task was never started). This is set only for asynchronously executing tasks. And it is set also for the current execution.
    • getLastRunFinishTimestamp

      Long getLastRunFinishTimestamp()
      Returns the time when the task last run was finished (or null if the task was not finished yet). This is set only for asynchronously executing tasks.
    • getNextRunStartTime

      Long getNextRunStartTime(OperationResult result)
      Returns the time when the task should start again. This is transient property, present only if explicitly requested.
    • getCompletionTimestamp

      Long getCompletionTimestamp()
      Returns the completion timestamp - time when the task was closed (or null if it is not closed).
    • getBinding

      TaskBindingType getBinding()
      Returns task binding.
    • isLooselyBound

      default boolean isLooselyBound()
      Returns true if the task is loosely bound.
    • isTightlyBound

      default boolean isTightlyBound()
      Returns true if the task is tightly bound.
    • getHandlerUri

      String getHandlerUri()
      Returns handler URI. It indirectly specifies which class is responsible to handle the task. The handler will execute reaction to a task lifecycle events such as executing the task, task heartbeat, etc.
    • setHandlerUri

      void setHandlerUri(String value)
      Sets handler URI.
    • addArchetypeInformation

      @Experimental void addArchetypeInformation(@NotNull @NotNull String archetypeOid)
      Adds an archetype for the task. Assumes that the task will NOT undergo full model processing, so this method will do everything by itself: creates an assignment, roleMembershipRef and archetypeRef. Throws an exception if an archetype is already assigned. This is temporary/experimental implementation. It was not tested for persistent tasks (although it should work also for them).
    • addArchetypeInformationIfMissing

      @Experimental void addArchetypeInformationIfMissing(@NotNull @NotNull String archetypeOid)
      As addArchetypeInformation(String) but executed only if there's no archetype currently set.
    • getExtensionOrClone

      PrismContainer<? extends ExtensionType> getExtensionOrClone()
      Returns task extension. The extension is a part of task that can store arbitrary data. It usually holds data specific to a task type, internal task state, business state or similar data that are out of scope of this interface definition. To maintain thread safety, for RunningTask this method returns extension clone. (So don't use the return value to modify the task extension if not sure whether the task is running.)
    • getOrCreateExtension

      @NotNull @NotNull PrismContainer<? extends ExtensionType> getOrCreateExtension() throws SchemaException
      Gets or creates an extension. Just like PrismObject.getOrCreateExtension(). Cloned if the task is running.
      Throws:
      SchemaException
    • getExtensionClone

      PrismContainer<? extends ExtensionType> getExtensionClone()
      Gets extension clone, or null if there is no extension.
    • getExtensionPropertyOrClone

      <T> PrismProperty<T> getExtensionPropertyOrClone(ItemName propertyName)
      Returns specified property from the extension; or null if extension or property does not exist. Cloned if task is running.
    • getExtensionPropertyRealValue

      default <T> T getExtensionPropertyRealValue(ItemName propertyName)
      Returns specified single-valued property real value from the extension (null if extension or property does not exist).
    • getPropertyRealValue

      <T> T getPropertyRealValue(ItemPath path, Class<T> expectedType)
    • getPropertyRealValueOrClone

      <T> T getPropertyRealValueOrClone(ItemPath path, Class<T> expectedType)
    • getItemRealValueOrClone

      <T> T getItemRealValueOrClone(ItemPath path, Class<T> expectedType)
    • getReferenceRealValue

      ObjectReferenceType getReferenceRealValue(ItemPath path)
      TODO what about thread safety?
    • getReferenceRealValues

      Collection<ObjectReferenceType> getReferenceRealValues(ItemPath path)
      TODO what about thread safety?
    • getExtensionContainerRealValueOrClone

      <T extends Containerable> T getExtensionContainerRealValueOrClone(ItemName containerName)
      Returns specified single-valued container real value from the extension To ensure thread safety, in the case of running tasks the returned value is a clone of the live one. Returns null if extension or container does not exist.
    • getExtensionReferenceOrClone

      PrismReference getExtensionReferenceOrClone(ItemName name)
      Returns specified reference from the extension. Cloned if running task. Null if extension or reference does not exist.
    • getExtensionItemOrClone

      <IV extends PrismValue, ID extends ItemDefinition<?>> Item<IV,ID> getExtensionItemOrClone(ItemName itemName)
      Returns specified item (property, reference or container) from the extension. Cloned if running task. Null if extension or item does not exist.
    • setExtensionProperty

      void setExtensionProperty(PrismProperty<?> property) throws SchemaException
      Sets a property in the extension - replaces existing value(s), if any, by the one(s) provided.
      Throws:
      SchemaException
    • setExtensionPropertyImmediate

      void setExtensionPropertyImmediate(PrismProperty<?> property, OperationResult result) throws ObjectNotFoundException, SchemaException
      "Immediate" version of the above method.
      Throws:
      ObjectNotFoundException
      SchemaException
    • setExtensionPropertyValue

      default <T> void setExtensionPropertyValue(QName propertyName, T value) throws SchemaException
      Sets (i.e., replaces) the value of the given property in task extension.
      Parameters:
      propertyName - name of the property
      value - value of the property
      Throws:
      SchemaException
    • setPropertyRealValue

      <T> void setPropertyRealValue(ItemPath path, T value) throws SchemaException
      Throws:
      SchemaException
    • setItemRealValues

      default void setItemRealValues(ItemPath path, Object... value) throws SchemaException
      Throws:
      SchemaException
    • setItemRealValuesCollection

      default void setItemRealValuesCollection(ItemPath path, Collection<?> values) throws SchemaException
      Throws:
      SchemaException
    • setExtensionReference

      void setExtensionReference(PrismReference reference) throws SchemaException
      Sets a reference in the extension - replaces existing value(s), if any, by the one(s) provided.
      Throws:
      SchemaException
    • setExtensionContainer

      <C extends Containerable> void setExtensionContainer(PrismContainer<C> item) throws SchemaException
      Sets a container in the extension - replaces existing value(s), if any, by the one(s) provided.
      Parameters:
      item - Container with value(s) to be put into task extension.
      Throws:
      SchemaException
    • setExtensionContainerValue

      <T extends Containerable> void setExtensionContainerValue(QName containerName, T value) throws SchemaException
      Sets a container value in the extension - replaces existing value(s), if any, by the one provided.
      Parameters:
      containerName - name of the container
      value - value to be put into extension
      Throws:
      SchemaException
    • setExtensionItem

      void setExtensionItem(Item<?,?> item) throws SchemaException
      Puts generic item into extension.
      Throws:
      SchemaException
    • addExtensionProperty

      void addExtensionProperty(PrismProperty<?> property) throws SchemaException
      Adds value(s) to a given extension property.
      Parameters:
      property - holder of the value(s) to be added into task extension property
      Throws:
      SchemaException
    • addExtensionReference

      void addExtensionReference(PrismReference reference) throws SchemaException
      Adds value(s) to a given extension reference.
      Parameters:
      reference - holder of the value(s) to be added into task extension reference
      Throws:
      SchemaException
    • deleteExtensionProperty

      void deleteExtensionProperty(PrismProperty<?> property) throws SchemaException
      Removes specified VALUES of this extension property (not all of its values).
      Throws:
      SchemaException
    • getObject

      <T extends ObjectType> PrismObject<T> getObject(Class<T> type, OperationResult result) throws ObjectNotFoundException, SchemaException
      Returns object that the task is associated with. Tasks may be associated with a particular objects. For example a "import from resource" task is associated with the resource definition object that it imports from. Similarly for synchronization and reconciliation tasks (cycles). User approval and modification task may be associated with that user. If the task contains a reference without full object, the object is fetched from the repository. (Authorizations are *not* checked.)
      Throws:
      ObjectNotFoundException
      SchemaException
    • getObjectRefOrClone

      ObjectReferenceType getObjectRefOrClone()
      Returns reference to the object that the task is associated with. Tasks may be associated with a particular objects. For example a "import from resource" task is associated with the resource definition object that it imports from. Similarly for synchronization and reconciliation tasks (cycles). This is an optional property.
    • getObjectOid

      String getObjectOid()
      Returns OID of the object that the task is associated with. Convenience method. This will get the OID from the objectRef.
    • setObjectRef

      void setObjectRef(ObjectReferenceType objectRef)
      Sets the object reference.
    • setObjectRef

      void setObjectRef(String oid, QName type)
      Sets the object reference.
    • getResult

      OperationResult getResult()
      Returns a top-level OperationResult stored in the task. Beware of thread safety. This is a live object!
    • getResultStatus

      OperationResultStatusType getResultStatus()
      Returns the status of top-level OperationResult stored in the task. If "live" operation result is present, the status it taken from it. Otherwise, resultStatus from task prism is fetched. TODO reconsider this method
    • setResult

      void setResult(OperationResult result)
      Sets the top-level OperationResult stored in the task. Use with care!
    • applyDeltasImmediate

      void applyDeltasImmediate(Collection<ItemDelta<?,?>> itemDeltas, OperationResult result) throws ObjectAlreadyExistsException, ObjectNotFoundException, SchemaException
      Throws:
      ObjectAlreadyExistsException
      ObjectNotFoundException
      SchemaException
    • applyModificationsTransient

      void applyModificationsTransient(Collection<ItemDelta<?,?>> modifications) throws SchemaException
      Throws:
      SchemaException
    • getLegacyProgress

      long getLegacyProgress()
      Returns task progress, as reported by task handler.
    • setLegacyProgress

      void setLegacyProgress(Long value)
      Records _legacy_ progress of the task, storing it persistently if needed.
    • incrementLegacyProgressTransient

      void incrementLegacyProgressTransient()
      Increments legacy progress without creating a pending modification.
    • setLegacyProgressImmediate

      void setLegacyProgressImmediate(Long progress, OperationResult parentResult) throws ObjectNotFoundException, SchemaException
      "Immediate" version of setLegacyProgress(Long). BEWARE: this method can take quite a long time to execute, if invoked in a cycle.
      Throws:
      ObjectNotFoundException
      SchemaException
    • getStoredOperationStatsOrClone

      OperationStatsType getStoredOperationStatsOrClone()
      Returns operation statistics from the task prism object (i.e. not the live ones). Clones if running task.
    • getAggregatedLiveOperationStats

      OperationStatsType getAggregatedLiveOperationStats()
      Gets information from the current task and - for running task - its transient subtasks (aka worker threads). Clients beware: Update thread-local statistics before! They are not updated inside this method.
    • getExpectedTotal

      @Nullable @Nullable Long getExpectedTotal()
      Returns expected total progress.
    • setExpectedTotal

      void setExpectedTotal(Long value)
      Stores expected total progress of the task, storing it persistently if needed.
    • createSubtask

      Task createSubtask()
      Creates a transient subtask. Owner is inherited from parent task to subtask.
    • getParent

      String getParent()
      Returns the identifier of the task's parent (or null of there is no parent task).
    • getParentTask

      Returns the parent task, if any.
      Throws:
      SchemaException
      ObjectNotFoundException
    • listSubtasks

      @NotNull default @NotNull List<? extends Task> listSubtasks(OperationResult parentResult) throws SchemaException
      Lists the (direct) subtasks of a given task.
      Throws:
      SchemaException
    • listSubtasks

      @NotNull @NotNull List<? extends Task> listSubtasks(boolean persistentOnly, OperationResult parentResult) throws SchemaException
      Throws:
      SchemaException
    • listSubtasksDeeply

      List<? extends Task> listSubtasksDeeply(OperationResult result) throws SchemaException
      List all the subtasks of a given task, i.e. whole task tree rooted at the current task. Current task is not contained in the returned list.
      Throws:
      SchemaException
    • listSubtasksDeeply

      List<? extends Task> listSubtasksDeeply(boolean persistentOnly, OperationResult result) throws SchemaException
      Lists all tasks in subtasks tree.
      Parameters:
      persistentOnly - If true, transient subtasks (i.e. lightweight asynchronous tasks) are ignored.
      Throws:
      SchemaException
    • listDependents

      Lists all explicit dependents, i.e. tasks that wait for the completion of this tasks (that depend on it). Implicit dependents, i.e. task's parent, grandparent, etc are NOT listed here.
      Throws:
      SchemaException
      ObjectNotFoundException
    • getDependents

      List<String> getDependents()
      Lists all explicit dependents' identifiers.
    • addDependent

      void addDependent(String taskIdentifier)
      Add a task as this task's dependent, i.e. the task denoted by taskIdentifier DEPENDS ON (waits for completion of) this task.
    • listPrerequisiteTasks

      List<? extends Task> listPrerequisiteTasks(OperationResult parentResult) throws SchemaException
      List all prerequisite tasks for the current tasks, i.e. tasks that must complete before this one can proceed. If A is on the list of prerequisites of B (THIS), it means that B is on list of dependents of A (i.e. B waits for A to complete). Again, implicit prerequisites (children) are not listed here.
      Throws:
      SchemaException
    • getRawTaskObjectClonedIfNecessary

      @NotNull @NotNull PrismObject<TaskType> getRawTaskObjectClonedIfNecessary()
      Returns backing task prism object without updating with current operation result. If the task is running, a clone is returned.
    • getRawTaskObjectClone

      @NotNull @NotNull PrismObject<TaskType> getRawTaskObjectClone()
      Returns CLONE of backing task prism object without updating with current operation result.
    • getUpdatedTaskObject

      @NotNull @NotNull PrismObject<TaskType> getUpdatedTaskObject()
      Returns backing task prism object UPDATED with current operation result. Assumes that task is not running. (Otherwise IllegalStateException is thrown.)
    • getSelfReference

      @NotNull @NotNull ObjectReferenceType getSelfReference()
      Returns a reference to the task prism. Precondition: Task must be persistent.
    • getSelfReferenceFull

      @NotNull @NotNull ObjectReferenceType getSelfReferenceFull()
      Returns a full (object-bearing) reference to the task prism. Precondition: Task must be persistent.
    • getVersion

      String getVersion()
      Returns the version of underlying prism object.
    • refresh

      Re-reads the task state from the persistent storage. The task state may be synchronized with the repository all the time. But the specified timing is implementation-specific. Call to this method will make sure that the task contains fresh data. This has no effect on transient tasks.
      Throws:
      ObjectNotFoundException
      SchemaException
    • modify

      void modify(@NotNull @NotNull ItemDelta<?,?> delta) throws SchemaException
      Changes in-memory representation immediately and schedules a corresponding batched modification.
      Throws:
      SchemaException
    • modify

      default void modify(Collection<ItemDelta<?,?>> deltas) throws SchemaException
      Applies given collection of deltas.
      Throws:
      SchemaException
    • flushPendingModifications

      void flushPendingModifications(OperationResult parentResult) throws ObjectNotFoundException, SchemaException, ObjectAlreadyExistsException
      Saves modifications done against the in-memory version of the task into the repository.
      Throws:
      ObjectNotFoundException
      SchemaException
      ObjectAlreadyExistsException
    • getContainerableOrClone

      <C extends Containerable> C getContainerableOrClone(ItemPath path, Class<C> type)
      TODO
    • doesItemExist

      boolean doesItemExist(ItemPath path)
      TODO
    • getActivityStateOrClone

      ActivityStateType getActivityStateOrClone(ItemPath path)
      TODO
    • getActivityStateOrClone

      @Nullable default @Nullable ActivityStateType getActivityStateOrClone(@NotNull @NotNull ActivityPath activityPath)
      Returns the activity state for given activity path. Assumes local execution!
    • getRootActivityCompletionTimestamp

      @Nullable default @Nullable XMLGregorianCalendar getRootActivityCompletionTimestamp()
      Returns the completion timestamp of the root activity. Assumes being executed on the root task.
    • getRootActivityDefinitionOrClone

      default ActivityDefinitionType getRootActivityDefinitionOrClone()
      Retrieves the definition of the [root] activity.
    • setRootActivityDefinition

      default void setRootActivityDefinition(ActivityDefinitionType activityDefinition) throws SchemaException
      Throws:
      SchemaException
    • getWorkState

      TaskActivityStateType getWorkState()
      Gets task work state. NOT THREAD SAFE! TODO throw exception for RunningTask. (After revising of all uses.)
    • getActivitiesStateOrClone

      TaskActivityStateType getActivitiesStateOrClone()
      Gets task work state or its clone (for running tasks). TODO better name
    • getActivityTreeStateOverviewOrClone

      @Nullable default @Nullable ActivityStateOverviewType getActivityTreeStateOverviewOrClone()
    • getParentAndRoot

      @NotNull @NotNull ParentAndRoot getParentAndRoot(OperationResult result) throws SchemaException, ObjectNotFoundException
      Looks for OID of the parent and the root of the task tree for this task. PRE: task is either persistent or is a RunningTask.
      Throws:
      SchemaException
      ObjectNotFoundException
    • getRoot

      @NotNull default @NotNull Task getRoot(OperationResult result) throws SchemaException, ObjectNotFoundException
      Returns the root of the task tree for this task. PRE: task is either persistent or is a RunningTask.
      Throws:
      SchemaException
      ObjectNotFoundException
    • getPathToRootTask

      List<Task> getPathToRootTask(OperationResult result) throws SchemaException
      Returns the path from this task to the task tree root. (Starts with this task, ends with the root.)
      Throws:
      SchemaException
    • getTracingRequestedFor

      @Experimental @NotNull @NotNull Collection<TracingRootType> getTracingRequestedFor()
      Get points for which the tracing is requested (within this task).
    • addTracingRequest

      @Experimental void addTracingRequest(TracingRootType point)
      Requests (future) tracing for given tracing point - for this task.
    • removeTracingRequests

      @Experimental void removeTracingRequests()
      Removes all tracing requests for this task.
    • getTracingProfile

      @Experimental TracingProfileType getTracingProfile()
      Returns (reference to tracing profile) that was defined for the tracing started by this task. NOT THREAD SAFE!
    • setTracingProfile

      @Experimental void setTracingProfile(TracingProfileType tracingProfile)
      Sets the profile to be used for future tracing within this task.
    • registerConnIdOperationsListener

      @Experimental void registerConnIdOperationsListener(@NotNull @NotNull ConnIdOperationsListener listener)
    • unregisterConnIdOperationsListener

      @Experimental void unregisterConnIdOperationsListener(@NotNull @NotNull ConnIdOperationsListener listener)
    • getChannel

      String getChannel()
      Returns channel URI associated with this task.
    • setChannel

      void setChannel(String channelUri)
      Sets channel URI.
    • getRequestee

      PrismObject<UserType> getRequestee()
      Gets the requestee OID - typically an identification of account owner (for notifications). Serves for communication between model and provisioning. It is a temporary feature - will be removed in midPoint 2.3.
    • setRequesteeTransient

      void setRequesteeTransient(PrismObject<UserType> user)
    • getExecutionEnvironment

      TaskExecutionEnvironmentType getExecutionEnvironment()
      Gets the execution environment configuration. Cloned if running task.
    • getCachingProfiles

      @NotNull @NotNull Collection<String> getCachingProfiles()
      Returns an immutable collection of caching profiles. (From execution environment.)
    • setExecutionEnvironment

      void setExecutionEnvironment(TaskExecutionEnvironmentType value)
      Sets the execution environment configuration.
    • hasAssignments

      boolean hasAssignments()
      Returns true if the task has any assignments.
    • getCleanupAfterCompletion

      Duration getCleanupAfterCompletion()
    • setCleanupAfterCompletion

      void setCleanupAfterCompletion(Duration duration)
    • isRoot

      default boolean isRoot()
    • getExecutionSupport

      default ExecutionSupport getExecutionSupport()
    • isIndestructible

      default boolean isIndestructible()
    • getExecutionMode

      @NotNull @NotNull TaskExecutionMode getExecutionMode()
      Returns the execution mode of this task.
    • isExecutionFullyPersistent

      default boolean isExecutionFullyPersistent()
    • areShadowChangesSimulated

      default boolean areShadowChangesSimulated()
    • isProductionConfiguration

      default boolean isProductionConfiguration()
    • canSee

      default boolean canSee(AbstractMappingType mapping)
      Just a convenience method.
    • canSee

      default boolean canSee(ObjectType object)
      Just a convenience method.
    • canSee

      default boolean canSee(String lifecycleState)
      Just a convenience method.
    • setExecutionMode

      @NotNull @NotNull TaskExecutionMode setExecutionMode(@NotNull @NotNull TaskExecutionMode mode)
      Sets the execution mode of this task. Use with care - preferably only for new tasks. Returns the original value.
    • assertPersistentExecution

      default void assertPersistentExecution(String message)
    • setSimulationTransaction

      SimulationTransaction setSimulationTransaction(SimulationTransaction context)
      Sets the current simulation transaction object.
    • getSimulationTransaction

      @Nullable @Nullable SimulationTransaction getSimulationTransaction()
      Returns the current simulation transaction, if there is any.