com.evolveum.midpoint.task.api.Task.getTaskPrismObject()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(12.3k)|赞(0)|评价(0)|浏览(153)

本文整理了Java中com.evolveum.midpoint.task.api.Task.getTaskPrismObject()方法的一些代码示例,展示了Task.getTaskPrismObject()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.getTaskPrismObject()方法的具体详情如下:
包路径:com.evolveum.midpoint.task.api.Task
类名称:Task
方法名:getTaskPrismObject

Task.getTaskPrismObject介绍

[英]Returns backing task prism object.
[中]返回支持任务棱镜对象。

代码示例

代码示例来源:origin: Evolveum/midpoint

/**
 * return appropriate form of taskType (and result) to
 * return back to a web service caller.
 *
 * @param task
 */
private TaskType handleTaskResult(Task task) {
  return task.getTaskPrismObject().asObjectable();
}

代码示例来源:origin: Evolveum/midpoint

private static void addProvidedVariables(HashMap<String, Object> resultingVariables, Map<String, Object> initialVariables, Task task) {
  putImmutableValue(resultingVariables, ExpressionConstants.VAR_TASK.getLocalPart(), task.getTaskPrismObject().asObjectable());
  if (initialVariables != null) {
    initialVariables.forEach((key, value) -> putImmutableValue(resultingVariables, key, value));
  }
}

代码示例来源:origin: Evolveum/midpoint

public Collection<ObjectReferenceType> getApprovedByFromTaskTree(Task task, OperationResult result) throws SchemaException {
  // we use a OID-keyed map to (1) keep not only the OID, but whole reference, but (2) eliminate uncertainty in comparing references
  Map<String,ObjectReferenceType> approvers = new HashMap<>();
  List<Task> tasks = task.listSubtasksDeeply(result);
  tasks.add(task);
  for (Task aTask : tasks) {
    List<ObjectReferenceType> approvedBy = getApprovedBy(WfContextUtil.getWorkflowContext(aTask.getTaskPrismObject()));
    approvedBy.forEach(ort -> approvers.put(ort.getOid(), ort));
  }
  return CloneUtil.cloneCollectionMembers(approvers.values());            // to ensure these are parent-less
}

代码示例来源:origin: Evolveum/midpoint

public static boolean canPerformStage(String stageUri, Task task) throws SchemaException {
  PrismObject<TaskType> taskType = task.getTaskPrismObject();
  PrismProperty<String> stageType = taskType.findProperty(ItemPath.create(TaskType.F_STAGE, TaskStageType.F_STAGE));
  if (stageType == null) {
    return false;
  }
  
  String stageTypeRealValue = stageType.getRealValue();
  return stageUri.equals(stageTypeRealValue);
}

代码示例来源:origin: Evolveum/midpoint

public static String getStageUri(Task task) {
  PrismObject<TaskType> taskType = task.getTaskPrismObject();
  PrismProperty<String> stageType = taskType.findProperty(ItemPath.create(TaskType.F_STAGE, TaskStageType.F_STAGE));
  if (stageType == null) {
    return ModelPublicConstants.RECONCILIATION_TASK_HANDLER_URI + "#execute";
  }
  
  return stageType.getRealValue();
}

代码示例来源:origin: Evolveum/midpoint

public static void removeAllStageTriggersForWorkItem(Task wfTask, OperationResult result) {
  List<PrismContainerValue<TriggerType>> toDelete = new ArrayList<>();
  for (TriggerType triggerType : wfTask.getTaskPrismObject().asObjectable().getTrigger()) {
    if (WfTimedActionTriggerHandler.HANDLER_URI.equals(triggerType.getHandlerUri())) {
      toDelete.add(triggerType.clone().asPrismContainerValue());
    }
  }
  removeSelectedTriggers(wfTask, toDelete, result);
}

代码示例来源:origin: Evolveum/midpoint

public ObjectTreeDeltas retrieveResultingDeltas(Task task) throws SchemaException {
  PrismProperty<ObjectTreeDeltasType> deltaTypePrismProperty = task.getTaskPrismObject().findProperty(ItemPath.create(F_WORKFLOW_CONTEXT, F_PROCESSOR_SPECIFIC_STATE, F_RESULTING_DELTAS));
  if (deltaTypePrismProperty == null) {
    return null;
  }
  return ObjectTreeDeltas.fromObjectTreeDeltasType(deltaTypePrismProperty.getRealValue(), prismContext);
}

代码示例来源:origin: Evolveum/midpoint

public static void removeTriggersForWorkItem(Task wfTask, String workItemId, OperationResult result) {
  List<PrismContainerValue<TriggerType>> toDelete = new ArrayList<>();
  for (TriggerType triggerType : wfTask.getTaskPrismObject().asObjectable().getTrigger()) {
    if (WfTimedActionTriggerHandler.HANDLER_URI.equals(triggerType.getHandlerUri())) {
      PrismProperty workItemIdProperty = triggerType.getExtension().asPrismContainerValue()
          .findProperty(SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ID);
      if (workItemIdProperty != null && workItemId.equals(workItemIdProperty.getRealValue())) {
        toDelete.add(triggerType.clone().asPrismContainerValue());
      }
    }
  }
  removeSelectedTriggers(wfTask, toDelete, result);
}

