Class TransformableItemDefinition<I extends Item<?,?>,D extends ItemDefinition<I>>
java.lang.Object
com.evolveum.midpoint.model.impl.schema.transform.TransformableDefinition
com.evolveum.midpoint.model.impl.schema.transform.TransformableItemDefinition<I,D>
- All Implemented Interfaces:
PartiallyMutableItemDefinition<I>,Definition,Definition.DefinitionMutator,DefinitionDelegator,ItemDefinitionDelegator<I>,Freezable,ItemDefinition<I>,ItemDefinition.ItemDefinitionMutator,LivePrismItemDefinition,PrismItemAccessDefinition,PrismItemAccessDefinition.Mutable,PrismItemBasicDefinition,PrismItemBasicDefinition.Mutable,PrismItemStorageDefinition,PrismItemStorageDefinition.Mutable,PrismLifecycleDefinition,PrismLifecycleDefinition.Mutable,PrismPresentationDefinition,PrismPresentationDefinition.Mutable,Revivable,SchemaLookup.Aware,SmartVisitable<Definition>,Visitable<Definition>,DebugDumpable,Serializable,Cloneable
- Direct Known Subclasses:
TransformableContainerDefinition,TransformablePropertyDefinition,TransformableReferenceDefinition
public abstract class TransformableItemDefinition<I extends Item<?,?>,D extends ItemDefinition<I>>
extends TransformableDefinition
implements ItemDefinitionDelegator<I>, PrismItemAccessDefinition.Mutable, PartiallyMutableItemDefinition<I>
- 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.model.impl.schema.transform.PartiallyMutableItemDefinition
PartiallyMutableItemDefinition.Attribute<T>, PartiallyMutableItemDefinition.Container<C extends Containerable>, PartiallyMutableItemDefinition.Property<T>, PartiallyMutableItemDefinition.ReferenceNested 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.PrismItemAccessDefinition.Mutable
PrismItemAccessDefinition.Mutable.DelegableNested 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.PrismItemBasicDefinition.Mutable
PrismItemBasicDefinition.Mutable.DelegableNested 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.PrismLifecycleDefinition.Mutable
PrismLifecycleDefinition.Mutable.DelegableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition
PrismPresentationDefinition.Data, PrismPresentationDefinition.Delegable, PrismPresentationDefinition.MutableNested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismPresentationDefinition.Mutable
PrismPresentationDefinition.Mutable.Delegable -
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic TransformableItemDefinition<?,?> access(ItemDefinition<?> itemDef) voidbooleancanAdd()Returns true if this item can be added: it can be part of an object that is created.booleanReturns true if this item can be modified (updated).booleancanRead()Returns true if this item can be read (displayed).@NotNull ItemDefinition<I>clone()@NotNull ItemDefinition<I>cloneWithNewName(@NotNull ItemName itemName) Returns a clone of this definition, but with name changed to the provided one.protected abstract TransformableItemDefinition<I,D> copy()deepClone(@NotNull DeepCloneOperation operation) TODO documentdelegate()protected voiddelegatedItem(DelegatedItem<D> deleg) voidfreeze()Should be no-op (or very quick) if the object is already immutable.static <ID extends ItemDefinition<?>>
TransformableItemDefinition<?,ID> from(ID originalItem) Enumeration annotation that specifies how/whether the item should be displayed.Returns display name.Specifies an order in which the item should be displayed relative to other items at the same level.getHelp()Returns help string.intReturns the number of maximal value occurrences.@Nullable String@Nullable ItemMergergetMergerInstance(@NotNull MergeStrategy strategy, @Nullable OriginMarker originMarker) intReturns the number of minimal value occurrences.@Nullable NaturalKeyDefinitionReference to an object that directly or indirectly represents possible values for this item.instantiate(QName name) Create an item instance.booleanItem which should always be used for equals even if it is operational and strategy does not consider operational items.booleanbooleanTrue for definitions that are more important than others and that should be emphasized during presentation.booleanExperimental functionality is not stable and it may be changed in any future release without any warning.booleanmutator()Returns an interface to mutate this definition.static <ID extends ItemDefinition<?>>
IDpublicFrom(ID definition) protected abstract Dvoidrevive(PrismContext prismContext) TODO: Is revive necessary if prism context is static?voidsetAlwaysUseForEquals(boolean alwaysUseForEquals) voidsetCanAdd(boolean val) voidsetCanModify(boolean val) voidsetCanRead(boolean val) voidsetDeprecated(boolean deprecated) voidsetDisplayHint(DisplayHint displayHint) voidsetDisplayName(String displayName) voidsetDisplayOrder(Integer displayOrder) voidsetEmphasized(boolean emphasized) voidsetExperimental(boolean experimental) voidvoidsetMaxOccurs(int value) voidsetMergerIdentifier(String mergerIdentifier) voidsetMinOccurs(int value) voidsetNaturalKeyConstituents(List<QName> naturalKeyConstituents) voidsetProcessing(ItemProcessing itemProcessing) voidsetValueEnumerationRef(PrismReferenceValue valueEnumerationRVal) toString()Methods inherited from class com.evolveum.midpoint.model.impl.schema.transform.TransformableDefinition
annotationsOverrides, getAnnotation, setAnnotationMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.prism.Definition
checkMutableOnExposingMethods inherited from interface com.evolveum.midpoint.prism.Definition.DefinitionMutator
setAnnotation, setSchemaContextDefinitionMethods inherited from interface com.evolveum.midpoint.prism.deleg.DefinitionDelegator
accept, accept, debugDump, debugDump, debugDump, debugDumpLazily, debugDumpLazily, getAnnotation, getAnnotations, getDeprecatedSince, getDocumentation, getDocumentationPreview, getMutabilityFlag, getPlannedRemoval, getRemovedSince, getSchemaContextDefinition, getSchemaMigrations, getTypeClass, isAbstract, isElaborate, isOptionalCleanup, isRemoved, isRuntimeSchemaMethods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutableMethods inherited from interface com.evolveum.midpoint.prism.ItemDefinition
isIgnoredMethods inherited from interface com.evolveum.midpoint.prism.ItemDefinition.ItemDefinitionMutator
setIgnoredMethods inherited from interface com.evolveum.midpoint.prism.deleg.ItemDefinitionDelegator
createEmptyDelta, debugDumpShortToString, findItemDefinition, getDiagrams, getItemName, getSubstitutionHead, getTypeName, instantiate, isDynamic, isHeterogeneousListItem, isIndexed, isIndexOnly, isInherited, isOperational, isSearchable, isValidFor, structuredTypeMethods inherited from interface com.evolveum.midpoint.model.impl.schema.transform.PartiallyMutableItemDefinition
addSchemaMigration, setDeprecatedSince, setDiagrams, setDocumentation, setDynamic, setElaborate, setHeterogeneousListItem, setIndexed, setIndexOnly, setInherited, setOperational, setOptionalCleanup, setPlannedRemoval, setReadOnly, setRemoved, setRemovedSince, setRuntimeSchema, setSchemaMigrations, setSearchable, setSubstitutionHeadMethods inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
getInfoMethods inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition.Mutable
setInfoMethods inherited from interface com.evolveum.midpoint.prism.PrismItemBasicDefinition
getTypeName, isMandatory, isMultiValue, isOptional, isSingleValueMethods inherited from interface com.evolveum.midpoint.prism.schema.SchemaLookup.Aware
schemaLookup
-
Constructor Details
-
TransformableItemDefinition
-
-
Method Details
-
from
public static <ID extends ItemDefinition<?>> TransformableItemDefinition<?,ID> from(ID originalItem) -
publicFrom
-
delegate
- Specified by:
delegatein interfaceDefinitionDelegator- Specified by:
delegatein interfaceItemDefinitionDelegator<I extends Item<?,?>>
-
canAdd
public boolean canAdd()Description copied from interface:PrismItemAccessDefinitionReturns true if this item can be added: it can be part of an object that is created. In case of containers this means that the container itself should be displayed in creation forms E.g. that the container label or block should be displayed. This usually happens if the container contains at least one createable item. This does NOT mean that also all the container items can be created. The sub-item permissions are controlled by similar properties on the items. This property only applies to the container itself: the "shell" of the container.- Specified by:
canAddin interfaceItemDefinitionDelegator<I extends Item<?,?>> - Specified by:
canAddin interfacePrismItemAccessDefinition
-
canModify
public boolean canModify()Description copied from interface:PrismItemAccessDefinitionReturns true if this item can be modified (updated). In case of containers this means that the container itself should be displayed in modification forms E.g. that the container label or block should be displayed. This usually happens if the container contains at least one modifiable item. This does NOT mean that also all the container items can be modified. The sub-item permissions are controlled by similar properties on the items. This property only applies to the container itself: the "shell" of the container.- Specified by:
canModifyin interfaceItemDefinitionDelegator<I extends Item<?,?>> - Specified by:
canModifyin interfacePrismItemAccessDefinition
-
canRead
public boolean canRead()Description copied from interface:PrismItemAccessDefinitionReturns true if this item can be read (displayed). In case of containers this flag is, strictly speaking, not applicable. Container is an empty shell. What matters is access to individual sub-item. However, for containers this value has a "hint" meaning. It means that the container itself contains something that is readable. Which can be used as a hint by the presentation to display container label or block. This usually happens if the container contains at least one readable item. This does NOT mean that also all the container items can be displayed. The sub-item permissions are controlled by similar properties on the items. This property only applies to the container itself: the "shell" of the container. Note: It was considered to use a different meaning for this flag - a meaning that would allow canRead()=false containers to have readable items. However, this was found not to be very useful. Therefore the "something readable inside" meaning was confirmed instead.- Specified by:
canReadin interfaceItemDefinitionDelegator<I extends Item<?,?>> - Specified by:
canReadin interfacePrismItemAccessDefinition
-
getMinOccurs
public int getMinOccurs()Description copied from interface:PrismItemBasicDefinitionReturns the number of minimal value occurrences.- Specified by:
getMinOccursin interfaceItemDefinitionDelegator<I extends Item<?,?>> - Specified by:
getMinOccursin interfacePrismItemBasicDefinition
-
getMaxOccurs
public int getMaxOccurs()Description copied from interface:PrismItemBasicDefinitionReturns the number of maximal value occurrences. Any negative number means "unbounded".- Specified by:
getMaxOccursin interfaceItemDefinitionDelegator<I extends Item<?,?>> - Specified by:
getMaxOccursin interfacePrismItemBasicDefinition
-
getProcessing
- Specified by:
getProcessingin interfaceItemDefinition<I extends Item<?,?>>
-
isAlwaysUseForEquals
public boolean isAlwaysUseForEquals()Description copied from interface:ItemDefinitionItem which should always be used for equals even if it is operational and strategy does not consider operational items. EXPERIMENTAL- Specified by:
isAlwaysUseForEqualsin interfaceItemDefinition<I extends Item<?,?>>
-
setAlwaysUseForEquals
public void setAlwaysUseForEquals(boolean alwaysUseForEquals) - Specified by:
setAlwaysUseForEqualsin interfaceItemDefinition.ItemDefinitionMutator
-
setCanAdd
public void setCanAdd(boolean val) - Specified by:
setCanAddin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setCanAddin interfacePrismItemAccessDefinition.Mutable
-
setCanModify
public void setCanModify(boolean val) - Specified by:
setCanModifyin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setCanModifyin interfacePrismItemAccessDefinition.Mutable
-
setCanRead
public void setCanRead(boolean val) - Specified by:
setCanReadin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setCanReadin interfacePrismItemAccessDefinition.Mutable
-
publicView
-
clone
- Specified by:
clonein interfaceDefinition- Specified by:
clonein interfaceItemDefinition<I extends Item<?,?>> - Overrides:
clonein classTransformableDefinition
-
cloneWithNewName
Description copied from interface:ItemDefinitionReturns a clone of this definition, but with name changed to the provided one.- Specified by:
cloneWithNewNamein interfaceItemDefinition<I extends Item<?,?>> - See Also:
-
freeze
public void freeze()Description copied from interface:FreezableShould be no-op (or very quick) if the object is already immutable. -
getMergerIdentifier
- Specified by:
getMergerIdentifierin interfaceDefinition- Specified by:
getMergerIdentifierin interfaceDefinitionDelegator
-
setMergerIdentifier
- Specified by:
setMergerIdentifierin interfaceDefinition.DefinitionMutator
-
getMergerInstance
@Nullable public @Nullable ItemMerger getMergerInstance(@NotNull @NotNull MergeStrategy strategy, @Nullable @Nullable OriginMarker originMarker) - Specified by:
getMergerInstancein interfaceDefinition- Specified by:
getMergerInstancein interfaceDefinitionDelegator
-
getNaturalKeyInstance
- Specified by:
getNaturalKeyInstancein interfaceDefinition- Specified by:
getNaturalKeyInstancein interfaceDefinitionDelegator
-
getNaturalKeyConstituents
- Specified by:
getNaturalKeyConstituentsin interfaceDefinition- Specified by:
getNaturalKeyConstituentsin interfaceDefinitionDelegator
-
setNaturalKeyConstituents
- Specified by:
setNaturalKeyConstituentsin interfaceDefinition.DefinitionMutator
-
isImmutable
public boolean isImmutable()- Specified by:
isImmutablein interfaceFreezable
-
revive
Description copied from interface:RevivableTODO: Is revive necessary if prism context is static? TODO document (if it's found to be necessary) -
access
-
applyTemplate
-
getDisplayName
Description copied from interface:PrismPresentationDefinitionReturns display name. Specifies the printable name of the object class or attribute. It must contain a printable string. It may also contain a key to catalog file. Returns null if no display name is set. Corresponds to "displayName" XSD annotation.- Specified by:
getDisplayNamein interfaceDefinitionDelegator- Specified by:
getDisplayNamein interfacePrismPresentationDefinition- Returns:
- display name string or catalog key
-
getHelp
Description copied from interface:PrismPresentationDefinitionReturns help string. Specifies the help text or a key to catalog file for a help text. The help text may be displayed in any suitable way by the GUI. It should explain the meaning of an attribute or object class. Returns null if no help string is set. Corresponds to "help" XSD annotation.- Specified by:
getHelpin interfaceDefinitionDelegator- Specified by:
getHelpin interfaceItemDefinitionDelegator<I extends Item<?,?>> - Specified by:
getHelpin interfacePrismPresentationDefinition- Returns:
- help string or catalog key
-
getDisplayOrder
Description copied from interface:PrismPresentationDefinitionSpecifies an order in which the item should be displayed relative to other items at the same level. The items will be displayed by sorting them by the values of displayOrder annotation (ascending). Items that do not have any displayOrder annotation will be displayed last. The ordering of values with the same displayOrder is undefined and it may be arbitrary.- Specified by:
getDisplayOrderin interfaceDefinitionDelegator- Specified by:
getDisplayOrderin interfacePrismPresentationDefinition
-
getDisplayHint
Description copied from interface:PrismPresentationDefinitionEnumeration annotation that specifies how/whether the item should be displayed. It is also a replacement for the old "emphasized" annotation.- Specified by:
getDisplayHintin interfaceDefinitionDelegator- Specified by:
getDisplayHintin interfacePrismPresentationDefinition
-
isEmphasized
public boolean isEmphasized()Description copied from interface:PrismPresentationDefinitionTrue for definitions that are more important than others and that should be emphasized during presentation. E.g. the emphasized definitions will always be displayed in the user interfaces (even if they are empty), they will always be included in the dumps, etc. TODO probably deprecated, isn't it?- Specified by:
isEmphasizedin interfaceDefinitionDelegator- Specified by:
isEmphasizedin interfacePrismPresentationDefinition
-
isDeprecated
public boolean isDeprecated()- Specified by:
isDeprecatedin interfaceDefinitionDelegator- Specified by:
isDeprecatedin interfacePrismLifecycleDefinition
-
isExperimental
public boolean isExperimental()Description copied from interface:PrismLifecycleDefinitionExperimental functionality is not stable and it may be changed in any future release without any warning. Use at your own risk.- Specified by:
isExperimentalin interfaceDefinitionDelegator- Specified by:
isExperimentalin interfacePrismLifecycleDefinition
-
setMinOccurs
public void setMinOccurs(int value) - Specified by:
setMinOccursin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setMinOccursin interfacePrismItemBasicDefinition.Mutable
-
setMaxOccurs
public void setMaxOccurs(int value) - Specified by:
setMaxOccursin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setMaxOccursin interfacePrismItemBasicDefinition.Mutable
-
setValueEnumerationRef
- Specified by:
setValueEnumerationRefin interfaceItemDefinition.ItemDefinitionMutator- Specified by:
setValueEnumerationRefin interfacePartiallyMutableItemDefinition<I extends Item<?,?>>
-
setDisplayName
- Specified by:
setDisplayNamein interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setDisplayNamein interfacePrismPresentationDefinition.Mutable
-
setHelp
- Specified by:
setHelpin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setHelpin interfacePrismPresentationDefinition.Mutable
-
setDisplayOrder
- Specified by:
setDisplayOrderin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setDisplayOrderin interfacePrismPresentationDefinition.Mutable
-
setDisplayHint
- Specified by:
setDisplayHintin interfacePrismPresentationDefinition.Mutable
-
setEmphasized
public void setEmphasized(boolean emphasized) - Specified by:
setEmphasizedin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setEmphasizedin interfacePrismPresentationDefinition.Mutable
-
setDeprecated
public void setDeprecated(boolean deprecated) - Specified by:
setDeprecatedin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setDeprecatedin interfacePrismLifecycleDefinition.Mutable
-
setExperimental
public void setExperimental(boolean experimental) - Specified by:
setExperimentalin interfacePartiallyMutableItemDefinition<I extends Item<?,?>> - Specified by:
setExperimentalin interfacePrismLifecycleDefinition.Mutable
-
getValueEnumerationRef
Description copied from interface:ItemDefinitionReference to an object that directly or indirectly represents possible values for this item. We do not define here what exactly the object has to be. It can be a lookup table, script that dynamically produces the values or anything similar. The object must produce the values of the correct type for this item otherwise an error occurs.- Specified by:
getValueEnumerationRefin interfaceItemDefinition<I extends Item<?,?>> - Specified by:
getValueEnumerationRefin interfaceItemDefinitionDelegator<I extends Item<?,?>>
-
setProcessing
- Specified by:
setProcessingin interfaceItemDefinition.ItemDefinitionMutator- Specified by:
setProcessingin interfacePartiallyMutableItemDefinition<I extends Item<?,?>>
-
mutator
Description copied from interface:DefinitionReturns an interface to mutate this definition.- Specified by:
mutatorin interfaceDefinition- Specified by:
mutatorin interfaceItemDefinition<I extends Item<?,?>>
-
deepClone
Description copied from interface:ItemDefinitionTODO document- Specified by:
deepClonein interfaceItemDefinition<I extends Item<?,?>> - Specified by:
deepClonein interfaceItemDefinitionDelegator<I extends Item<?,?>>
-
copy
-
toString
-
instantiate
Description copied from interface:ItemDefinitionCreate an item instance. Definition name will use provided name. for the instance. The instance will otherwise be empty.- Specified by:
instantiatein interfaceItemDefinition<I extends Item<?,?>> - Specified by:
instantiatein interfaceItemDefinitionDelegator<I extends Item<?,?>> - Throws:
SchemaException
-
delegatedItem
-