public void setType(QName value) { asReferenceValue().setTargetType(value, true); }
private void collectMembership(AssignmentHolderType targetType, QName relation, EvaluationContext ctx) { PrismReferenceValue refVal = prismContext.itemFactory().createReferenceValue(); refVal.setObject(targetType.asPrismObject()); refVal.setTargetType(ObjectTypes.getObjectType(targetType.getClass()).getTypeQName()); refVal.setRelation(relation); refVal.setTargetName(targetType.getName().toPolyString()); collectMembershipRefVal(refVal, targetType.getClass(), relation, targetType, ctx); }
protected PrismReferenceValue createPrismValue(String oid, QName targetTypeQName, List<ItemDelta<PrismReferenceValue, PrismReferenceDefinition>> additionalAttributeValues, ExpressionEvaluationContext params) { PrismReferenceValue refVal = getPrismContext().itemFactory().createReferenceValue(); refVal.setOid(oid); refVal.setTargetType(targetTypeQName); refVal.setRelation(((ReferenceSearchExpressionEvaluatorType)getExpressionEvaluatorType()).getRelation()); return refVal; }
@Override public PrismReferenceValue createReferenceValue(PrismObject<?> target) { PrismReferenceValue rv = new PrismReferenceValueImpl(target.getOid()); rv.setPrismContext(prismContext); rv.setObject(target); if (target.getDefinition() != null) { rv.setTargetType(target.getDefinition().getTypeName()); } return rv; }
private static PrismReferenceValue getAuditTarget(ObjectDelta<? extends ObjectType> delta, PrismContext prismContext) { PrismReferenceValue targetRef = prismContext.itemFactory().createReferenceValue(delta.getOid()); targetRef.setTargetType(ObjectTypes.getObjectType(delta.getObjectTypeClass()).getTypeQName()); if (delta.isAdd()) { targetRef.setObject(delta.getObjectToAdd()); } return targetRef; }
reference.getValue().setTargetType(value.getTargetType()); reference.getValue().setFilter(value.getFilter()); reference.getValue().setDescription(value.getDescription());
private void setReferenceObject(PrismReferenceValue refVal, PrismObject<Objectable> object) throws SchemaException { refVal.setObject(object); if (object.getOid() != null) { if (refVal.getOid() == null) { refVal.setOid(object.getOid()); } else { if (!refVal.getOid().equals(object.getOid())) { throw new SchemaException("OID in reference (" + refVal.getOid() + ") does not match OID in composite object (" + object.getOid() + ")"); } } } QName objectTypeName = object.getDefinition().getTypeName(); if (refVal.getTargetType() == null) { refVal.setTargetType(objectTypeName); } else { if (!refVal.getTargetType().equals(objectTypeName)) { throw new SchemaException("Target type in reference (" + refVal.getTargetType() + ") does not match type in composite object (" + objectTypeName + ")"); } } }
public static PrismReferenceValue objectReferenceTypeToReferenceValue(ObjectReferenceType refType, PrismContext prismContext) { if (refType == null) { return null; } PrismReferenceValue rval = prismContext.itemFactory().createReferenceValue(); rval.setOid(refType.getOid()); rval.setDescription(refType.getDescription()); rval.setFilter(refType.getFilter()); rval.setRelation(refType.getRelation()); rval.setTargetType(refType.getType()); return rval; }
private void collectMembership(ObjectReferenceType targetRef, QName relation, EvaluationContext ctx) { PrismReferenceValue refVal = prismContext.itemFactory().createReferenceValue(); refVal.setOid(targetRef.getOid()); refVal.setTargetType(targetRef.getType()); refVal.setRelation(relation); refVal.setTargetName(targetRef.getTargetName()); Class<? extends ObjectType> targetClass = ObjectTypes.getObjectTypeFromTypeQName(targetRef.getType()).getClassDefinition(); collectMembershipRefVal(refVal, targetClass, relation, targetRef, ctx); }
protected <F extends AssignmentHolderType> ContainerDelta<AssignmentType> createAssignmentModification(Class<F> type, QName elementName, String roleOid, QName refType, QName relation, Consumer<AssignmentType> modificationBlock, boolean add) throws SchemaException { ContainerDelta<AssignmentType> assignmentDelta = prismContext.deltaFactory().container().createDelta(ItemName.fromQName(elementName), getObjectDefinition(type)); PrismContainerValue<AssignmentType> cval = prismContext.itemFactory().createContainerValue(); if (add) { assignmentDelta.addValueToAdd(cval); } else { assignmentDelta.addValueToDelete(cval); } PrismReference targetRef = cval.findOrCreateReference(AssignmentType.F_TARGET_REF); targetRef.getValue().setOid(roleOid); targetRef.getValue().setTargetType(refType); targetRef.getValue().setRelation(relation); if (modificationBlock != null) { modificationBlock.accept(cval.asContainerable()); } return assignmentDelta; }
private <F extends FocusType> void unlink(LensContext<F> context, FocusType persona, OperationResult result) throws ObjectNotFoundException, SchemaException, ObjectAlreadyExistsException { ObjectDelta<F> delta = context.getFocusContext().getObjectNew().createModifyDelta(); PrismReferenceValue refValue = prismContext.itemFactory().createReferenceValue(); refValue.setOid(persona.getOid()); refValue.setTargetType(persona.asPrismObject().getDefinition().getTypeName()); delta.addModificationDeleteReference(FocusType.F_PERSONA_REF, refValue); repositoryService.modifyObject(delta.getObjectTypeClass(), delta.getOid(), delta.getModifications(), result); }
private <F extends FocusType> void link(LensContext<F> context, FocusType persona, OperationResult result) throws ObjectNotFoundException, SchemaException, ObjectAlreadyExistsException { ObjectDelta<F> delta = context.getFocusContext().getObjectNew().createModifyDelta(); PrismReferenceValue refValue = prismContext.itemFactory().createReferenceValue(); refValue.setOid(persona.getOid()); refValue.setTargetType(persona.asPrismObject().getDefinition().getTypeName()); delta.addModificationAddReference(FocusType.F_PERSONA_REF, refValue); repositoryService.modifyObject(delta.getObjectTypeClass(), delta.getOid(), delta.getModifications(), result); }
protected ObjectDelta<UserType> createParametricAssignmentDelta(String userOid, String roleOid, String orgOid, String tenantOid, boolean adding) throws SchemaException { Collection<ItemDelta<?,?>> modifications = new ArrayList<>(); ContainerDelta<AssignmentType> assignmentDelta = prismContext.deltaFactory().container().createDelta(UserType.F_ASSIGNMENT, getUserDefinition()); PrismContainerValue<AssignmentType> cval = prismContext.itemFactory().createContainerValue(); if (adding) { assignmentDelta.addValueToAdd(cval); } else { assignmentDelta.addValueToDelete(cval); } PrismReference targetRef = cval.findOrCreateReference(AssignmentType.F_TARGET_REF); targetRef.getValue().setOid(roleOid); targetRef.getValue().setTargetType(RoleType.COMPLEX_TYPE); if (orgOid != null) { PrismReference orgRef = cval.findOrCreateReference(AssignmentType.F_ORG_REF); orgRef.getValue().setOid(orgOid); } if (tenantOid != null) { PrismReference tenantRef = cval.findOrCreateReference(AssignmentType.F_TENANT_REF); tenantRef.getValue().setOid(tenantOid); } modifications.add(assignmentDelta); return prismContext.deltaFactory().object().createModifyDelta(userOid, modifications, UserType.class ); }
existingValue.setTargetType(value.getTargetType());
@Test public void test009modifyOrgStructRemoveUser() throws Exception { OperationResult opResult = new OperationResult("test009modifyOrgStructRemoveUser"); PrismReferenceValue prv = itemFactory().createReferenceValue(MODIFY_USER_DELETE_REF_OID); prv.setTargetType(OrgType.COMPLEX_TYPE); ObjectDelta<UserType> delta = prismContext.deltaFactory().object() .createModificationDeleteReference(UserType.class, ELAINE_OID, UserType.F_PARENT_ORG_REF, prv); repositoryService.modifyObject(UserType.class, ELAINE_OID, delta.getModifications(), opResult); UserType userElaine = repositoryService.getObject(UserType.class, ELAINE_OID, null, opResult).asObjectable(); LOGGER.trace("elaine's og refs"); for (ObjectReferenceType ort : userElaine.getParentOrgRef()) { LOGGER.trace("{}", ort); if (ort.getOid().equals(MODIFY_USER_DELETE_REF_OID)) { AssertJUnit.fail("expected that elain does not have reference on the org with oid:" + MODIFY_USER_DELETE_REF_OID); } } }
throw new SchemaException("No definition for type " + type + " in reference"); refVal.setTargetType(type);
PrismReferenceValue linkRef = prismContext.itemFactory().createReferenceValue(); linkRef.setOid(shadowOid); linkRef.setTargetType(ShadowType.COMPLEX_TYPE); Collection<? extends ItemDelta> linkRefDeltas = prismContext.deltaFactory().reference() .createModificationAddCollection(FocusType.F_LINK_REF, getUserDefinition(), linkRef);
accRefVal.setObject(null); accRefVal.setOid(oid); accRefVal.setTargetType(targetType);
val11.setTargetType(ACCOUNT_TYPE_QNAME); val12.setTargetType(ACCOUNT_TYPE_QNAME); val21.setTargetType(ACCOUNT_TYPE_QNAME); val22.setTargetType(ACCOUNT_TYPE_QNAME);
PrismReference targetRef = cval.findOrCreateReference(AssignmentType.F_TARGET_REF); targetRef.getValue().setOid(ROLE_BUSINESS_2_OID); targetRef.getValue().setTargetType(RoleType.COMPLEX_TYPE); targetRef.getValue().setRelation(null); cval.setId(123L);