代码示例来源:origin: Evolveum/midpoint

public ObjectTreeDeltas retrieveDeltasToProcess(Task task) throws SchemaException {
  PrismProperty<ObjectTreeDeltasType> deltaTypePrismProperty = task.getTaskPrismObject().findProperty(ItemPath.create(F_WORKFLOW_CONTEXT, F_PROCESSOR_SPECIFIC_STATE, F_DELTAS_TO_PROCESS));
  if (deltaTypePrismProperty == null) {
    throw new SchemaException("No deltas to process in task extension; task = " + task);
  }
  return ObjectTreeDeltas.fromObjectTreeDeltasType(deltaTypePrismProperty.getRealValue(), prismContext);
}

代码示例来源:origin: Evolveum/midpoint

private PrismObject<TaskType> getTaskAsObject(String oid, Collection<SelectorOptions<GetOperationOptions>> options, OperationResult result) throws SchemaException, ObjectNotFoundException {
  ClusterStatusInformation clusterStatusInformation = getClusterStatusInformation(options, TaskType.class, true, result); // returns null if noFetch is set
  Task task = getTask(oid, options, result);
  addTransientTaskInformation(task.getTaskPrismObject(),
      clusterStatusInformation,
      SelectorOptions.hasToLoadPath(TaskType.F_NEXT_RUN_START_TIMESTAMP, options),
      SelectorOptions.hasToLoadPath(TaskType.F_NEXT_RETRY_TIMESTAMP, options),
      SelectorOptions.hasToLoadPath(TaskType.F_NODE_AS_OBSERVED, options),
      result);
  if (SelectorOptions.hasToLoadPath(TaskType.F_SUBTASK, options)) {
    fillInSubtasks(task, clusterStatusInformation, options, result);
  }
  fillOperationExecutionState(task);
  return task.getTaskPrismObject();
}

代码示例来源:origin: Evolveum/midpoint

public Collection<String> getApproverCommentsFromTaskTree(Task task, OperationResult result) throws SchemaException {
  Task opTask = taskManager.createTaskInstance();
  Collection<String> rv = new HashSet<>();
  PrismObject<SystemConfigurationType> systemConfiguration = systemObjectCache.getSystemConfiguration(result);
  PerformerCommentsFormattingType formatting = systemConfiguration != null &&
      systemConfiguration.asObjectable().getWorkflowConfiguration() != null ?
      systemConfiguration.asObjectable().getWorkflowConfiguration().getApproverCommentsFormatting() : null;
  PerformerCommentsFormatter formatter = workflowManager.createPerformerCommentsFormatter(formatting);
  List<Task> tasks = task.listSubtasksDeeply(result);
  tasks.add(task);
  for (Task aTask : tasks) {
    rv.addAll(getApproverComments(WfContextUtil.getWorkflowContext(aTask.getTaskPrismObject()), formatter, opTask, result));
  }
  return rv;
}

代码示例来源:origin: Evolveum/midpoint

private static TriggerBuilder<Trigger> createBasicTriggerBuilderForTask(Task task) {
  TaskType taskType = task.getTaskPrismObject().asObjectable();
  String executionGroup = taskType.getExecutionConstraints() != null
      ? MiscUtil.nullIfEmpty(taskType.getExecutionConstraints().getGroup())
      : null;
  return TriggerBuilder.newTrigger()
      .forJob(createJobKeyForTask(task))
      .executionGroup(executionGroup);
}

代码示例来源:origin: Evolveum/midpoint

private void completeWorkBucketStandalone(Context ctx, int sequentialNumber, OperationResult result)
    throws SchemaException, ObjectAlreadyExistsException, ObjectNotFoundException {
  TaskWorkStateType workState = getWorkState(ctx.workerTask);
  WorkBucketType bucket = TaskWorkStateTypeUtil.findBucketByNumber(workState.getBucket(), sequentialNumber);
  if (bucket == null) {
    throw new IllegalStateException("No work bucket with sequential number of " + sequentialNumber + " in " + ctx.workerTask);
  }
  if (bucket.getState() != WorkBucketStateType.READY && bucket.getState() != null) {
    throw new IllegalStateException("Work bucket " + sequentialNumber + " in " + ctx.coordinatorTask
        + " cannot be marked as complete, as it is not ready; its state = " + bucket.getState());
  }
  Collection<ItemDelta<?, ?>> modifications = bucketStateChangeDeltas(bucket, WorkBucketStateType.COMPLETE);
  repositoryService.modifyObject(TaskType.class, ctx.workerTask.getOid(), modifications, null, result);
  ItemDeltaCollectionsUtil.applyTo(modifications, ctx.workerTask.getTaskPrismObject());
  compressCompletedBuckets(ctx.workerTask, result);
}

代码示例来源:origin: Evolveum/midpoint

