@Override public QName getType() { return referenceValue.getTargetType(); }
@XmlAttribute(name = "type") public QName getType() { return asReferenceValue().getTargetType(); }
public static String prettyPrintForReport(PrismReferenceValue prv, boolean showType) { StringBuilder sb = new StringBuilder(); if (showType) { sb.append(getTypeDisplayName(prv.getTargetType())); sb.append(": "); } if (prv.getTargetName() != null) { sb.append(prv.getTargetName()); } else { sb.append(prv.getOid()); } return sb.toString(); }
public static String prettyPrint(PrismReferenceValue prv, boolean showType) { StringBuilder sb = new StringBuilder(); if (showType) { sb.append(PrettyPrinter.prettyPrint(prv.getTargetType())); sb.append(": "); } if (prv.getTargetName() != null) { sb.append(prv.getTargetName()); } else { sb.append(prv.getOid()); } return sb.toString(); }
private Class<O> getObjectTypeClass() { QName targetType = refVal.getTargetType(); if (targetType == null) { return defaultTargetTypeClass; } return (Class<O>) ObjectTypes.getObjectTypeFromTypeQName(targetType).getClassDefinition(); }
public Element addAnnotation(QName qname, PrismReferenceValue value, Element parent) { Element annotation = createElement(qname); parent.appendChild(annotation); if (value != null) { annotation.setAttribute(ATTRIBUTE_OID_LOCAL_NAME, value.getOid()); DOMUtil.setQNameAttribute(annotation, ATTRIBUTE_REF_TYPE_LOCAL_NAME, value.getTargetType()); } return annotation; }
public AuditReferenceValue(@NotNull PrismReferenceValue prv) { this(prv.getOid(), prv.getTargetType(), prv.getTargetName()); }
public static void assertRefEquivalent(String message, PrismReferenceValue expected, PrismReferenceValue actual) { if (expected == null && actual == null) { return; } if (expected == null || actual == null) { fail(message + ": expected=" + expected + ", actual=" + actual); } assertEquals(message+": wrong target oid", expected.getOid(), actual.getOid()); assertEquals(message+": wrong target type", expected.getTargetType(), actual.getTargetType()); }
private static String getReferredObjectInformation(PrismReferenceValue ref) { if (ref.getObject() != null) { return ref.getObject().toString(); } else { return (ref.getTargetType() != null ? ref.getTargetType().getLocalPart()+":" : "") + (ref.getTargetName() != null ? ref.getTargetName() : ref.getOid()); } } }
private boolean matches(PrismReferenceValue refVal) throws ObjectNotFoundException, SchemaException { if (targetOid != null) { if (!targetOid.equals(refVal.getOid())) { return false; } } if (relation != null) { if (!QNameUtil.match(relation, refVal.getRelation())) { return false; } } if (targetType != null) { if (!QNameUtil.match(targetType, refVal.getTargetType())) { return false; } } return true; }
protected void assertPrismRefValues(String contextDesc, Collection<PrismReferenceValue> real, String... expected) { List<String> refOids = new ArrayList<>(); for (PrismReferenceValue ref: real) { refOids.add(ref.getOid()); assertNotNull("Missing type in "+ref.getOid()+" in "+contextDesc, ref.getTargetType()); assertNotNull("Missing name in "+ref.getOid()+" in "+contextDesc, ref.getTargetName()); } PrismAsserts.assertSets("Wrong values in "+contextDesc, refOids, expected); }
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 + ")"); } } }
private boolean equalsTargetType(PrismReferenceValue other) { QName otherTargetType = other.getTargetType(); if (otherTargetType == null && other.getDefinition() != null) { otherTargetType = other.getDefinition().getTargetTypeName(); } QName thisTargetType = this.getTargetType(); if (thisTargetType == null && this.getDefinition() != null) { thisTargetType = this.getDefinition().getTargetTypeName(); } return QNameUtil.match(thisTargetType, otherTargetType); }
protected void assertAuditTarget(AuditEventRecord event, String oid, QName type, String name) { PrismReferenceValue target = event.getTarget(); assertNotNull("No target", target); assertEquals("Wrong OID", oid, target.getOid()); assertEquals("Wrong type", type, target.getTargetType()); assertEquals("Wrong name", name, PolyString.getOrig(target.getTargetName())); }
public static RAExtReference createReference(PrismReferenceValue jaxb) { RAExtReference repo = new RAExtReference(); repo.setValue(jaxb.getOid()); repo.setRelation(RUtil.qnameToString(jaxb.getRelation())); repo.setTargetType(ClassMapper.getHQLTypeForQName(jaxb.getTargetType())); return repo; } }
public static ROExtReference createReference(PrismReferenceValue jaxb) { ROExtReference repo = new ROExtReference(); repo.setValue(jaxb.getOid()); repo.setRelation(RUtil.qnameToString(jaxb.getRelation())); repo.setTargetType(ClassMapper.getHQLTypeForQName(jaxb.getTargetType())); return repo; } }
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; }
public <O extends ObjectType> PrismObject<O> resolve(PrismReferenceValue refVal, String string, GetOperationOptions options, Task task, OperationResult result) throws ObjectNotFoundException { String oid = refVal.getOid(); Class<?> typeClass = ObjectType.class; QName typeQName = refVal.getTargetType(); if (typeQName == null && refVal.getParent() != null && refVal.getParent().getDefinition() != null) { PrismReferenceDefinition refDef = (PrismReferenceDefinition) refVal.getParent().getDefinition(); typeQName = refDef.getTargetTypeName(); } if (typeQName != null) { typeClass = prismContext.getSchemaRegistry().determineCompileTimeClass(typeQName); } return (PrismObject<O>) (getObjectSimple((Class<O>)typeClass, oid, options, task, result)).asPrismObject(); }
@Test public void testModifyInducement() throws Exception { System.out.println("===[ testModifyInducement ]===="); ObjectModificationType objectChange = PrismTestUtil.parseAtomicValue(new File(TEST_DIR, "role-modify-inducement.xml"), ObjectModificationType.COMPLEX_TYPE); // WHEN ObjectDelta<RoleType> objectDelta = DeltaConvertor.createObjectDelta(objectChange, RoleType.class, getPrismContext()); System.out.println("Delta:"); System.out.println(objectDelta.debugDump()); // THEN assertNotNull("No object delta", objectDelta); objectDelta.checkConsistence(); assertEquals("Wrong OID", "00000000-8888-6666-0000-100000000005", objectDelta.getOid()); ReferenceDelta targetRefDelta = objectDelta.findReferenceModification(ItemPath.create(RoleType.F_INDUCEMENT, 5L, AssignmentType.F_TARGET_REF)); assertNotNull("No targetRef delta", targetRefDelta); Collection<PrismReferenceValue> valuesToAdd = targetRefDelta.getValuesToAdd(); assertEquals("Wrong number of values to add", 1, valuesToAdd.size()); PrismReferenceValue targetRefVal = valuesToAdd.iterator().next(); assertNotNull("Null value in targetRef delta", targetRefVal); assertEquals("wrong OID in targetRef", "12345678-d34d-b33f-f00d-987987987987", targetRefVal.getOid()); assertEquals("wrong target type in targetRef", RoleType.COMPLEX_TYPE, targetRefVal.getTargetType()); }
public static <T extends ObjectType> ObjectReferenceType createObjectRef(PrismReferenceValue refVal, boolean nameAsDescription) { if (refVal == null) { return null; } ObjectReferenceType ref = new ObjectReferenceType(); ref.setOid(refVal.getOid()); PrismObject<T> object = refVal.getObject(); if (object != null) { if (nameAsDescription) { ref.setDescription(object.getBusinessDisplayName()); } PrismObjectDefinition<T> definition = object.getDefinition(); if (definition != null) { ref.setType(definition.getTypeName()); } ref.setTargetName(PolyString.toPolyStringType(object.getName())); } else { ref.setType(refVal.getTargetType()); ref.setTargetName(PolyString.toPolyStringType(refVal.getTargetName())); if (nameAsDescription && refVal.getTargetName() != null) { ref.setDescription(refVal.getTargetName().getOrig()); } } return ref; }