@SuppressWarnings("unchecked") public static PrismObject<ConnectorType> getConnectorIfPresent(PrismObject<ResourceType> resource) { PrismReference existingConnectorRef = resource.findReference(ResourceType.F_CONNECTOR_REF); if (existingConnectorRef == null || existingConnectorRef.isEmpty()) { return null; } return (PrismObject<ConnectorType>) existingConnectorRef.getValue().getObject(); }
protected <F extends FocusType> void assertNoLinkedAccount(PrismObject<F> user) { PrismReference accountRef = user.findReference(UserType.F_LINK_REF); if (accountRef == null) { return; } assert accountRef.isEmpty() : "Expected that "+user+" has no linked account but it has "+accountRef.size()+" linked accounts: " + accountRef.getValues(); }
private <T extends ObjectType> List<ReferenceDelta> createAddParentRefDelta(PrismObject<T> object) { PrismReference parentOrgRef = object.findReference(ObjectType.F_PARENT_ORG_REF); if (parentOrgRef == null || parentOrgRef.isEmpty()) { return new ArrayList<>(); } PrismObjectDefinition def = object.getDefinition(); ReferenceDelta delta = prismContext.deltaFactory().reference().createModificationAdd(ObjectType.F_PARENT_ORG_REF, def, parentOrgRef.getClonedValues()); return Collections.singletonList(delta); }
private <F extends ObjectType> void setReferences(LensFocusContext<F> focusContext, QName name, Collection<PrismReferenceValue> targetState) throws SchemaException { ItemName itemName = ItemName.fromQName(name); PrismObject<F> focusOld = focusContext.getObjectOld(); if (focusOld == null) { if (targetState.isEmpty()) { return; } } else { PrismReference existingState = focusOld.findReference(itemName); if (existingState == null || existingState.isEmpty()) { if (targetState.isEmpty()) { return; } } else { // we don't use QNameUtil.match here, because we want to ensure we store qualified values there // (and newValues are all qualified) Comparator<PrismReferenceValue> comparator = (a, b) -> 2*a.getOid().compareTo(b.getOid()) + (Objects.equals(a.getRelation(), b.getRelation()) ? 0 : 1); if (MiscUtil.unorderedCollectionCompare(targetState, existingState.getValues(), comparator)) { return; } } } PrismReferenceDefinition itemDef = focusContext.getObjectDefinition().findItemDefinition(itemName, PrismReferenceDefinition.class); ReferenceDelta itemDelta = prismContext.deltaFactory().reference().create(itemName, itemDef); itemDelta.setValuesToReplace(targetState); focusContext.swallowToSecondaryDelta(itemDelta); }
parentValue.remove(reference); } else { if (reference.isEmpty()) { if (value.getParent() != null) { value = value.clone();
assertTrue(!linkRef.isEmpty());