default boolean containsAttributeDefinition(@NotNull QName attributeName) { return findAttributeDefinition(attributeName) != null; }
@Override public LayerRefinedAttributeDefinition<?> findAttributeDefinition(String elementLocalname) { return LayerRefinedAttributeDefinitionImpl.wrap(refinedObjectClassDefinition.findAttributeDefinition(elementLocalname), layer); }
public <T> RefinedAttributeDefinition<T> findAttributeDefinition(QName attrName) throws SchemaException { RefinedAttributeDefinition<T> attrDef = getStructuralObjectClassDefinition().findAttributeDefinition(attrName); if (attrDef != null) { return attrDef; } for (RefinedObjectClassDefinition auxOcDef: getAuxiliaryObjectClassDefinitions()) { attrDef = auxOcDef.findAttributeDefinition(attrName); if (attrDef != null) { return attrDef; } } return null; }
default <X> RefinedAttributeDefinition<X> findAttributeDefinition(String name) { return findAttributeDefinition(new QName(getTypeName().getNamespaceURI(), name)); }
protected RefinedAttributeDefinition getAttributeDefinition(ResourceType resourceType, ShadowKindType kind, QName objectClassName, String attributeLocalName) throws SchemaException { RefinedResourceSchema refinedResourceSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); RefinedObjectClassDefinition refinedObjectClassDefinition = refinedResourceSchema.findRefinedDefinitionByObjectClassQName(kind, objectClassName); return refinedObjectClassDefinition.findAttributeDefinition(attributeLocalName); }
public RefinedAttributeDefinition<?> getRefinedAttributeDefinition() { if (refinedAttributeDefinition == null) { RefinedObjectClassDefinition def = getRefinedObjectClassDefinition(); if (def != null && hasItemDefinition) { refinedAttributeDefinition = def.findAttributeDefinition(getLastItemName()); } } return refinedAttributeDefinition; }
protected RefinedAttributeDefinition getAttributeDefinition(ResourceType resourceType, ShadowKindType kind, QName objectClassName, String attributeLocalName) throws SchemaException { RefinedResourceSchema refinedResourceSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); RefinedObjectClassDefinition refinedObjectClassDefinition = refinedResourceSchema.findRefinedDefinitionByObjectClassQName(kind, objectClassName); return refinedObjectClassDefinition.findAttributeDefinition(attributeLocalName); }
public <T> boolean compareAttribute(RefinedObjectClassDefinition refinedObjectClassDefinition, ResourceAttribute<T> attributeA, T... valuesB) throws SchemaException { RefinedAttributeDefinition refinedAttributeDefinition = refinedObjectClassDefinition.findAttributeDefinition(attributeA.getElementName()); Collection<T> valuesA = getNormalizedAttributeValues(attributeA, refinedAttributeDefinition); return MiscUtil.unorderedCollectionEquals(valuesA, Arrays.asList(valuesB)); }
public <T> boolean compareAttribute(RefinedObjectClassDefinition refinedObjectClassDefinition, ResourceAttribute<T> attributeA, ResourceAttribute<T> attributeB) throws SchemaException { RefinedAttributeDefinition refinedAttributeDefinition = refinedObjectClassDefinition.findAttributeDefinition(attributeA.getElementName()); Collection<T> valuesA = getNormalizedAttributeValues(attributeA, refinedAttributeDefinition); refinedAttributeDefinition = refinedObjectClassDefinition.findAttributeDefinition(attributeA.getElementName()); Collection<T> valuesB = getNormalizedAttributeValues(attributeB, refinedAttributeDefinition); return MiscUtil.unorderedCollectionEquals(valuesA, valuesB); }
public void normalizeAttributes(PrismObject<ShadowType> shadow, RefinedObjectClassDefinition objectClassDefinition) throws SchemaException { for (ResourceAttribute<?> attribute: ShadowUtil.getAttributes(shadow)) { RefinedAttributeDefinition rAttrDef = objectClassDefinition.findAttributeDefinition(attribute.getElementName()); normalizeAttribute(attribute, rAttrDef); } }
protected ResourceAttributeDefinition getAttributeDefinition(PrismObject<ResourceType> resource, QName attributeName) throws SchemaException { RefinedResourceSchema refinedSchema = RefinedResourceSchemaImpl.getRefinedSchema(resource); if (refinedSchema == null) { throw new SchemaException("No refined schema for "+resource); } RefinedObjectClassDefinition accountDefinition = refinedSchema.getDefaultRefinedDefinition(ShadowKindType.ACCOUNT); return accountDefinition.findAttributeDefinition(attributeName); }
private RefinedAttributeDefinition getRefinedAttributeDefinitionIfApplicable(Operation operation, RefinedObjectClassDefinition objectClassDefinition) { if (operation instanceof PropertyModificationOperation) { PropertyDelta propertyDelta = ((PropertyModificationOperation) operation).getPropertyDelta(); if (isAttributeDelta(propertyDelta)) { QName attributeName = propertyDelta.getElementName(); return objectClassDefinition.findAttributeDefinition(attributeName); } } return null; }
private boolean hasAnyStrongMapping(RefinedObjectClassDefinition objectDefinition) { for (QName attributeName : objectDefinition.getNamesOfAttributesWithInboundExpressions()) { RefinedAttributeDefinition<?> attributeDefinition = objectDefinition.findAttributeDefinition(attributeName); for (MappingType inboundMapping : attributeDefinition.getInboundMappingTypes()){ if (inboundMapping.getStrength() == MappingStrengthType.STRONG) { return true; } } } return false; }
public boolean isIgnored(LayerType layer) { QName name = getAssociationAttribute(); RefinedAttributeDefinition<?> associationAttributeDef = associationTarget.findAttributeDefinition(name); if (associationAttributeDef == null) { throw new IllegalStateException("No such attribute :" + name + " in kind: " + associationTarget.getKind() + ", intent: " + associationTarget.getIntent() + " as defined for association: " + resourceObjectAssociationType.getDisplayName()); } return associationAttributeDef.isIgnored(layer); }
public PropertyLimitations getLimitations(LayerType layer) { QName name = getAssociationAttribute(); RefinedAttributeDefinition<?> associationAttributeDef = associationTarget.findAttributeDefinition(name); if (associationAttributeDef == null) { throw new IllegalStateException("No such attribute :" + name + " in kind: " + associationTarget.getKind() + ", intent: " + associationTarget.getIntent() + " as defined for association: " + resourceObjectAssociationType.getDisplayName()); } return associationAttributeDef.getLimitations(layer); }
private <T> List<PrismPropertyValue<T>> getNormalizedValue(PrismProperty<T> attr, RefinedObjectClassDefinition rObjClassDef) throws SchemaException { RefinedAttributeDefinition<T> refinedAttributeDefinition = rObjClassDef.findAttributeDefinition(attr.getElementName()); QName matchingRuleQName = refinedAttributeDefinition.getMatchingRuleQName(); MatchingRule<T> matchingRule = matchingRuleRegistry.getMatchingRule(matchingRuleQName, refinedAttributeDefinition.getTypeName()); List<PrismPropertyValue<T>> normalized = new ArrayList<>(); for (PrismPropertyValue<T> origPValue : attr.getValues()){ T normalizedValue = matchingRule.normalize(origPValue.getValue()); PrismPropertyValue<T> normalizedPValue = origPValue.clone(); normalizedPValue.setValue(normalizedValue); normalized.add(normalizedPValue); } return normalized; }
public <T> void normalizeDelta(ItemDelta<PrismPropertyValue<T>,PrismPropertyDefinition<T>> delta, RefinedObjectClassDefinition objectClassDefinition) throws SchemaException { if (!delta.getPath().startsWithName(ShadowType.F_ATTRIBUTES)) { return; } RefinedAttributeDefinition rAttrDef = objectClassDefinition.findAttributeDefinition(delta.getElementName()); if (rAttrDef == null){ throw new SchemaException("Failed to normalize attribute: " + delta.getElementName()+ ". Definition for this attribute doesn't exist."); } normalizeDelta(delta, rAttrDef); }
private boolean matches(ResourceAttribute<?> identifier, ResourceAttribute<?> attributeToMatch, MatchingRuleRegistry matchingRuleRegistry) throws SchemaException { if (!identifier.getElementName().equals(attributeToMatch.getElementName())) { return false; } RefinedAttributeDefinition rAttrDef = rOcDef.findAttributeDefinition(identifier.getElementName()); QName matchingRuleQName = rAttrDef.getMatchingRuleQName(); if (matchingRuleQName == null || matchingRuleRegistry == null) { return identifier.equals(attributeToMatch, EquivalenceStrategy.REAL_VALUE); } MatchingRule<Object> matchingRule = matchingRuleRegistry.getMatchingRule(matchingRuleQName, rAttrDef.getTypeName()); return matchingRule.match(identifier.getRealValue(), attributeToMatch.getRealValue()); }
protected void assertAttributeFlags(RefinedObjectClassDefinition rOcDef, QName attrName, boolean expectedRead, boolean expectedAdd, boolean expectedModify) { RefinedAttributeDefinition rAttrDef = rOcDef.findAttributeDefinition(attrName); assertEquals("Wrong readability flag for "+attrName, expectedRead, rAttrDef.canRead()); assertEquals("Wrong addition flag for "+attrName, expectedAdd, rAttrDef.canAdd()); assertEquals("Wrong modification flag for "+attrName, expectedModify, rAttrDef.canModify()); }
private <T> Integer countAccounts(ResourceType resourceType, QName attributeName, T attributeValue, Task task, OperationResult result) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException, ExpressionEvaluationException { RefinedResourceSchema rSchema = RefinedResourceSchemaImpl.getRefinedSchema(resourceType); RefinedObjectClassDefinition rAccountDef = rSchema.getDefaultRefinedDefinition(ShadowKindType.ACCOUNT); RefinedAttributeDefinition attrDef = rAccountDef.findAttributeDefinition(attributeName); ObjectQuery query = prismContext.queryFor(ShadowType.class) .itemWithDef(attrDef, ShadowType.F_ATTRIBUTES, attrDef.getName()).eq(attributeValue) .and().item(ShadowType.F_OBJECT_CLASS).eq(rAccountDef.getObjectClassDefinition().getTypeName()) .and().item(ShadowType.F_RESOURCE_REF).ref(resourceType.getOid()) .build(); return modelObjectResolver.countObjects(ShadowType.class, query, null, task, result); }