Class PrismPropertyDefinitionImpl<T>
- All Implemented Interfaces:
Definition,Freezable,ItemDefinition<PrismProperty<T>>,ItemDefinitionTestAccess,MutableDefinition,MutableItemDefinition<PrismProperty<T>>,MutablePrismPropertyDefinition<T>,PrismContextSensitive,PrismItemAccessDefinition,PrismPropertyDefinition<T>,Revivable,SmartVisitable<Definition>,Visitable<Definition>,DebugDumpable,Serializable,Cloneable
- Direct Known Subclasses:
RawResourceAttributeDefinitionImpl
Property is a basic unit of information in midPoint. This class provides definition of property type, multiplicity and so on.
Property is a specific characteristic of an object. It may be considered object "attribute" or "field". For example User has fullName property that contains string value of user's full name.
Properties may be single-valued or multi-valued
Properties may contain primitive types or complex types (defined by XSD schema)
Property values are unordered, implementation may change the order of values
Duplicate values of properties should be silently removed by implementations, but clients must be able tolerate presence of duplicate values.
Operations that modify the objects work with the granularity of properties. They add/remove/replace the values of properties, but do not "see" inside the property.
This class represents schema definition for property. See Definition
for more details.
- Author:
- Radovan Semancik
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
PrismItemAccessDefinition.Mutable -
Field Summary
Fields inherited from class com.evolveum.midpoint.prism.impl.ItemDefinitionImpl
heterogeneousListItem, itemName, substitutionHeadFields inherited from class com.evolveum.midpoint.prism.impl.DefinitionImpl
deprecated, deprecatedSince, displayName, displayOrder, documentation, elaborate, emphasized, experimental, help, isAbstract, isRuntimeSchema, plannedRemoval, processing, removed, removedSince, typeNameFields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING -
Constructor Summary
ConstructorsConstructorDescriptionPrismPropertyDefinitionImpl(QName elementName, QName typeName) PrismPropertyDefinitionImpl(QName elementName, QName typeName, QName definedInType) PrismPropertyDefinitionImpl(QName elementName, QName typeName, T defaultValue) PrismPropertyDefinitionImpl(QName elementName, QName typeName, T defaultValue, QName definedInType) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanBeDefinitionOf(PrismValue pvalue) TODO document@NotNull PrismPropertyDefinitionImpl<T>clone()protected void@NotNull PropertyDelta<T>createEmptyDelta(ItemPath path) Creates an empty delta (with appropriate implementation class), pointing to this item definition, with a given path.booleanprotected void@Nullable Collection<? extends DisplayableValue<T>>Returns allowed values for this property.protected StringReturn a human readable name of this class suitable for logs.Returns human-readable name of this class suitable for documentation.Returns matching rule name.@Nullable Collection<? extends DisplayableValue<T>>Returns suggested values for this property.inthashCode()@NotNull PrismProperty<T>Create an item instance.@NotNull PrismProperty<T>instantiate(QName name) Create an item instance.This is XSD annotation that specifies whether a property should be indexed in the storage.voidsetAllowedValues(Collection<? extends DisplayableValue<T>> allowedValues) voidsetIndexed(Boolean indexed) voidsetMatchingRuleQName(QName matchingRuleQName) voidsetSuggestedValues(Collection<? extends DisplayableValue<T>> suggestedValues) Returns complex type definition of item, if underlying value is possible structured.Returns an interface to mutate this definition.Methods inherited from class com.evolveum.midpoint.prism.impl.ItemDefinitionImpl
adoptElementDefinitionFrom, canAdd, canBeDefinitionOf, canModify, canRead, copyDefinitionDataFrom, debugDisplayOrder, debugDumpShortToString, debugFlags, debugMultiplicity, deepClone, findItemDefinition, getItemName, getMaxOccurs, getMinOccurs, getSubstitutionHead, getValueEnumerationRef, isDynamic, isHeterogeneousListItem, isIndexOnly, isInherited, isOperational, isSearchable, isValidFor, replaceName, revive, setCanAdd, setCanModify, setCanRead, setDynamic, setHeterogeneousListItem, setIndexOnly, setInherited, setItemName, setMaxOccurs, setMinOccurs, setOperational, setReadOnly, setSearchable, setSubstitutionHead, setValueEnumerationRef, toString, useSerializationProxy, writeReplaceMethods inherited from class com.evolveum.midpoint.prism.impl.DefinitionImpl
accept, accept, addDiagram, addSchemaMigration, checkMutableOnExposing, copyDefinitionDataFrom, debugDump, extendDumpHeader, getAnnotation, getAnnotations, getDeprecatedSince, getDiagrams, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getPlannedRemoval, getPrismContext, getProcessing, getRemovedSince, getSchemaMigrations, getTypeClass, getTypeName, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, isRemoved, isRuntimeSchema, setAbstract, setAnnotation, setDeprecated, setDeprecatedSince, setDisplayName, setDisplayOrder, setDocumentation, setElaborate, setEmphasized, setExperimental, setHelp, setPlannedRemoval, setProcessing, setRemoved, setRemovedSince, setRuntimeSchema, setTypeNameMethods inherited from class com.evolveum.midpoint.prism.AbstractFreezable
freeze, freeze, freezeAll, freezeNullableList, isImmutable, isMutable, performFreezeMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.prism.Definition
debugDump, getAnnotation, getAnnotations, getDeprecatedSince, getDiagrams, getDisplayName, getDisplayOrder, getDocumentation, getDocumentationPreview, getHelp, getMutabilityFlag, getPlannedRemoval, getProcessing, getRemovedSince, getSchemaMigrations, getSchemaRegistry, getTypeName, isAbstract, isDeprecated, isElaborate, isEmphasized, isExperimental, isIgnored, isRemoved, isRuntimeSchema, setAnnotationMethods inherited from interface com.evolveum.midpoint.prism.Freezable
checkImmutable, checkMutable, freeze, isImmutableMethods inherited from interface com.evolveum.midpoint.prism.ItemDefinition
adoptElementDefinitionFrom, canBeDefinitionOf, debugDumpShortToString, deepClone, findItemDefinition, getItemName, getMaxOccurs, getMinOccurs, getSubstitutionHead, getValueEnumerationRef, isDynamic, isHeterogeneousListItem, isIndexOnly, isInherited, isMandatory, isMultiValue, isOperational, isOptional, isSearchable, isSingleValue, isValidForMethods inherited from interface com.evolveum.midpoint.prism.MutableDefinition
addDiagram, addSchemaMigration, setDeprecated, setDisplayName, setDisplayOrder, setDocumentation, setEmphasized, setExperimental, setHelp, setProcessing, setRemoved, setRemovedSince, setRuntimeSchema, setTypeNameMethods inherited from interface com.evolveum.midpoint.prism.MutableItemDefinition
setCanAdd, setCanModify, setCanRead, setDeprecatedSince, setDynamic, setElaborate, setHeterogeneousListItem, setIndexOnly, setItemName, setMaxOccurs, setMinOccurs, setOperational, setPlannedRemoval, setReadOnly, setSearchable, setSubstitutionHead, setValueEnumerationRefMethods inherited from interface com.evolveum.midpoint.prism.MutablePrismPropertyDefinition
setInheritedMethods inherited from interface com.evolveum.midpoint.prism.PrismContextSensitive
getPrismContextMethods inherited from interface com.evolveum.midpoint.prism.PrismItemAccessDefinition
canAdd, canModify, canReadMethods inherited from interface com.evolveum.midpoint.prism.PrismPropertyDefinition
getTypeClass, isAnyTypeMethods inherited from interface com.evolveum.midpoint.prism.SmartVisitable
accept
-
Constructor Details
-
PrismPropertyDefinitionImpl
-
PrismPropertyDefinitionImpl
-
PrismPropertyDefinitionImpl
-
PrismPropertyDefinitionImpl
-
-
Method Details
-
getAllowedValues
Description copied from interface:PrismPropertyDefinitionReturns allowed values for this property.- Specified by:
getAllowedValuesin interfacePrismPropertyDefinition<T>
-
setAllowedValues
- Specified by:
setAllowedValuesin interfaceMutablePrismPropertyDefinition<T>
-
getSuggestedValues
Description copied from interface:PrismPropertyDefinitionReturns suggested values for this property.- Specified by:
getSuggestedValuesin interfacePrismPropertyDefinition<T>
-
setSuggestedValues
- Specified by:
setSuggestedValuesin interfaceMutablePrismPropertyDefinition<T>
-
defaultValue
- Specified by:
defaultValuein interfacePrismPropertyDefinition<T>
-
isIndexed
Description copied from interface:PrismPropertyDefinitionThis 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 interfacePrismPropertyDefinition<T>
-
setIndexed
- Specified by:
setIndexedin interfaceMutablePrismPropertyDefinition<T>
-
getMatchingRuleQName
Description copied from interface:PrismPropertyDefinitionReturns matching rule name. Matching rules are algorithms that specify how to compare, normalize and/or order the values. E.g. there are matching rules for case insensitive string comparison, for LDAP DNs, etc.- Specified by:
getMatchingRuleQNamein interfacePrismPropertyDefinition<T>- Returns:
- matching rule name
-
setMatchingRuleQName
- Specified by:
setMatchingRuleQNamein interfaceMutablePrismPropertyDefinition<T>
-
instantiate
Description copied from interface:ItemDefinitionCreate an item instance. Definition name or default name will be used as an element name for the instance. The instance will otherwise be empty.- Specified by:
instantiatein interfaceItemDefinition<T>- Specified by:
instantiatein interfacePrismPropertyDefinition<T>
-
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<T>- Specified by:
instantiatein interfacePrismPropertyDefinition<T>
-
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<T>- Specified by:
createEmptyDeltain interfacePrismPropertyDefinition<T>
-
canBeDefinitionOf
Description copied from interface:ItemDefinitionTODO document- Specified by:
canBeDefinitionOfin interfaceItemDefinition<T>
-
clone
- Specified by:
clonein interfaceDefinition- Specified by:
clonein interfaceItemDefinition<T>- Specified by:
clonein interfaceMutablePrismPropertyDefinition<T>- Specified by:
clonein interfacePrismPropertyDefinition<T>- Specified by:
clonein classItemDefinitionImpl<PrismProperty<T>>
-
copyDefinitionDataFrom
-
extendToString
- Overrides:
extendToStringin classItemDefinitionImpl<PrismProperty<T>>
-
equals
- Overrides:
equalsin classItemDefinitionImpl<PrismProperty<T>>
-
hashCode
public int hashCode()- Overrides:
hashCodein classItemDefinitionImpl<PrismProperty<T>>
-
getDebugDumpClassName
Return a human readable name of this class suitable for logs.- Specified by:
getDebugDumpClassNamein classDefinitionImpl
-
getDocClassName
Description copied from class:DefinitionImplReturns human-readable name of this class suitable for documentation. (e.g. "property")- Specified by:
getDocClassNamein classDefinitionImpl
-
toMutable
Description copied from interface:DefinitionReturns an interface to mutate this definition.- Specified by:
toMutablein interfaceDefinition- Specified by:
toMutablein interfaceItemDefinition<T>- Specified by:
toMutablein interfacePrismPropertyDefinition<T>
-
structuredType
Description copied from interface:ItemDefinitionReturns complex type definition of item, if underlying value is possible structured. NOTE: This seems weird, since properties and references are simple values, but actually object reference is serialized as structured value and some of properties are also.- Specified by:
structuredTypein interfaceItemDefinition<T>
-