Class ElementDefinition<T>

java.lang.Object
org.ametys.runtime.model.AbstractModelItem
org.ametys.runtime.model.ElementDefinition<T>
Type Parameters:
T - Type of the element value
All Implemented Interfaces:
Comparable<ModelItem>, ModelItem, Labelable, ModifiableLabelable
Direct Known Subclasses:
AttributeDefinition, ServiceParameter, ViewParameter

public class ElementDefinition<T> extends AbstractModelItem
The definition of a single model item (parameter, attribute)
  • Field Details

  • Constructor Details

  • Method Details

    • getType

      public ElementType<T> getType()
      Description copied from interface: ModelItem
      Retrieves the type.
      Returns:
      the type.
    • setType

      public void setType(ModelItemType type)
      Description copied from interface: ModelItem
      Set the type.
      Parameters:
      type - the type.
    • getEnumerator

      Retrieves the enumerator.
      Returns:
      the enumerator or null if none is defined.
    • setEnumerator

      public void setEnumerator(Enumerator<T> enumerator)
      Set the enumerator.
      Parameters:
      enumerator - the enumerator.
    • getCustomEnumerator

      Retrieves the custom enumerator's class name
      Returns:
      the custom enumerator's class name
    • setCustomEnumerator

      public void setCustomEnumerator(String customEnumerator)
      Set the custom enumerator's class name
      Parameters:
      customEnumerator - the custom enumerator's class name
    • getEnumeratorConfiguration

      Retrieves the custom enumerator's configuration
      Returns:
      the custom enumerator's configuration
    • setEnumeratorConfiguration

      public void setEnumeratorConfiguration(Configuration enumeratorConfiguration)
      Set the custom enumerator's configuration
      Parameters:
      enumeratorConfiguration - the custom enumerator's configuration
    • getValidator

      Retrieves the validator.
      Returns:
      the validator or null if none is defined.
    • setValidator

      public void setValidator(Validator validator)
      Set the validator.
      Parameters:
      validator - the validator.
    • getCustomValidator

      Retrieves the custom validator's class name
      Returns:
      the custom validator's class name
    • setCustomValidator

      public void setCustomValidator(String customValidator)
      Set the custom validator's class name
      Parameters:
      customValidator - the custom validator's class name
    • getValidatorConfiguration

      Retrieves the custom validator's configuraiton
      Returns:
      the custom validator's configuration
    • setValidatorConfiguration

      public void setValidatorConfiguration(Configuration validatorConfiguration)
      Set the custom validator's configuration
      Parameters:
      validatorConfiguration - the custom validator's configuration
    • getDefaultValue

      public <X> X getDefaultValue()
      Retrieves the default value, as an object corresponding to the definition's type and cardinality Retrieves null if no default value is defined for this definition
      Type Parameters:
      X - The type of the default value
      Returns:
      the default value.
    • _getDefaultValue

      protected T _getDefaultValue(String defaultValueType, Object parsedDefaultValue)
      Retrieves the default value from the parsed one, according to the type of the default value
      Parameters:
      parsedDefaultValue - the parsed default value (can be an I18nizableText, a config parameter name, ... depending on the default value type)
      defaultValueType - the type of the default value
      Returns:
      the default value.
    • setParsedDefaultValues

      public void setParsedDefaultValues(List<Pair<String,Object>> parsedDefaultValues)
      Set the parsed default values. If the definition is not multiple, the list should contain only one element A parsed default value is described by its type and an object depending on the type
      Parameters:
      parsedDefaultValues - the parsed default values.
    • setDefaultValue

      public void setDefaultValue(T defaultValue)
      Set a default value to the definition The default value is single, classic default value
      Parameters:
      defaultValue - the default value to set
    • _getParsedDefaultValues

      Retrieves the parsed default values
      Returns:
      the parsed default values
    • isMultiple

      public boolean isMultiple()
      Test if the element is multiple.
      Returns:
      true if the metadata is multiple.
    • setMultiple

      public void setMultiple(boolean isMultiple)
      Set the element multiple status.
      Parameters:
      isMultiple - the element multiple status.
    • _toJSON

      Description copied from class: AbstractModelItem
      Converts the model item in a JSON map
      Overrides:
      _toJSON in class AbstractModelItem
      Parameters:
      context - the context of the definition
      Returns:
      The model item as a JSON map
      Throws:
      ProcessingException - If an error occurs when converting the model item
    • toSAX

      public void toSAX(ContentHandler contentHandler, DefinitionContext context) throws SAXException
      Description copied from interface: ModelItem
      Generates SAX events for the model item
      Specified by:
      toSAX in interface ModelItem
      Overrides:
      toSAX in class AbstractModelItem
      Parameters:
      contentHandler - the ContentHandler that will receive the SAX events
      context - the context of the definition
      Throws:
      SAXException - if an error occurs during the SAX events generation
    • of

      public static ElementDefinition of(String name, boolean isMultiple, String typeId, String availableTypesExtensionPoint) throws UnknownTypeException, BadItemTypeException, ServiceException
      Parameters:
      name - the definition's name
      isMultiple - the definition's cardinality
      typeId - the definition's type identifier
      availableTypesExtensionPoint - the role of the extension point containing all available types for this ElementDefinition
      Returns:
      the created ElementDefinition
      Throws:
      UnknownTypeException - if the given type identifier is not available in the extension point
      BadItemTypeException - if the given type identifier can not be used for an ElementDefinition
      ServiceException - if an error occurs while getting the extension point of available types