Interface ShadowAttributeDefinition<V extends PrismValue,D extends ShadowAttributeDefinition<V,D,RV,SA>,RV,SA extends ShadowAttribute<V,D,RV,SA>>
- Type Parameters:
SA
- item that is created by the instantiation of this definitionRV
- real value stored in SA
- All Superinterfaces:
Cloneable
,DebugDumpable
,Definition
,Freezable
,LayeredDefinition
,PrismItemAccessDefinition
,PrismItemBasicDefinition
,PrismItemMiscDefinition
,PrismItemStorageDefinition
,PrismLifecycleDefinition
,PrismPresentationDefinition
,ResourceObjectInboundProcessingDefinition.ItemInboundProcessingDefinition
,Revivable
,Serializable
,ShadowAttributeUcfDefinition
,ShadowItemDefinition
,ShadowItemLayeredDefinition
,ShortDumpable
,SmartVisitable<Definition>
,Visitable<Definition>
- All Known Subinterfaces:
ResourceAttributeDefinitionDelegator<T>
,ResourceAttributeWrapper<T>
,ShadowReferenceAttributeDefinition
,ShadowSimpleAttributeDefinition<T>
- All Known Implementing Classes:
ResourceAttributeWrapperImpl
,ShadowAttributeDefinitionImpl
,ShadowReferenceAttributeDefinitionImpl
,ShadowSimpleAttributeDefinitionImpl
,TransformablePropertyDefinition.RefinedAttribute
,TransformablePropertyDefinition.ResourceAttribute
public interface ShadowAttributeDefinition<V extends PrismValue,D extends ShadowAttributeDefinition<V,D,RV,SA>,RV,SA extends ShadowAttribute<V,D,RV,SA>>
extends PrismItemBasicDefinition, PrismItemAccessDefinition, PrismItemMiscDefinition, PrismItemStorageDefinition, PrismPresentationDefinition, ShadowAttributeUcfDefinition, ShadowItemLayeredDefinition, LayeredDefinition, ResourceObjectInboundProcessingDefinition.ItemInboundProcessingDefinition, ShadowItemDefinition, Definition
Definition of a
ShadowAttribute
: simple or reference one.
. It is based on a "native" part, available from the connector (or from simulated references capability definition);
see NativeShadowAttributeDefinition
.
. This part is then optionally refined by the configuration in resource `schemaHandling` section.
For the time being, it does not extend ItemDefinition
because of typing complications:
ShadowAttribute
cannot extend Item
(there are clashes on some of the methods).-
Nested Class Summary
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.Definition
Definition.DefinitionBuilder, Definition.DefinitionMutator
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
PrismItemAccessDefinition.Data, PrismItemAccessDefinition.Delegable, PrismItemAccessDefinition.Info, PrismItemAccessDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemBasicDefinition
PrismItemBasicDefinition.Data, PrismItemBasicDefinition.Delegable, PrismItemBasicDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemMiscDefinition
PrismItemMiscDefinition.Data, PrismItemMiscDefinition.Delegable, PrismItemMiscDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemStorageDefinition
PrismItemStorageDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
PrismLifecycleDefinition.Data, PrismLifecycleDefinition.Delegable, PrismLifecycleDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
PrismPresentationDefinition.Data, PrismPresentationDefinition.Delegable, PrismPresentationDefinition.Mutable
Nested classes/interfaces inherited from interface com.evolveum.midpoint.schema.processor.ShadowAttributeUcfDefinition
ShadowAttributeUcfDefinition.Data, ShadowAttributeUcfDefinition.Delegable, ShadowAttributeUcfDefinition.Mutable
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
Method Summary
Modifier and TypeMethodDescription@NotNull ShadowAttributeDefinition<V,
D, RV, SA> clone()
createPrismValueFromRealValue
(@NotNull Object realValue) Provides a debug dump respective to the given layer.@NotNull ShadowAttributeDefinition<V,
D, RV, SA> Creates a view of the current definition for a given layer.@Nullable ItemChangeApplicationModeType
Gets the (configured) attribute description.@NotNull AttributeFetchStrategyType
Returns configured fetch strategy.@NotNull List<InboundMappingType>
Gets the inbound mappings (if any).Gets patterns for values that are not "tolerated" on the resource.@Nullable String
Determines the order in which this attribute should be modified (in very special cases).@Nullable MappingType
Gets the outbound mapping, if defined.Should be this attribute modified solely in "replace" mode?default ItemPath
Returns the standard path where this attribute can be found in shadows.@NotNull AttributeStorageStrategyType
Returns configured storage strategy.Gets patterns for values that are "tolerated" on the resource.Note that attributes must always have static Java type.default boolean
boolean
Returns `true` if there are any refinements (like in `schemaHandling`).instantiate
(QName itemName) default SA
instantiateFrom
(@NotNull Item<?, ?> item) Creates a newShadowAttribute
from given (compatible)Item
.default SA
instantiateFromRealValue
(@NotNull Object realValue) default SA
instantiateFromRealValues
(@NotNull Collection<?> realValues) Creates a newShadowAttribute
from given real values, cloning and converting them if necessary.isCached()
If present, it overrides the inclusion/exclusion of this item in/from the shadow caching.default boolean
isEffectivelyCached
(@NotNull ResourceObjectDefinition objectDefinition) Returns `true` if this attribute is effectively cached, given provided object type/class definition.boolean
Drives behavior of strong and normal mappings for this attribute.default boolean
Is the attribute ignored (at specified layer)?default boolean
Is this attribute returned by default?boolean
If `true`, the item does not exist on the resource, but is simulated by midPoint.boolean
When set to true, allows to preserve attribute values that are set outside midPoint.default boolean
isVisible
(@NotNull TaskExecutionMode taskExecutionMode) Is this item visible under given task execution mode (production/development config)?boolean
This attribute may get unexpected values when the object is created on the resource.boolean
This attribute may get unexpected values when the object is updated on the resource, regardless of what attributes are modified and in what way.boolean
Is this attribute so-called volatility trigger, i.e. may its changes cause changes in other attributes?void
setOverrideCanAdd
(Boolean value) Provides a value that will overrideShadowItemLayeredDefinition.canAdd(LayerType)
return values (for all layers).void
setOverrideCanModify
(Boolean value) Provides a value that will overrideShadowItemLayeredDefinition.canModify(LayerType)
return values (for all layers).void
setOverrideCanRead
(Boolean value) Provides a value that will overrideShadowItemLayeredDefinition.canRead(LayerType)
return values (for all layers).Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazily
Methods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposing, debugDump, getAnnotation, getAnnotations, getMergerIdentifier, getMergerInstance, getMutabilityFlag, getNaturalKeyConstituents, getNaturalKeyInstance, getSchemaContextDefinition, getTypeName, isAbstract, isElaborate, isOptionalCleanup, isRuntimeSchema, mutator
Methods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutable
Methods inherited from interface com.evolveum.midpoint.schema.processor.LayeredDefinition
getCurrentLayer
Methods inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
canAdd, canModify, canRead, getInfo
Methods inherited from interface com.evolveum.midpoint.prism.PrismItemBasicDefinition
getItemName, getMaxOccurs, getMinOccurs, getTypeName, isMandatory, isMultiValue, isOptional, isSingleValue
Methods inherited from interface com.evolveum.midpoint.prism.PrismItemMiscDefinition
getProcessing
Methods inherited from interface com.evolveum.midpoint.prism.PrismItemStorageDefinition
isIndexed, isIndexOnly, isSearchable
Methods inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
getDeprecatedSince, getPlannedRemoval, getRemovedSince, getSchemaMigrations, isDeprecated, isExperimental, isRemoved
Methods inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, isEmphasized
Methods inherited from interface com.evolveum.midpoint.schema.processor.ResourceObjectInboundProcessingDefinition.ItemInboundProcessingDefinition
getCorrelatorDefinition
Methods inherited from interface com.evolveum.midpoint.schema.processor.ShadowAttributeUcfDefinition
getFrameworkAttributeName, getNativeAttributeName, getReturnedByDefault
Methods inherited from interface com.evolveum.midpoint.schema.processor.ShadowItemDefinition
isVisible
Methods inherited from interface com.evolveum.midpoint.schema.processor.ShadowItemLayeredDefinition
canAdd, canModify, canRead, getLimitations, getMaxOccurs, getMinOccurs, getProcessing, isMandatory, isMultiValue, isOptional, isSingleValue
Methods inherited from interface com.evolveum.midpoint.util.ShortDumpable
shortDump, shortDump, shortDumpLazily
Methods inherited from interface com.evolveum.midpoint.prism.SmartVisitable
accept
-
Method Details
-
isTolerant
boolean isTolerant()When set to true, allows to preserve attribute values that are set outside midPoint.- See Also:
-
getFetchStrategy
Returns configured fetch strategy. -
getStorageStrategy
Returns configured storage strategy. -
isCached
Boolean isCached()If present, it overrides the inclusion/exclusion of this item in/from the shadow caching. Please use theisEffectivelyCached(ResourceObjectDefinition)
method to determine the effective caching status. -
isEffectivelyCached
Returns `true` if this attribute is effectively cached, given provided object type/class definition. Precondition: the definition must be attached to a resource. -
isVolatilityTrigger
boolean isVolatilityTrigger()Is this attribute so-called volatility trigger, i.e. may its changes cause changes in other attributes? -
getModificationPriority
Integer getModificationPriority()Determines the order in which this attribute should be modified (in very special cases). -
getReadReplaceMode
Boolean getReadReplaceMode()Should be this attribute modified solely in "replace" mode? -
forLayer
Creates a view of the current definition for a given layer. (May return even the original object e.g. if the layer matches the current one.) -
setOverrideCanRead
Provides a value that will overrideShadowItemLayeredDefinition.canRead(LayerType)
return values (for all layers). Used e.g. when applying authorizations on the definition. -
setOverrideCanAdd
Provides a value that will overrideShadowItemLayeredDefinition.canAdd(LayerType)
return values (for all layers). Used e.g. when applying authorizations on the definition. -
setOverrideCanModify
Provides a value that will overrideShadowItemLayeredDefinition.canModify(LayerType)
return values (for all layers). Used e.g. when applying authorizations on the definition. -
getDescription
String getDescription()Gets the (configured) attribute description. -
getOutboundMappingBean
Gets the outbound mapping, if defined.- See Also:
-
hasOutboundMapping
default boolean hasOutboundMapping() -
getInboundMappingBeans
Gets the inbound mappings (if any).- Specified by:
getInboundMappingBeans
in interfaceResourceObjectInboundProcessingDefinition.ItemInboundProcessingDefinition
- See Also:
-
isExclusiveStrong
boolean isExclusiveStrong()Drives behavior of strong and normal mappings for this attribute. -
getTolerantValuePatterns
Gets patterns for values that are "tolerated" on the resource. -
getIntolerantValuePatterns
Gets patterns for values that are not "tolerated" on the resource. -
getChangeApplicationMode
-
getLifecycleState
- Specified by:
getLifecycleState
in interfaceShadowItemDefinition
- See Also:
-
isIgnored
Description copied from interface:ShadowItemLayeredDefinition
Is the attribute ignored (at specified layer)?- Specified by:
isIgnored
in interfaceShadowItemLayeredDefinition
-
isVisible
Is this item visible under given task execution mode (production/development config)? -
getTypeClass
Note that attributes must always have static Java type.- Specified by:
getTypeClass
in interfaceDefinition
-
isReturnedByDefault
default boolean isReturnedByDefault()Is this attribute returned by default? (I.e. if no specific options are sent to the connector?) -
hasRefinements
boolean hasRefinements()Returns `true` if there are any refinements (like in `schemaHandling`). -
instantiate
- Throws:
SchemaException
-
instantiate
- Throws:
SchemaException
-
instantiateFrom
Creates a newShadowAttribute
from given (compatible)Item
. Used in the process of "definition application" in `applyDefinitions` and similar methods. Assumes that the original item is correctly constructed, i.e. it has no duplicate values.- Throws:
SchemaException
-
instantiateFromRealValue
@NotNull default SA instantiateFromRealValue(@NotNull @NotNull Object realValue) throws SchemaException - Throws:
SchemaException
-
instantiateFromRealValues
@NotNull default SA instantiateFromRealValues(@NotNull @NotNull Collection<?> realValues) throws SchemaException Creates a newShadowAttribute
from given real values, cloning and converting them if necessary. Assumes that the values contain no duplicates and no nulls.- Throws:
SchemaException
-
createPrismValueFromRealValue
- Throws:
SchemaException
-
getHumanReadableDescription
String getHumanReadableDescription() -
getStandardPath
Returns the standard path where this attribute can be found in shadows. E.g. for searching. -
isSimulated
boolean isSimulated()If `true`, the item does not exist on the resource, but is simulated by midPoint. Applies to reference attributes for now. -
clone
- Specified by:
clone
in interfaceDefinition
-
debugDump
Provides a debug dump respective to the given layer. -
isVolatileOnAddOperation
boolean isVolatileOnAddOperation()This attribute may get unexpected values when the object is created on the resource. (Regardless of whether any value is provided by the client. These subtle cases may get distinguished later.) -
isVolatileOnModifyOperation
boolean isVolatileOnModifyOperation()This attribute may get unexpected values when the object is updated on the resource, regardless of what attributes are modified and in what way.
-