本文整理了Java中com.evolveum.midpoint.task.api.Task.getTaskPrismObject()
方法的一些代码示例,展示了Task.getTaskPrismObject()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Task.getTaskPrismObject()
方法的具体详情如下:
包路径:com.evolveum.midpoint.task.api.Task
类名称: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);
}
内容来源于网络,如有侵权,请联系作者删除!