private PrismObject getObject(@NotNull ModelContext context) { PrismObject object = context.getFocusContext().getObjectNew(); if (object == null) { object = context.getFocusContext().getObjectOld(); } return object; }
/** * To which object (e.g. user) is the task related? */ private PrismObject determineRootTaskObject(ModelContext context) { PrismObject taskObject = context.getFocusContext().getObjectNew(); if (taskObject != null && taskObject.getOid() == null) { taskObject = null; } return taskObject; }
public static ObjectType getFocusObjectNewOrOld(ModelContext<? extends ObjectType> modelContext) { ModelElementContext<? extends ObjectType> fc = modelContext.getFocusContext(); PrismObject<? extends ObjectType> prism = fc.getObjectNew() != null ? fc.getObjectNew() : fc.getObjectOld(); if (prism == null) { throw new IllegalStateException("No object (new or old) in model context"); } return prism.asObjectable(); }
public <O extends ObjectType> ObjectTreeDeltas<O> extractTreeDeltasFromModelContext(ModelContext<O> modelContext) { ObjectTreeDeltas<O> objectTreeDeltas = new ObjectTreeDeltas<>(modelContext.getPrismContext()); if (modelContext.getFocusContext() != null && modelContext.getFocusContext().getPrimaryDelta() != null) { objectTreeDeltas.setFocusChange(modelContext.getFocusContext().getPrimaryDelta().clone()); } for (ModelProjectionContext projectionContext : modelContext.getProjectionContexts()) { if (projectionContext.getPrimaryDelta() != null) { objectTreeDeltas.addProjectionChange(projectionContext.getResourceShadowDiscriminator(), projectionContext.getPrimaryDelta()); } } return objectTreeDeltas; }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); assertNotAssignedResource(USER_JACK_OID, RESOURCE_DUMMY_OID, rootTask, result); }
private <T extends ObjectType> void generateObjectOidIfNeeded(ObjectDelta<T> focusDelta, ModelContext<T> modelContext) { if (focusDelta.isAdd()) { if (focusDelta.getObjectToAdd().getOid() == null) { String newOid = OidUtil.generateOid(); focusDelta.getObjectToAdd().setOid(newOid); ((LensFocusContext<?>) modelContext.getFocusContext()).setOid(newOid); } } }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); //assertNoObject(UserType.class, USER_ELISABETH_OID, task, result); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); //assertNotAssignedRole(USER_ELISABETH_OID, ROLE_R3_OID, task, result); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); UserType jack = getUser(USER_JACK_OID).asObjectable(); checkNoAssignmentConstruction(jack, "drink"); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> subtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); assertNotAssignedRole(USER_JACK_OID, ROLE_R1_OID, rootTask, result); assertWfContextAfterClockworkRun(rootTask, subtasks, result, enablePolicyRuleBasedAspect ? "Assigning role \"Role1\" to user \"jack\"" : "Assigning Role1 to jack"); }
public void setObjectRef(ModelContext<?> modelContext, OperationResult result) { ObjectType focus = MiscDataUtil.getFocusObjectNewOrOld(modelContext); ObjectDelta<?> primaryDelta = modelContext.getFocusContext().getPrimaryDelta(); if (primaryDelta != null && primaryDelta.isAdd()) { ObjectReferenceType ref = ObjectTypeUtil.createObjectRefWithFullObject(focus, getPrismContext()); wfContext.setObjectRef(ref); } else { setObjectRef(ObjectTypeUtil.createObjectRef(focus, getPrismContext()), result); } }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertTrue("Primary focus delta is not empty", taskModelContext.getFocusContext().getPrimaryDelta().isEmpty()); assertNoObject(OrgType.class, ORG_TEST1_OID, rootTask, result); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); UserType jack = getUser(USER_JACK_OID).asObjectable(); checkNoAssignmentValidity(jack); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); assertEquals("There are modifications left in primary focus delta", 0, taskModelContext.getFocusContext().getPrimaryDelta().getModifications().size()); UserType jack = getUser(USER_JACK_OID).asObjectable(); checkNoAssignmentValidity(jack); }
public static String getFocusObjectOid(ModelContext<?> modelContext) { ModelElementContext<?> fc = modelContext.getFocusContext(); if (fc.getObjectNew() != null && fc.getObjectNew().getOid() != null) { return fc.getObjectNew().getOid(); } else if (fc.getObjectOld() != null && fc.getObjectOld().getOid() != null) { return fc.getObjectOld().getOid(); } else { return null; } }
@SuppressWarnings("unchecked") private ObjectDelta<? extends FocusType> assignmentToDelta(ModelContext<?> modelContext, AssignmentType assignmentType, String objectOid) { PrismObject<FocusType> focus = (PrismObject<FocusType>) modelContext.getFocusContext().getObjectNew(); PrismContainerDefinition<AssignmentType> prismContainerDefinition = focus.getDefinition().findContainerDefinition(FocusType.F_ASSIGNMENT); ItemDelta<PrismContainerValue<AssignmentType>,PrismContainerDefinition<AssignmentType>> addRoleDelta = prismContext.deltaFactory().container().create( ItemPath.EMPTY_PATH, FocusType.F_ASSIGNMENT, prismContainerDefinition); PrismContainerValue<AssignmentType> assignmentValue = assignmentType.asPrismContainerValue().clone(); addRoleDelta.addValueToAdd(assignmentValue); Class focusClass = primaryChangeAspectHelper.getFocusClass(modelContext); return modelContext.getPrismContext().deltaFactory().object().createModifyDelta(objectOid, addRoleDelta, focusClass ); }
@Override public void assertsAfterClockworkRun(Task rootTask, List<Task> wfSubtasks, OperationResult result) throws Exception { ModelContext taskModelContext = wfTaskUtil.getModelContext(rootTask, result); PrismObject<UserType> objectToAdd = taskModelContext.getFocusContext().getPrimaryDelta().getObjectToAdd(); assertNotNull("There is no object to add left in primary focus delta", objectToAdd); assertFalse("There is assignment of R1 in reduced primary focus delta", assignmentExists(objectToAdd.asObjectable().getAssignment(), ROLE_R1_OID)); assertFalse("There is assignment of R2 in reduced primary focus delta", assignmentExists(objectToAdd.asObjectable().getAssignment(), ROLE_R2_OID)); assertFalse("There is assignment of R3 in reduced primary focus delta", assignmentExists(objectToAdd.asObjectable().getAssignment(), ROLE_R3_OID)); assertTrue("There is no assignment of R4 in reduced primary focus delta", assignmentExists(objectToAdd.asObjectable().getAssignment(), ROLE_R4_OID)); }