Class ListAttributeDefinition

java.lang.Object
org.jboss.as.controller.AttributeDefinition
org.jboss.as.controller.ListAttributeDefinition
All Implemented Interfaces:
Feature
Direct Known Subclasses:
ObjectListAttributeDefinition, PrimitiveListAttributeDefinition, SimpleListAttributeDefinition

public abstract class ListAttributeDefinition extends AttributeDefinition
Defining characteristics of an ModelType.LIST attribute in a Resource, with utility methods for conversion to and from xml and for validation.
Author:
Brian Stansberry (c) 2011 Red Hat Inc.
  • Constructor Details

  • Method Details

    • getElementValidator

      public ParameterValidator getElementValidator()
      The validator used to validate elements in the list.
      Returns:
      the element validator
    • getValueAttributeDefinition

      public AttributeDefinition getValueAttributeDefinition()
      Returns an AttributeDefinition describing the content of the list.
      Returns:
      an AttributeDefinition describing the content of the list - null if none is defined.
    • parseAndAddParameterElement

      @Deprecated(forRemoval=true) public void parseAndAddParameterElement(String value, org.jboss.dmr.ModelNode operation, XMLStreamReader reader) throws XMLStreamException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a ModelNode using the given value after first validating the node against this object's element validator, and then stores it in the given operation model node as an element in a ModelType.LIST value in a key/value pair whose key is this attribute's name.

      If value is null an undefined node will be stored if such a value is acceptable to the validator.

      The expected usage of this method is in parsers seeking to build up an operation to store their parsed data into the configuration.

      Parameters:
      value - the value. Will be trimmed before use if not null.
      operation - model node of type ModelType.OBJECT into which the parsed value should be stored
      reader - XMLStreamReader from which the location from which the attribute value was read can be obtained and used in any XMLStreamException, in case the given value is invalid.
      Throws:
      XMLStreamException - if value is not valid
    • addResourceAttributeDescription

      public org.jboss.dmr.ModelNode addResourceAttributeDescription(ResourceBundle bundle, String prefix, org.jboss.dmr.ModelNode resourceDescription)
      Description copied from class: AttributeDefinition
      Creates a returns a basic model node describing the attribute, after attaching it to the given overall resource description model node. The node describing the attribute is returned to make it easy to perform further modification.
      Overrides:
      addResourceAttributeDescription in class AttributeDefinition
      Parameters:
      bundle - resource bundle to use for text descriptions
      prefix - prefix to prepend to the attribute name key when looking up descriptions
      resourceDescription - the overall resource description
      Returns:
      the attribute description node
    • addResourceAttributeDescription

      public org.jboss.dmr.ModelNode addResourceAttributeDescription(org.jboss.dmr.ModelNode resourceDescription, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
      Description copied from class: AttributeDefinition
      Creates a returns a basic model node describing the attribute, after attaching it to the given overall resource description model node. The node describing the attribute is returned to make it easy to perform further modification.
      Overrides:
      addResourceAttributeDescription in class AttributeDefinition
      Parameters:
      resourceDescription - the overall resource description
      resolver - provider of localized text descriptions
      locale - locale to pass to the resolver
      bundle - bundle to pass to the resolver
      Returns:
      the attribute description node
    • addOperationParameterDescription

      public org.jboss.dmr.ModelNode addOperationParameterDescription(org.jboss.dmr.ModelNode resourceDescription, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
      Description copied from class: AttributeDefinition
      Creates a returns a basic model node describing a parameter that sets this attribute, after attaching it to the given overall operation description model node. The node describing the parameter is returned to make it easy to perform further modification.
      Overrides:
      addOperationParameterDescription in class AttributeDefinition
      Parameters:
      resourceDescription - the overall resource description
      operationName - the operation name
      resolver - provider of localized text descriptions
      locale - locale to pass to the resolver
      bundle - bundle to pass to the resolver
      Returns:
      the attribute description node
    • addOperationParameterDescription

      public org.jboss.dmr.ModelNode addOperationParameterDescription(ResourceBundle bundle, String prefix, org.jboss.dmr.ModelNode operationDescription)
      Description copied from class: AttributeDefinition
      Creates a returns a basic model node describing a parameter that sets this attribute, after attaching it to the given overall operation description model node. The node describing the parameter is returned to make it easy to perform further modification.
      Overrides:
      addOperationParameterDescription in class AttributeDefinition
      Parameters:
      bundle - resource bundle to use for text descriptions
      prefix - prefix to prepend to the attribute name key when looking up descriptions
      operationDescription - the overall resource description
      Returns:
      the attribute description node
    • addOperationReplyDescription

      public org.jboss.dmr.ModelNode addOperationReplyDescription(org.jboss.dmr.ModelNode resourceDescription, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
      Description copied from class: AttributeDefinition
      Creates a returns a basic model node describing a parameter that sets this attribute, after attaching it to the given overall operation description model node. The node describing the parameter is returned to make it easy to perform further modification.
      Overrides:
      addOperationReplyDescription in class AttributeDefinition
      Parameters:
      resourceDescription - the overall resource description
      operationName - the operation name
      resolver - provider of localized text descriptions
      locale - locale to pass to the resolver
      bundle - bundle to pass to the resolver
      Returns:
      the attribute description node
    • addValueTypeDescription

      protected abstract void addValueTypeDescription(org.jboss.dmr.ModelNode node, ResourceBundle bundle)
    • addAttributeValueTypeDescription

      protected abstract void addAttributeValueTypeDescription(org.jboss.dmr.ModelNode node, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
    • addOperationParameterValueTypeDescription

      protected abstract void addOperationParameterValueTypeDescription(org.jboss.dmr.ModelNode node, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
    • addOperationReplyValueTypeDescription

      protected void addOperationReplyValueTypeDescription(org.jboss.dmr.ModelNode node, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
    • marshallAsElement

      public void marshallAsElement(org.jboss.dmr.ModelNode resourceModel, boolean marshallDefault, XMLStreamWriter writer) throws XMLStreamException
      Description copied from class: AttributeDefinition
      Marshalls the value from the given resourceModel as an xml element, if it is marshallable.
      Overrides:
      marshallAsElement in class AttributeDefinition
      Parameters:
      resourceModel - the model, a non-null node of ModelType.OBJECT.
      marshallDefault - true if the value should be marshalled even if it matches the default value
      writer - stream writer to use for writing the attribute
      Throws:
      XMLStreamException - if thrown by writer
    • convertParameterExpressions

      protected org.jboss.dmr.ModelNode convertParameterExpressions(org.jboss.dmr.ModelNode parameter)
      Iterates through the elements in the parameter list, calling convertParameterElementExpressions(ModelNode) for each.

      Note that the default implementation of convertParameterElementExpressions(ModelNode) will only convert simple ModelType.STRING elements. If users need to handle complex elements with embedded expressions, they should use a subclass that overrides that method.

      Examine the given operation parameter value for any expression syntax, converting the relevant node to ModelType.EXPRESSION if such is supported.

      This implementation checks if expressions are allowed and if so, calls AttributeDefinition.convertStringExpression(ModelNode) to convert a ModelType.STRING to a ModelType.EXPRESSION. No other conversions are performed. For use cases requiring more complex behavior, a subclass that overrides this method should be used.

      If expressions are supported this implementation also checks if the attribute type is one of the complex DMR types. If it is, an IllegalStateException is thrown, as this implementation cannot properly handle such a combination, and a subclass that overrides this method should be used.

      Overrides:
      convertParameterExpressions in class AttributeDefinition
      Parameters:
      parameter - the node to examine. Cannot not be null
      Returns:
      a node matching parameter but with expressions converted, or the original parameter if no conversion was performed. Will not return null
    • convertParameterElementExpressions

      protected org.jboss.dmr.ModelNode convertParameterElementExpressions(org.jboss.dmr.ModelNode parameterElement)
      Examine the given element of a parameter list for any expression syntax, converting the relevant node to ModelType.EXPRESSION if such is supported. This implementation will only convert elements of ModelType.STRING. Subclasses that need to handle complex elements should override this method.
      Parameters:
      parameterElement - the node to examine. Will not be null
      Returns:
      the parameter element with expressions converted, or the original parameter if no conversion was performed Cannot return null