private void processPostReportScript(ReportType parentReport, String reportOutputFilePath, Task task, OperationResult parentResult ) {
  CommandLineScriptType scriptType = parentReport.getPostReportScript();
  if (scriptType == null) {
    LOGGER.debug("No post report script found in {}, skipping", parentReport);
    return;
  }
  
  ExpressionVariables variables = new ExpressionVariables();
  variables.addVariableDefinition(ExpressionConstants.VAR_OBJECT, parentReport);
  variables.addVariableDefinition(ExpressionConstants.VAR_TASK, task.getTaskPrismObject().asObjectable());
  variables.addVariableDefinition(ExpressionConstants.VAR_FILE, commandLineScriptExecutor.getOsSpecificFilePath(reportOutputFilePath));
  try {
    
    commandLineScriptExecutor.executeScript(scriptType, variables, "post-report script in "+parentReport, task, parentResult);
    
  } catch (Exception e) {
    LOGGER.error("An exception has occurred during post report script execution {}",e.getLocalizedMessage());
    // LoggingUtils.logExceptionAsWarning(LOGGER,"And unexpected exception occurred during post report script execution",e, task);
  }
}

代码示例来源:origin: Evolveum/midpoint

private Task extractTask0(List<Task> subtasks, TestDetails testDetails) {
  Task task0 = null;
  for (Task subtask : subtasks) {
    if (subtask.getTaskPrismObject().asObjectable().getWorkflowContext() == null || subtask.getTaskPrismObject().asObjectable().getWorkflowContext().getProcessInstanceId() == null) {
      assertNull("More than one non-wf-monitoring subtask", task0);
      task0 = subtask;
    }
  }
  if (testDetails.immediate()) {
    assertNotNull("Subtask for immediate execution was not found", task0);
    subtasks.remove(task0);
  }
  return task0;
}

代码示例来源:origin: Evolveum/midpoint

@Override
public String addTask(PrismObject<TaskType> taskPrism, RepoAddOptions options, OperationResult parentResult) throws ObjectAlreadyExistsException, SchemaException {
  OperationResult result = parentResult.createSubresult(DOT_INTERFACE + "addTask");
  Task task = createTaskInstance(taskPrism, result);            // perhaps redundant, but it's more convenient to work with Task than with Task prism
  if (task.getTaskIdentifier() == null) {
    task.getTaskPrismObject().asObjectable().setTaskIdentifier(generateTaskIdentifier().toString());
  }
  String oid = addTaskToRepositoryAndQuartz(task, options, result);
  result.computeStatus();
  return oid;
}

代码示例来源:origin: Evolveum/midpoint

private String getCompareKey(Task task) {
  return task.getTaskPrismObject().asObjectable().getWorkflowContext().getTargetRef().getOid();
}

代码示例来源:origin: Evolveum/midpoint

private <F extends ObjectType> void applyCreateMetadata(LensContext<F> context, MetadataType metaData, XMLGregorianCalendar now, Task task) {
  String channel = LensUtil.getChannel(context, task);
  metaData.setCreateChannel(channel);
  metaData.setCreateTimestamp(now);
  if (task.getOwner() != null) {
    metaData.setCreatorRef(createObjectRef(task.getOwner(), prismContext));
  }
  metaData.setCreateTaskRef(task.getOid() != null ? createObjectRef(task.getTaskPrismObject(), prismContext) : null);
}

代码示例来源:origin: Evolveum/midpoint

public <F extends ObjectType, T extends ObjectType> Collection<ItemDelta<?,?>> createModifyMetadataDeltas(LensContext<F> context,
    ItemPath metadataPath, Class<T> objectType, XMLGregorianCalendar now, Task task) throws SchemaException {
  return prismContext.deltaFor(objectType)
      .item(metadataPath.append(MetadataType.F_MODIFY_CHANNEL)).replace(LensUtil.getChannel(context, task))
      .item(metadataPath.append(MetadataType.F_MODIFY_TIMESTAMP)).replace(now)
      .item(metadataPath.append(MetadataType.F_MODIFIER_REF)).replace(createObjectRef(task.getOwner(), prismContext))
      .item(metadataPath.append(MetadataType.F_MODIFY_TASK_REF)).replaceRealValues(
          task.getOid() != null ? singleton(createObjectRef(task.getTaskPrismObject(), prismContext)) : emptySet())
      .asItemDeltas();
}

代码示例来源:origin: Evolveum/midpoint

private void setOperationContext(OperationExecutionType operation,
    OperationResultStatusType overallStatus, XMLGregorianCalendar now, String channel, Task task) {
  if (task.getParentForLightweightAsynchronousTask() != null) {
    task = task.getParentForLightweightAsynchronousTask();
  }
  if (task.isPersistent()) {
    operation.setTaskRef(ObjectTypeUtil.createObjectRef(task.getTaskPrismObject(), prismContext));
  }
  operation.setStatus(overallStatus);
  operation.setInitiatorRef(ObjectTypeUtil.createObjectRef(task.getOwner(), prismContext));        // TODO what if the real initiator is different? (e.g. when executing approved changes)
  operation.setChannel(channel);
  operation.setTimestamp(now);
}

相关文章