Interface ShadowSimpleAttribute<T>
- All Superinterfaces:
DebugDumpable
,Freezable
,Item<PrismPropertyValue<T>,
,PrismPropertyDefinition<T>> Itemable
,ParentVisitable
,PathVisitable
,PrismProperty<T>
,PrismVisitable
,Revivable
,Serializable
,ShadowAttribute<PrismPropertyValue<T>,
,ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>> Visitable
- All Known Implementing Classes:
ShadowSimpleAttributeImpl
public interface ShadowSimpleAttribute<T>
extends PrismProperty<T>, ShadowAttribute<PrismPropertyValue<T>,ShadowSimpleAttributeDefinition<T>,T,ShadowSimpleAttribute<T>>
TODO update this doc
Resource Object Attribute is a Property of Resource Object. All that applies
to property applies also to attribute, e.g. only a whole attributes can be
changed, they may be simple or complex types, they should be representable in
XML, etc. In addition, attribute definition may have some annotations that
suggest its purpose and use on the Resource.
Resource Object Attribute understands resource-specific annotations such as
native attribute name.
Resource Object Attribute is mutable.
- Author:
- Radovan Semancik
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
Fields inherited from interface com.evolveum.midpoint.prism.Item
KEY_NAMESPACE_CONTEXT
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
applyDefinitionFrom
(@NotNull ResourceObjectDefinition objectDefinition) default void
checkDefinitionConsistence
(@NotNull ResourceObjectDefinition objectDefinition) TODO decide on this.clone()
Literal clone.cloneComplex
(CloneStrategy strategy) Complex clone with different cloning strategies.Creates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g.createDelta
(ItemPath path) default @NotNull PropertyDelta<T>
Creates a delta that would enforce (via REPLACE operation) the values of this attribute.Returns applicable definition.default @NotNull ShadowSimpleAttributeDefinition<T>
default String
Returns native attribute name.@NotNull Collection<?>
Returns the normalized real values.@NotNull Collection<?>
Returns the original real values.default @NotNull ItemPath
default boolean
default boolean
Returns true if the attribute is a PolyString-typed one - either native, or "simulated" (with a normalizer).default @NotNull ObjectFilter
Creates normalization-aware "eq" filter (i.e., suitable for the execution against the repository) for the current value of this attribute.default <N> @NotNull PrismProperty<N>
Creates normalization-aware version of this attribute: one that is suitable to be used in the repository.static <T> ShadowSimpleAttribute<T>
Converts thePrismProperty
intoShadowSimpleAttribute
, if needed.default @NotNull ObjectFilter
Creates "eq" filter for the current value of this attribute.Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazily
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
Methods inherited from interface com.evolveum.midpoint.prism.Item
acceptParentVisitor, acceptVisitor, add, add, addAll, addAll, addIgnoringEquivalents, addRespectingMetadataAndCloning, applyDefinition, applyDefinition, applyDefinitionIfMissing, assertDefinitions, assertDefinitions, assertDefinitions, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistence, checkConsistenceInternal, clear, contains, contains, copy, diff, diff, equals, equals, equals, filterValues, filterYields, find, findValue, findValue, getAllItems, getAllValues, getAnyValue, getAnyValue, getClonedValues, getDisplayName, getElementName, getHelp, getHighestId, getNamespaceContext, getParent, getPath, getRealValue, getRealValuesArray, getRealValuesOrRawTypes, getUserData, getUserData, getValue, getValues, hasAnyValue, hasCompleteDefinition, hashCode, hashCode, hashCode, hasRaw, isEmpty, isIncomplete, isOperational, isRaw, isSingleValue, isSingleValueByDefinition, merge, normalize, recomputeAllValues, remove, remove, removeAll, removeIf, removeRespectingMetadata, replace, replaceAll, setDefinition, setElementName, setIncomplete, setParent, setUserData, size, valuesStream
Methods inherited from interface com.evolveum.midpoint.prism.PathVisitable
accept
Methods inherited from interface com.evolveum.midpoint.prism.PrismProperty
addRealValue, addRealValues, addRealValueSkipUniquenessCheck, addValue, addValues, deleteValue, deleteValues, diff, diff, findPartial, getAnyRealValue, getRealValue, getRealValues, getRealValues, getValue, getValueClass, getValues, hasRealValue, replaceValues, setRealValue, setRealValues, setValue, toHumanReadableString
Methods inherited from interface com.evolveum.midpoint.schema.processor.ShadowAttribute
addValueSkipUniquenessCheck, getElementName, isIncomplete, setIncomplete
-
Method Details
-
of
Converts thePrismProperty
intoShadowSimpleAttribute
, if needed. -
getDefinition
ShadowSimpleAttributeDefinition<T> getDefinition()Description copied from interface:Item
Returns applicable definition.May return null if no definition is applicable or the definition is not known.
- Specified by:
getDefinition
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
getDefinition
in interfaceItemable
- Specified by:
getDefinition
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>> - Returns:
- applicable definition
-
getDefinitionRequired
- Specified by:
getDefinitionRequired
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
getNativeAttributeName
Returns native attribute name. Native name of the attribute is a name as it is used on the resource or as seen by the connector. It is used for diagnostics purposes and may be used by the connector itself. As the attribute names in XSD have to comply with XML element name limitations, this may be the only way how to determine original attribute name. Returns null if native attribute name is not set or unknown. The name should be the same as the one used by the resource, if the resource supports naming of attributes. E.g. in case of LDAP this annotation should contain "cn", "givenName", etc. If the resource is not that flexible, the native attribute names may be hardcoded (e.g. "username", "homeDirectory") or may not be present at all.- Returns:
- native attribute name
-
applyDefinitionFrom
default void applyDefinitionFrom(@NotNull @NotNull ResourceObjectDefinition objectDefinition) throws SchemaException - Specified by:
applyDefinitionFrom
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>> - Throws:
SchemaException
-
clone
ShadowSimpleAttribute<T> clone()Description copied from interface:Item
Literal clone.- Specified by:
clone
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
clone
in interfacePrismProperty<T>
- Specified by:
clone
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
getOrigValues
Returns the original real values. Assumes the definition is present. -
getNormValues
Returns the normalized real values. Assumes the definition is present.- Throws:
SchemaException
-
isPolyString
default boolean isPolyString()Returns true if the attribute is a PolyString-typed one - either native, or "simulated" (with a normalizer). Assumes the definition is present. -
getStandardPath
-
plainEqFilter
Creates "eq" filter for the current value of this attribute. It must have a definition and exactly one value. Matching rule is not specified. We assume this filter will be evaluated on the resource. -
normalizationAwareEqFilter
Creates normalization-aware "eq" filter (i.e., suitable for the execution against the repository) for the current value of this attribute. It must have a definition and exactly one value.- Throws:
SchemaException
-
normalizationAwareVersion
Creates normalization-aware version of this attribute: one that is suitable to be used in the repository.- Throws:
SchemaException
-
createReplaceDelta
Creates a delta that would enforce (via REPLACE operation) the values of this attribute.- Specified by:
createReplaceDelta
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
checkDefinitionConsistence
default void checkDefinitionConsistence(@NotNull @NotNull ResourceObjectDefinition objectDefinition) TODO decide on this. -
hasNoValues
default boolean hasNoValues()- Specified by:
hasNoValues
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
hasNoValues
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
createDelta
PropertyDelta<T> createDelta()Description copied from interface:Item
Creates specific subclass of ItemDelta appropriate for type of item that this definition represents (e.g. PropertyDelta, ContainerDelta, ...)- Specified by:
createDelta
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
createDelta
in interfacePrismProperty<T>
- Specified by:
createDelta
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
createDelta
- Specified by:
createDelta
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
createDelta
in interfacePrismProperty<T>
- Specified by:
createDelta
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
createImmutableClone
ShadowSimpleAttribute<T> createImmutableClone()- Specified by:
createImmutableClone
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
createImmutableClone
in interfacePrismProperty<T>
- Specified by:
createImmutableClone
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>>
-
cloneComplex
Description copied from interface:Item
Complex clone with different cloning strategies.- Specified by:
cloneComplex
in interfaceItem<PrismPropertyValue<T>,
PrismPropertyDefinition<T>> - Specified by:
cloneComplex
in interfacePrismProperty<T>
- Specified by:
cloneComplex
in interfaceShadowAttribute<PrismPropertyValue<T>,
ShadowSimpleAttributeDefinition<T>, T, ShadowSimpleAttribute<T>> - See Also:
-