Interface TypeAttributeDescriptor
- All Known Implementing Classes:
ClassificationTypeAttributeDescriptor,DefaultTypeAttributeDescriptor,VirtualTypeAttributeDescriptor
ItemModel.-
Method Summary
Modifier and TypeMethodDescriptiondefault AttributeValueAccessoraccessor()Gets theAttributeValueAccessorfor accessing this attribute's valueGets name of the attribute described by this descriptor.Retrieves type of this attribute value(s).Gets theCollectionDescriptordefault Optional<MapDescriptor>Gets a map descriptor for this attribute.Gets name of this attribute in the platform type system.@NotNull TypeDescriptorRetrieves descriptor of the type, this attribute is associated with.booleanDetermines whether the item referenced by this attribute should be persisted when the item with this attribute is persisted.booleanDetermines whether this attribute contains a single value or multiple values (a collection of values).default booleanDetermines whether this attribute is a key attributebooleanDetermines whether the value of this descriptor can be localized.default booleanisMap()Determines whether the attribute is referring to a map of values.booleanDetermines whether the attribute represented by this descriptor can takenullvalues.default booleanisPartOf()Determines whether the item referenced by this attribute should be a part of the attribute's item model or not.booleanDetermines whether the value of this descriptor is a primitive typedefault booleanDetermines whether this attribute is readabledefault booleanisSettable(Object item) Indicates whether this attribute's value can be set.default Optional<TypeAttributeDescriptor>reverse()Reverses the relation described by this attribute descriptor and retrieves an attribute descriptor defined in thegetAttributeType()type descriptor withgetTypeDescriptor()attribute type.
-
Method Details
-
getAttributeName
String getAttributeName()Gets name of the attribute described by this descriptor.- Returns:
- name of the attribute as it was defined for the integration object.
-
getQualifier
String getQualifier()Gets name of this attribute in the platform type system.- Returns:
- name of this attribute in the type system.
-
isCollection
boolean isCollection()Determines whether this attribute contains a single value or multiple values (a collection of values).- Returns:
true, if this attribute contains a collection of primitive or complex type values;false, if this attribute contains only a single primitive or complex type value.
-
getAttributeType
TypeDescriptor getAttributeType()Retrieves type of this attribute value(s).- Returns:
- type of this attribute value, which may be a primitive type or a complex type referring an item in the type system; or a type of the referenced element(s) in case, if this attribute contains a collection of values or represents a one-to-one, one-to-many or many-to-many relationship.
- See Also:
-
getTypeDescriptor
Retrieves descriptor of the type, this attribute is associated with.- Returns:
- descriptor of the item type that contains the attribute described by this attribute descriptor.
-
reverse
Reverses the relation described by this attribute descriptor and retrieves an attribute descriptor defined in the
getAttributeType()type descriptor withgetTypeDescriptor()attribute type.For example, type
Parenthas attributechildrenthat refers a collection of typeChild; and typeChildhas an attributeparentreferring back toParenttype. Then attribute descriptor forparentattribute is reverse forchildrenattribute descriptor.Another example, type
Organizationhas attributeaddressesthat refers a collection of typeAddress; but typeAddressdoes not refer back to typeOrganization. In this case there is no reverse attribute foraddressesattribute descriptor.- Returns:
- an optional containing a descriptor for the attribute in type returned by
getAttributeType(), which refers back to the type retrieved by callinggetTypeDescriptor()on this attribute descriptor; or an empty optional that attribute type of this descriptor does not refer back to the type containing this attribute descriptor.
-
isNullable
boolean isNullable()Determines whether the attribute represented by this descriptor can takenullvalues.- Returns:
true, if the attribute can takenullvalues;false, if the attribute value is required.
-
isPartOf
default boolean isPartOf()Determines whether the item referenced by this attribute should be a part of the attribute's item model or not. This defines in particular whether the nested referenced item will be created whenever the "container" item is persisted (part of) or it can and should exist and persist independently (not a part of). For example, aCarhas an attributeengine, which refers itemEngine. If the business model is interested in cars only and does not care about engines outside of the car model, then the attribute should be defined withpartOf == true. If the engine has independent existence, e.g. engine can be sold without a car, then the attribute should defined withpartOf == false.In other words, this attribute descriptor defines a relation between an owner and the owned item. Thus in the example above
Engineis owned byCaras it does not have independent existence in the model.- Returns:
true, if the item referenced by this attribute descriptor is an integral part of its owner model.- See Also:
-
isAutoCreate
boolean isAutoCreate()Determines whether the item referenced by this attribute should be persisted when the item with this attribute is persisted. UnlikeisPartOf()this method does not require the referenced item to be an integral part of the owner item. The referenced item may have its independent existence in the domain model and yet it will be persisted together with the item holding an attribute described by this descriptor.- Returns:
true, if the attribute's item should be included within the item holding an attribute described by this descriptor;false, if the referenced item should not be persisted with the item holding an attribute described by this descriptor.- See Also:
-
isLocalized
boolean isLocalized()Determines whether the value of this descriptor can be localized. This method may need to be used withisMap()to determine whether the attribute supports multiple locale specific values. Some attributes may be localized but do not support multi-locale values. For example, a simple Numeric or Boolean attribute can be declared as localized.- Returns:
- true if localized, else false
-
isPrimitive
boolean isPrimitive()Determines whether the value of this descriptor is a primitive type- Returns:
- true if it's a primitive type, else false
-
isMap
default boolean isMap()Determines whether the attribute is referring to a map of values. Typically used to determiine in conjunction withisLocalized()to determine whether the attribute can hold multiple locale specific values. However, it can be used by itself.- Returns:
true, if the attribute refers to a map;falseotherwise.
-
isSettable
Indicates whether this attribute's value can be set.- Returns:
trueif value is settable,falseotherwise
-
isKeyAttribute
default boolean isKeyAttribute()Determines whether this attribute is a key attribute- Returns:
true, if the attribute is a key attribute, otherwise, false
-
isReadable
default boolean isReadable()Determines whether this attribute is readable- Returns:
trueif the attribute is readable, false otherwise. Returnstrueby default for backwards compatibility
-
getCollectionDescriptor
CollectionDescriptor getCollectionDescriptor()Gets theCollectionDescriptor- Returns:
- A collection descriptor
-
getMapDescriptor
Gets a map descriptor for this attribute.- Returns:
Optionalcontaining aMapDescriptor, if this attribute is of Map type; otherwise returnsOptional.empty()- See Also:
-
accessor
Gets theAttributeValueAccessorfor accessing this attribute's value- Returns:
- The AttributeValueAccessor
-