Class PrismContainerWrapperImpl<C extends Containerable>
java.lang.Object
com.evolveum.midpoint.gui.impl.prism.wrapper.ItemWrapperImpl<PrismContainer<C>,PrismContainerValueWrapper<C>>
com.evolveum.midpoint.gui.impl.prism.wrapper.PrismContainerWrapperImpl<C>
- All Implemented Interfaces:
ItemWrapper<PrismContainer<C>,,PrismContainerValueWrapper<C>> PrismContainerWrapper<C>,Definition,Freezable,ItemDefinition<PrismContainer<C>>,LivePrismItemDefinition,LocalItemDefinitionStore,PrismContainerDefinition<C>,PrismItemAccessDefinition,PrismItemBasicDefinition,PrismItemStorageDefinition,PrismLifecycleDefinition,PrismPresentationDefinition,Revivable,SchemaLookup.Aware,SmartVisitable<Definition>,Visitable<Definition>,DebugDumpable,Serializable,Cloneable
- Direct Known Subclasses:
AssociationAttributeMappingWrapper,AssociationMappingExpressionWrapper,AuthenticationBehaviorWrapper,CaseWorkItemTypeWrapper,ObjectTypeAttributeMappingWrapper,PrismObjectWrapperImpl,PrismSchemaWrapper,ProfilingClassLoggerContainerWrapperImpl,ShadowAssociationValueWrapper,ShadowAssociationWrapperImpl
public class PrismContainerWrapperImpl<C extends Containerable>
extends ItemWrapperImpl<PrismContainer<C>,PrismContainerValueWrapper<C>>
implements PrismContainerWrapper<C>, Serializable
- Author:
- katka
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.Definition
Definition.DefinitionBuilder, Definition.DefinitionMutatorNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.ItemDefinition
ItemDefinition.ItemDefinitionLikeBuilder, ItemDefinition.ItemDefinitionMutatorNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismContainerDefinition
PrismContainerDefinition.PrismContainerDefinitionMutator<C extends Containerable>Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
PrismItemAccessDefinition.Data, PrismItemAccessDefinition.Delegable, PrismItemAccessDefinition.Info, PrismItemAccessDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemBasicDefinition
PrismItemBasicDefinition.Data, PrismItemBasicDefinition.Delegable, PrismItemBasicDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemStorageDefinition
PrismItemStorageDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
PrismLifecycleDefinition.Data, PrismLifecycleDefinition.Delegable, PrismLifecycleDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
PrismPresentationDefinition.Data, PrismPresentationDefinition.Delegable, PrismPresentationDefinition.Mutable -
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING -
Constructor Summary
ConstructorsConstructorDescriptionPrismContainerWrapperImpl(PrismContainerValueWrapper<?> parent, PrismContainer<C> item, ItemStatus status) -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(Visitor<Definition> visitor) booleanaccept(Visitor<Definition> visitor, SmartVisitation<Definition> visitation) booleancanRepresent(@NotNull QName type) TODO@NotNull PrismContainerDefinition<C>clone()cloneVirtualContainerWithNewValue(PrismContainerValueWrapper<? extends Containerable> parent, ModelServiceLocator modelServiceLocator) cloneWithNewDefinition(QName newItemName, ItemDefinition newDefinition) TODO@NotNull ItemDefinition<PrismContainer<C>>cloneWithNewName(@NotNull ItemName itemName) Returns a clone of this definition, but with name changed to the provided one.@NotNull PrismContainerDefinition<?>cloneWithNewType(@NotNull QName newTypeName, @NotNull ComplexTypeDefinition newCtd) Changes the type name and definition for this PCD.protected <D extends ItemDelta<? extends PrismValue,? extends ItemDefinition>>
Collection<D>@NotNull ContainerDelta<C>createEmptyDelta(ItemPath path) Creates an empty delta (with appropriate implementation class), pointing to this item definition, with a given path.protected PrismContainerValue<C>createNewEmptyValue(ModelServiceLocator locator) TODO<T extends Containerable>
PrismContainerWrapper<T>findContainer(ItemPath path) <T extends Containerable>
PrismContainerWrapper<T>findContainer(String identifier) findContainerValue(ItemPath path) <IW extends ItemWrapper>
IW<ID extends ItemDefinition<?>>
IDfindLocalItemDefinition(@NotNull QName name, @NotNull Class<ID> clazz, boolean caseInsensitive) Returns the local item definition corresponding to given item name (optionally case-insensitive) and definition class.<X> PrismPropertyWrapper<X>findProperty(ItemPath propertyPath) findReference(ItemPath path) voidfreeze()Should be no-op (or very quick) if the object is already immutable.Static (compile-time) class holding the container values.Definition of the container values.@NotNull List<? extends ItemDefinition<?>>Returns a list of item definitions in this container.<D extends ItemDelta<? extends PrismValue,? extends ItemDefinition>>
Collection<D>getDelta()protected ItemPathgetDeltaPathForStatus(ItemStatus status) Returns set of property definitions.@Nullable SchemaContextDefinitionPrismContainerWrapper<? extends Containerable>Returns a compile-time class that is used to represent items.booleanbooleanThis is XSD annotation that specifies whether a property should be indexed in the storage.booleanbooleanisVisible(PrismContainerValueWrapper<?> parent, ItemVisibilityHandler visibilityHandler) mutator()Returns an interface to mutate this definition.voidreplaceDefinition(QName itemName, ItemDefinition newDefinition) TODOvoidsetExpanded(boolean expanded) voidsetIdentifier(String identifier) voidsetShowEmpty(boolean isShowEmpty, boolean recursive) voidsetVirtual(boolean virtual) Methods inherited from class com.evolveum.midpoint.gui.impl.prism.wrapper.ItemWrapperImpl
add, addValueToDelta, canAdd, canModify, canRead, checkRequired, computeDeltaInternal, debugDump, debugDumpShortToString, deepClone, findItemDefinition, findObjectStatus, findObjectWrapper, getAnnotation, getAnnotations, getDeprecatedSince, getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getFormComponentValidator, getHelp, getItem, getItemName, getMaxOccurs, getMergerIdentifier, getMergerInstance, getMinOccurs, getNaturalKeyConstituents, getNaturalKeyInstance, getOldItem, getParent, getParentContainerValue, getPath, getPlannedRemoval, getPreconditionDeltas, getProcessing, getRemovedSince, getSchemaMigrations, getStatus, getSubstitutionHead, getTypeName, getValue, getValueEnumerationRef, getValues, getVisibleOverwrite, instantiate, instantiate, isAbstract, isAlwaysUseForEquals, isColumn, isDeprecated, isDynamic, isElaborate, isEmphasized, isEmpty, isExperimental, isHeterogeneousListItem, isIgnored, isIndexOnly, isInherited, isMetadata, isOperational, isOptionalCleanup, isProcessProvenanceMetadata, isReadOnly, isRemoved, isRuntimeSchema, isShowEmpty, isShowInVirtualContainer, isShowMetadataDetails, isValidated, isValidFor, isVisibleByVisibilityHandler, remove, removeAll, removeNotChangedStatusValue, revive, setColumn, setDisplayName, setDisplayOrder, setHelp, setMetadata, setProcessProvenanceMetadata, setReadOnly, setShowInVirtualContainer, setShowMetadataDetails, setValidated, setVisibleOverwrite, structuredType, toStringMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposing, debugDump, getAnnotation, getAnnotations, getMergerIdentifier, getMergerInstance, getMutabilityFlag, getNaturalKeyConstituents, getNaturalKeyInstance, getTypeName, isAbstract, isElaborate, isOptionalCleanup, isRuntimeSchemaMethods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutableMethods inherited from interface com.evolveum.midpoint.prism.ItemDefinition
debugDumpShortToString, deepClone, getProcessing, getSubstitutionHead, getValueEnumerationRef, instantiate, instantiate, isAlwaysUseForEquals, isDynamic, isHeterogeneousListItem, isIgnored, isInherited, isOperationalMethods inherited from interface com.evolveum.midpoint.gui.api.prism.wrapper.ItemWrapper
add, checkRequired, debugDump, findObjectStatus, findObjectWrapper, getFormComponentValidator, getItem, getParent, getParentContainerValue, getPath, getPreconditionDeltas, getValue, getValues, getVisibleOverwrite, isColumn, isEmpty, isMetadata, isProcessProvenanceMetadata, isReadOnly, isShowEmpty, isShowInVirtualContainer, isShowMetadataDetails, isValidated, remove, removeAll, setColumn, setMetadata, setProcessProvenanceMetadata, setReadOnly, setShowInVirtualContainer, setShowMetadataDetails, setValidated, setVisibleOverwriteMethods inherited from interface com.evolveum.midpoint.prism.LivePrismItemDefinition
findItemDefinition, isValidForMethods inherited from interface com.evolveum.midpoint.prism.LocalItemDefinitionStore
containsItemDefinition, findContainerDefinition, findItemDefinition, findItemDefinition, findLocalItemDefinition, findLocalItemDefinitionByIteration, findPropertyDefinition, findReferenceDefinitionMethods inherited from interface com.evolveum.midpoint.prism.PrismContainerDefinition
getAlwaysUseForEquals, getItemNames, isAlwaysUseForEquals, isCompletelyDefined, isEmpty, schemaLookup, structuredTypeMethods inherited from interface com.evolveum.midpoint.gui.api.prism.wrapper.PrismContainerWrapper
getStatusMethods inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
canAdd, canModify, canRead, getInfoMethods inherited from interface com.evolveum.midpoint.prism.PrismItemBasicDefinition
getItemName, getMaxOccurs, getMinOccurs, getTypeName, isMandatory, isMultiValue, isOptional, isSingleValueMethods inherited from interface com.evolveum.midpoint.prism.PrismItemStorageDefinition
isIndexOnly, isSearchableMethods inherited from interface com.evolveum.midpoint.prism.PrismLifecycleDefinition
getDeprecatedSince, getPlannedRemoval, getRemovedSince, getSchemaMigrations, isDeprecated, isExperimental, isRemovedMethods inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
getDiagrams, getDisplayHint, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, isEmphasized
-
Constructor Details
-
PrismContainerWrapperImpl
public PrismContainerWrapperImpl(PrismContainerValueWrapper<?> parent, PrismContainer<C> item, ItemStatus status)
-
-
Method Details
-
setExpanded
public void setExpanded(boolean expanded) - Specified by:
setExpandedin interfacePrismContainerWrapper<C extends Containerable>
-
isExpanded
public boolean isExpanded()- Specified by:
isExpandedin interfacePrismContainerWrapper<C extends Containerable>
-
setShowEmpty
public void setShowEmpty(boolean isShowEmpty, boolean recursive) - Specified by:
setShowEmptyin interfaceItemWrapper<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>> - Overrides:
setShowEmptyin classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
getCompileTimeClass
Description copied from interface:PrismContainerDefinitionStatic (compile-time) class holding the container values. May be null. (Let's not mark it as @Nullable to avoid lots of warnings.)- Specified by:
getCompileTimeClassin interfacePrismContainerDefinition<C extends Containerable>
-
getComplexTypeDefinition
Description copied from interface:PrismContainerDefinitionDefinition of the container values. May be null. (Let's not mark it as @Nullable to avoid lots of warnings.) Note that individual values can hold their own (more specific) complex type definitions.- Specified by:
getComplexTypeDefinitionin interfacePrismContainerDefinition<C extends Containerable>
-
getDefinitions
Description copied from interface:PrismContainerDefinitionReturns a list of item definitions in this container. It is intentionally aListbecause it is ordered. (To provide standard format for serialization.) Usually obtained fromComplexTypeDefinition. So please do not modify the content of the list!- Specified by:
getDefinitionsin interfaceLocalItemDefinitionStore- Specified by:
getDefinitionsin interfacePrismContainerDefinition<C extends Containerable>
-
findLocalItemDefinition
public <ID extends ItemDefinition<?>> ID findLocalItemDefinition(@NotNull @NotNull QName name, @NotNull @NotNull Class<ID> clazz, boolean caseInsensitive) Description copied from interface:LocalItemDefinitionStoreReturns the local item definition corresponding to given item name (optionally case-insensitive) and definition class. Does not try to resolve items globally (in the case of "any" content). BEWARE: In the case of ambiguities, returns any suitable definition. (This may change.)- Specified by:
findLocalItemDefinitionin interfaceLocalItemDefinitionStore
-
getPropertyDefinitions
Description copied from interface:PrismContainerDefinitionReturns set of property definitions. The set contains all property definitions of all types that were parsed. Order of definitions is insignificant. The returned collection is immutable or detached from the source. Don't try to modify it. It may fail or the changes may be lost.- Specified by:
getPropertyDefinitionsin interfacePrismContainerDefinition<C extends Containerable>
-
createEmptyDelta
Description copied from interface:ItemDefinitionCreates an empty delta (with appropriate implementation class), pointing to this item definition, with a given path.- Specified by:
createEmptyDeltain interfaceItemDefinition<C extends Containerable>- Specified by:
createEmptyDeltain interfacePrismContainerDefinition<C extends Containerable>- Overrides:
createEmptyDeltain classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
clone
- Specified by:
clonein interfaceDefinition- Specified by:
clonein interfaceItemDefinition<C extends Containerable>- Specified by:
clonein interfacePrismContainerDefinition<C extends Containerable>- Overrides:
clonein classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
cloneWithNewDefinition
public PrismContainerDefinition<C> cloneWithNewDefinition(QName newItemName, ItemDefinition newDefinition) Description copied from interface:PrismContainerDefinitionTODO- Specified by:
cloneWithNewDefinitionin interfacePrismContainerDefinition<C extends Containerable>
-
cloneWithNewName
@NotNull public @NotNull ItemDefinition<PrismContainer<C>> cloneWithNewName(@NotNull @NotNull ItemName itemName) Description copied from interface:ItemDefinitionReturns a clone of this definition, but with name changed to the provided one.- Specified by:
cloneWithNewNamein interfaceItemDefinition<C extends Containerable>- See Also:
-
cloneWithNewType
@NotNull public @NotNull PrismContainerDefinition<?> cloneWithNewType(@NotNull @NotNull QName newTypeName, @NotNull @NotNull ComplexTypeDefinition newCtd) Description copied from interface:PrismContainerDefinitionChanges the type name and definition for this PCD. Use only in special cases.- Specified by:
cloneWithNewTypein interfacePrismContainerDefinition<C extends Containerable>
-
isIndexed
Description copied from interface:PrismItemStorageDefinitionThis is XSD annotation that specifies whether a property should be indexed in the storage. It can only apply to properties. It has following meaning: true: the property must be indexed. If the storage is not able to index the value, it should indicate an error. false: the property should not be indexed. null: data store decides whether to index the property or not.- Specified by:
isIndexedin interfacePrismItemStorageDefinition
-
replaceDefinition
Description copied from interface:PrismContainerDefinitionTODO- Specified by:
replaceDefinitionin interfacePrismContainerDefinition<C extends Containerable>
-
createValue
Description copied from interface:PrismContainerDefinitionTODO- Specified by:
createValuein interfacePrismContainerDefinition<C extends Containerable>
-
canRepresent
Description copied from interface:PrismContainerDefinitionTODO- Specified by:
canRepresentin interfacePrismContainerDefinition<C extends Containerable>
-
mutator
Description copied from interface:DefinitionReturns an interface to mutate this definition.- Specified by:
mutatorin interfaceDefinition- Specified by:
mutatorin interfaceItemDefinition<C extends Containerable>- Specified by:
mutatorin interfacePrismContainerDefinition<C extends Containerable>- Overrides:
mutatorin classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
findContainer
public <T extends Containerable> PrismContainerWrapper<T> findContainer(ItemPath path) throws SchemaException - Specified by:
findContainerin interfacePrismContainerWrapper<C extends Containerable>- Throws:
SchemaException
-
findContainer
- Specified by:
findContainerin interfacePrismContainerWrapper<C extends Containerable>
-
findProperty
- Specified by:
findPropertyin interfacePrismContainerWrapper<C extends Containerable>- Throws:
SchemaException
-
findReference
- Specified by:
findReferencein interfacePrismContainerWrapper<C extends Containerable>- Throws:
SchemaException
-
findContainerValue
- Specified by:
findContainerValuein interfacePrismContainerWrapper<C extends Containerable>
-
getItemDefinition
-
findItem
- Specified by:
findItemin interfacePrismContainerWrapper<C extends Containerable>- Throws:
SchemaException
-
getDelta
public <D extends ItemDelta<? extends PrismValue,? extends ItemDefinition>> Collection<D> getDelta() throws SchemaException- Specified by:
getDeltain interfaceItemWrapper<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>> - Overrides:
getDeltain classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>> - Throws:
SchemaException
-
computeDeltasInternal
protected <D extends ItemDelta<? extends PrismValue,? extends ItemDefinition>> Collection<D> computeDeltasInternal() throws SchemaException- Throws:
SchemaException
-
getDeltaPathForStatus
-
isVisible
public boolean isVisible(PrismContainerValueWrapper<?> parent, ItemVisibilityHandler visibilityHandler) - Specified by:
isVisiblein interfaceItemWrapper<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>> - Overrides:
isVisiblein classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
setVirtual
public void setVirtual(boolean virtual) - Specified by:
setVirtualin interfacePrismContainerWrapper<C extends Containerable>
-
isVirtual
public boolean isVirtual()- Specified by:
isVirtualin interfacePrismContainerWrapper<C extends Containerable>
-
isImmutable
public boolean isImmutable()- Specified by:
isImmutablein interfaceFreezable
-
freeze
public void freeze()Description copied from interface:FreezableShould be no-op (or very quick) if the object is already immutable. -
accept
- Specified by:
acceptin interfaceSmartVisitable<C extends Containerable>- Returns:
- false if we already was here
-
accept
- Specified by:
acceptin interfaceVisitable<C extends Containerable>
-
createNewEmptyValue
- Specified by:
createNewEmptyValuein classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
getSelectedChild
- Specified by:
getSelectedChildin interfacePrismContainerWrapper<C extends Containerable>
-
getIdentifier
- Specified by:
getIdentifierin interfacePrismContainerWrapper<C extends Containerable>
-
setIdentifier
- Specified by:
setIdentifierin interfacePrismContainerWrapper<C extends Containerable>
-
getTypeClass
Description copied from interface:DefinitionReturns a compile-time class that is used to represent items. E.g. returns String, Integer, subclasses of Objectable and Containerable and so on.- Specified by:
getTypeClassin interfaceDefinition- Specified by:
getTypeClassin interfacePrismContainerDefinition<C extends Containerable>- Overrides:
getTypeClassin classItemWrapperImpl<PrismContainer<C extends Containerable>,PrismContainerValueWrapper<C extends Containerable>>
-
getSchemaContextDefinition
- Specified by:
getSchemaContextDefinitionin interfaceDefinition
-
cloneVirtualContainerWithNewValue
public PrismContainerWrapper<C> cloneVirtualContainerWithNewValue(PrismContainerValueWrapper<? extends Containerable> parent, ModelServiceLocator modelServiceLocator) - Specified by:
cloneVirtualContainerWithNewValuein interfacePrismContainerWrapper<C extends Containerable>
-