public ReferenceDelta createReferenceModification(ItemPath refPath) { PrismObjectDefinition<O> objDef = getPrismContext().getSchemaRegistry().findObjectDefinitionByCompileTimeClass(getObjectTypeClass()); PrismReferenceDefinition refDef = objDef.findReferenceDefinition(refPath); return createReferenceModification(refPath, refDef); }
/** * Convenience method for quick creation of object deltas that replace a single object property. This is used quite often * to justify a separate method. */ @Override public <O extends Objectable> ObjectDelta<O> createModificationDeleteReference(Class<O> type, String oid, QName propertyName, PrismReferenceValue... referenceValues) { ObjectDelta<O> objectDelta = create(type, ChangeType.MODIFY); objectDelta.setOid(oid); PrismObjectDefinition<O> objDef = prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(type); PrismReferenceDefinition refDef = objDef.findReferenceDefinition(ItemName.fromQName(propertyName)); ReferenceDelta referenceDelta = objectDelta.createReferenceModification(ItemName.fromQName(propertyName), refDef); Collection<PrismReferenceValue> valuesToDelete = new ArrayList<>(referenceValues.length); for (PrismReferenceValue refVal: referenceValues) { valuesToDelete.add(refVal); } referenceDelta.addValuesToDelete(valuesToDelete); return objectDelta; }
/** * Convenience method for quick creation of object deltas that replace a single object property. This is used quite often * to justify a separate method. */ @Override public <O extends Objectable> ObjectDelta<O> createModificationAddReference(Class<O> type, String oid, QName propertyName, PrismReferenceValue... referenceValues) { ObjectDelta<O> objectDelta = create(type, ChangeType.MODIFY); objectDelta.setOid(oid); PrismObjectDefinition<O> objDef = prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(type); PrismReferenceDefinition refDef = objDef.findReferenceDefinition(ItemName.fromQName(propertyName)); ReferenceDelta referenceDelta = objectDelta.createReferenceModification(ItemName.fromQName(propertyName), refDef); Collection<PrismReferenceValue> valuesToAdd = new ArrayList<>(referenceValues.length); for (PrismReferenceValue refVal: referenceValues) { valuesToAdd.add(refVal); } referenceDelta.addValuesToAdd(valuesToAdd); return objectDelta; }
/** * Convenience method for quick creation of object deltas that replace a single object property. This is used quite often * to justify a separate method. */ @Override public <O extends Objectable> ObjectDelta<O> createModificationAddReference(Class<O> type, String oid, QName propertyName, PrismObject<?>... referenceObjects) { ObjectDelta<O> objectDelta = create(type, ChangeType.MODIFY); objectDelta.setOid(oid); PrismObjectDefinition<O> objDef = prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(type); PrismReferenceDefinition refDef = objDef.findReferenceDefinition(ItemName.fromQName(propertyName)); ReferenceDelta referenceDelta = objectDelta.createReferenceModification(ItemName.fromQName(propertyName), refDef); Collection<PrismReferenceValue> valuesToReplace = new ArrayList<>(referenceObjects.length); for (PrismObject<?> refObject: referenceObjects) { valuesToReplace.add(prismContext.itemFactory().createReferenceValue(refObject)); } referenceDelta.setValuesToReplace(valuesToReplace); return objectDelta; }
private <T extends ObjectType> ObjectFilter applyOwnerFilterOwnerRef(ItemPath ownerRefPath, ObjectFilter objSpecSecurityFilter, MidPointPrincipal principal, PrismObjectDefinition<T> objectDefinition) { PrismReferenceDefinition ownerRefDef = objectDefinition.findReferenceDefinition(ownerRefPath); S_AtomicFilterExit builder = prismContext.queryFor(AbstractRoleType.class) .item(ownerRefPath, ownerRefDef).ref(principal.getUser().getOid()); // TODO don't understand this code for (ObjectReferenceType subjectParentOrgRef: principal.getUser().getParentOrgRef()) { if (prismContext.isDefaultRelation(subjectParentOrgRef.getRelation())) { builder = builder.or().item(ownerRefPath, ownerRefDef).ref(subjectParentOrgRef.getOid()); } } ObjectFilter objSpecOwnerFilter = builder.buildFilter(); objSpecSecurityFilter = ObjectQueryUtil.filterAnd(objSpecSecurityFilter, objSpecOwnerFilter, prismContext); LOGGER.trace(" applying owner filter {}", objSpecOwnerFilter); return objSpecSecurityFilter; }
PrismReferenceDefinition def = objectDef.findReferenceDefinition(TaskType.F_OBJECT_REF); System.out.println("MODIFY"); ObjectReferenceType objectRef = null;