Class ComposedSingleModelItemsProperty<X extends ModelAwareDataAwareAmetysObject>
- Type Parameters:
X- Type of ametys object supported by this property
- All Implemented Interfaces:
Comparable<ModelItem>,Property<String,,X> CriterionDefinitionAwareElementDefinition<String,,String, X> IndexationAwareElementDefinition<String,,X> ElementDefinition<String>,ModelItem,PluginAware,Labelable,ModifiableLabelable,Configurable,Contextualizable,Serviceable
Property getting the first available value as string, supporting concatenation with default separator '-'.
For example, with this configuration:
We will first search for "myNumericCode".
<items>
<item ref="myNumericCode"/>
</items>
<items>
<item ref="otherCode"/>
<item ref="linkedContent/code"/>
</items>
<items separator="/">
<item ref="alternativeCode"/>
<item ref="linkedContent/code" optional="true"/>
</items>
If empty, we will search for concatenation of "otherCode" and the "code" item on "linkedContent".
If empty, we will search for concatenation of "alternativeCode" and the "code" item on "linkedContent", even if this one is empty due to the optional attribute.
The first non-empty value is returned.
Otherwise, null is returned.
Referenced items have to be single. If a part of the path is multiple (repeater, multiple references, etc.), it will be rejected by a ConfigurationException.
-
Field Summary
Fields inherited from class org.ametys.cms.model.properties.AbstractIndexableStaticProperty
_criterionDefinitionHelper, _indexationAwareElementDefinitionHelperFields inherited from class org.ametys.cms.model.properties.AbstractStaticProperty
_contextFields inherited from class org.ametys.runtime.model.DefaultElementDefinition
_loggerFields inherited from class org.ametys.runtime.model.AbstractModelItem
__context, __serviceManagerFields inherited from interface org.ametys.runtime.model.ElementDefinition
CONFIG_DEFAULT_VALUE_TYPEFields inherited from interface org.ametys.runtime.model.ModelItem
ITEM_PATH_SEPARATOR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidconfigure(Configuration configuration) protected StringRetrieves the id of the property's typeGet the element's valuevoidUsed to do more initialization, checks...booleanTest if the element is multiple.Methods inherited from class org.ametys.cms.model.properties.AbstractIndexableStaticProperty
getCriterionType, getCriterionTypeId, getSolrSortFieldName, serviceMethods inherited from class org.ametys.cms.model.properties.AbstractStaticProperty
_getNameConfigurationAttribute, _parseAndSetEnumerator, _parseDescription, _parseLabel, _parseName, contextualizeMethods inherited from class org.ametys.cms.model.properties.AbstractProperty
getType, isEditable, setPluginInfoMethods inherited from class org.ametys.runtime.model.DefaultElementDefinition
_defaultValueToJSON, _getDefaultValues, _getSimpleDefaultValue, _toJSON, _widgetToJSON, _widgetToSAX, getCustomEnumerator, getCustomValidator, getDefaultValue, getEnumerator, getEnumeratorConfiguration, getParsedDefaultValues, getValidator, getValidatorConfiguration, getWidget, getWidgetParameters, of, setCustomEnumerator, setCustomValidator, setDefaultValue, setEnumerator, setEnumeratorConfiguration, setMultiple, setParsedDefaultValues, setType, setValidator, setValidatorConfiguration, setWidget, setWidgetParameters, toSAXMethods inherited from class org.ametys.runtime.model.AbstractModelItem
_getModelItemHelper, _shouldJSONBeEmpty, _widgetParameterToSAX, addItemChecker, compareTo, disableConditionsToJSON, equals, getDescription, getDisableConditions, getItemCheckers, getLabel, getModel, getName, getParent, getPath, getPluginName, hashCode, setContext, setDescription, setDisableConditions, setLabel, setModel, setName, setParent, setPluginName, setServiceManager, toJSON, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Comparable
compareToMethods inherited from interface org.ametys.cms.search.model.CriterionDefinitionAwareElementDefinition
convertQueryValue, getDefaultCriterionEnumerator, getDefaultCriterionOperator, getDefaultCriterionWidget, getDefaultCriterionWidgetParameters, getQueryMethods inherited from interface org.ametys.runtime.model.ElementDefinition
getCustomEnumerator, getCustomValidator, getDefaultValue, getEnumerator, getEnumeratorConfiguration, getParsedDefaultValues, getValidator, getValidatorConfiguration, isEditable, setCustomEnumerator, setCustomValidator, setDefaultValue, setEnumerator, setEnumeratorConfiguration, setMultiple, setParsedDefaultValues, setValidator, setValidatorConfigurationMethods inherited from interface org.ametys.cms.search.model.IndexationAwareElementDefinition
getSolrFacetFieldName, getSolrFieldName, getType, indexValue, isFacetable, isSortableMethods inherited from interface org.ametys.runtime.util.Labelable
getDescription, getLabel, getNameMethods inherited from interface org.ametys.runtime.model.ModelItem
addItemChecker, getDisableConditions, getItemCheckers, getModel, getParent, getPath, getPluginName, getWidget, getWidgetParameters, setDisableConditions, setModel, setParent, setPluginName, setType, setWidget, setWidgetParameters, toJSON, toSAXMethods inherited from interface org.ametys.runtime.util.ModifiableLabelable
setDescription, setLabel, setNameMethods inherited from interface org.ametys.cms.model.properties.Property
valueToJSON, valueToSAX
-
Constructor Details
-
ComposedSingleModelItemsProperty
public ComposedSingleModelItemsProperty()
-
-
Method Details
-
configure
- Specified by:
configurein interfaceConfigurable- Overrides:
configurein classAbstractStaticProperty<String,X extends ModelAwareDataAwareAmetysObject> - Throws:
ConfigurationException
-
init
Description copied from interface:PropertyUsed to do more initialization, checks... needing the role of extension point containing the types available for this property Called byModelparsing when the model items of all models have been initialized.- Specified by:
initin interfaceProperty<String,X extends ModelAwareDataAwareAmetysObject> - Overrides:
initin classAbstractProperty<String,X extends ModelAwareDataAwareAmetysObject> - Parameters:
availableTypesRole- the extension point's role for available types- Throws:
Exception- if an error occurs or if an additional check fails.
-
getValue
Description copied from interface:IndexationAwareElementDefinitionGet the element's value- Parameters:
dataHolder- the ametysObject containing the element- Returns:
- the values to index.
-
isMultiple
Description copied from interface:ElementDefinitionTest if the element is multiple.- Specified by:
isMultiplein interfaceElementDefinition<X extends ModelAwareDataAwareAmetysObject>- Overrides:
isMultiplein classDefaultElementDefinition<String>- Returns:
trueif the metadata is multiple.
-
getTypeId
Description copied from class:AbstractPropertyRetrieves the id of the property's type- Specified by:
getTypeIdin classAbstractProperty<String,X extends ModelAwareDataAwareAmetysObject> - Returns:
- the id of the property's type
-