public static ObjectReferenceType createObjectRef(ObjectType object, PrismContext prismContext) { if (object == null) { return null; } return createObjectRef(object, prismContext.getDefaultRelation()); }
public static <T extends ObjectType> ObjectReferenceType createObjectRef(PrismObject<T> object, PrismContext prismContext) { if (object == null) { return null; } return createObjectRef(object, prismContext.getDefaultRelation()); }
private QName normalizedRelation(QName r, boolean isLiteral) { if (r != null) { return r; } if (isLiteral) { return null; } PrismContext prismContext = getPrismContext(); return prismContext != null ? prismContext.getDefaultRelation() : null; }
@NotNull public static <T extends ObjectType> AssignmentType createAssignmentTo(@NotNull PrismObject<T> object, PrismContext prismContext) { return createAssignmentTo(object, prismContext.getDefaultRelation()); }
protected int countAssignees(String targetOid, OperationResult result) throws SchemaException { return countAssignees(targetOid, prismContext.getDefaultRelation(), result); }
private boolean relationMatches(QName assignmentRelation, List<QName> scopeRelations) { return (!scopeRelations.isEmpty() ? scopeRelations : Collections.singletonList(prismContext.getDefaultRelation())) .stream().anyMatch(r -> prismContext.relationMatches(r, assignmentRelation)); }
protected void assertAssignees(String targetOid, int expectedAssignees) throws SchemaException { assertAssignees(targetOid, prismContext.getDefaultRelation(), expectedAssignees); }
private List<QName> getConstraintRelations(MultiplicityPolicyConstraintType constraint) { return !constraint.getRelation().isEmpty() ? constraint.getRelation() : Collections.singletonList(prismContext.getDefaultRelation()); }
protected void unassignOrg(String userOid, String orgOid, Task task, OperationResult result) throws ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, ObjectAlreadyExistsException, PolicyViolationException, SecurityViolationException { unassignOrg(userOid, orgOid, null, task, result); }
private boolean relationMatches(QName primaryRelationToMatch, List<QName> secondaryRelationsToMatch, AssignmentType assignment) { if (assignment == null || assignment.getTargetRef() == null) { return false; // shouldn't occur } List<QName> relationsToMatch = primaryRelationToMatch != null ? Collections.singletonList(primaryRelationToMatch) : new ArrayList<>(secondaryRelationsToMatch); if (relationsToMatch.isEmpty()) { relationsToMatch.add(prismContext.getDefaultRelation()); } return prismContext.relationMatches(relationsToMatch, assignment.getTargetRef().getRelation()); } }
@Test(enabled = FIRST_PART) public void test000Sanity() throws Exception { final String TEST_NAME = "test000Sanity"; displayTestTitle(TEST_NAME); assertEquals("Wrong default relation", SchemaConstants.ORG_DEFAULT, prismContext.getDefaultRelation()); }
protected void assignOrg(String userOid, String orgOid, QName relation) throws ObjectNotFoundException, SchemaException, ExpressionEvaluationException, CommunicationException, ConfigurationException, ObjectAlreadyExistsException, PolicyViolationException, SecurityViolationException { Task task = createTask(AbstractIntegrationTest.class.getName()+".assignOrg"); OperationResult result = task.getResult(); assignOrg(userOid, orgOid, relation, task, result); result.computeStatus(); TestUtil.assertSuccess(result); }
relations.add(context.getPrismContext().getDefaultRelation()); } else {
? Collections.singletonList(prismContext.getDefaultRelation()) : constraint.getValue().getRelation();
private boolean valuesMatch(PrismReferenceValue filterValue, PrismReferenceValue objectValue) { if (!matchOid(filterValue.getOid(), objectValue.getOid())) { return false; } if (!QNameUtil.match(PrismConstants.Q_ANY, filterValue.getRelation())) { // similar to relation-matching code in PrismReferenceValue (but awkward to unify, so keeping separate) PrismContext prismContext = getPrismContext(); QName objectRelation = objectValue.getRelation(); QName filterRelation = filterValue.getRelation(); if (prismContext != null) { if (objectRelation == null) { objectRelation = prismContext.getDefaultRelation(); } if (filterRelation == null) { filterRelation = prismContext.getDefaultRelation(); } } if (!QNameUtil.match(filterRelation, objectRelation)) { return false; } } if (!matchTargetType(filterValue.getTargetType(), objectValue.getTargetType())) { return false; } return true; }
private <AH extends AssignmentHolderType> LocalizableMessage createShortMessage(JAXBElement<AssignmentModificationPolicyConstraintType> constraint, AssignmentPolicyRuleEvaluationContext<AH> ctx, OperationResult result) throws ExpressionEvaluationException, ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, SecurityViolationException { String keyPostfix = createStateKey(ctx) + createOperationKey(ctx); QName relation = ctx.evaluatedAssignment.getNormalizedRelation(relationRegistry); LocalizableMessage builtInMessage; if (relation == null || relation == prismContext.getDefaultRelation()) { builtInMessage = new LocalizableMessageBuilder() .key(SchemaConstants.DEFAULT_POLICY_CONSTRAINT_SHORT_MESSAGE_KEY_PREFIX + CONSTRAINT_KEY_PREFIX + keyPostfix) .arg(ObjectTypeUtil.createDisplayInformation(ctx.evaluatedAssignment.getTarget(), false)) .arg(ObjectTypeUtil.createDisplayInformation(ctx.getObject(), false)) .build(); } else { //non-default relation = print relation to short message builtInMessage = new LocalizableMessageBuilder() .key(SchemaConstants.DEFAULT_POLICY_CONSTRAINT_SHORT_REL_MESSAGE_KEY_PREFIX + CONSTRAINT_KEY_PREFIX + keyPostfix) .arg(ObjectTypeUtil.createDisplayInformation(ctx.evaluatedAssignment.getTarget(), false)) .arg(ObjectTypeUtil.createDisplayInformation(ctx.getObject(), false)) .arg(relation.getLocalPart()) .build(); } return evaluatorHelper.createLocalizableShortMessage(constraint, ctx, builtInMessage, result); }
relation = prismContext.getDefaultRelation();