Class MapAttributeDefinition
- java.lang.Object
-
- org.jboss.as.controller.AttributeDefinition
-
- org.jboss.as.controller.MapAttributeDefinition
-
- Direct Known Subclasses:
ObjectMapAttributeDefinition
,PropertiesAttributeDefinition
,SimpleMapAttributeDefinition
public abstract class MapAttributeDefinition extends AttributeDefinition
Defining characteristics of anModelType.OBJECT
attribute in aResource
, where all children of the object have values of the same type; i.e. the attribute represents a logical map of arbitrary key value pairs.- Author:
- Brian Stansberry (c) 2011 Red Hat Inc.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MapAttributeDefinition.Builder<BUILDER extends MapAttributeDefinition.Builder,ATTRIBUTE extends MapAttributeDefinition>
-
Nested classes/interfaces inherited from class org.jboss.as.controller.AttributeDefinition
AttributeDefinition.NameAndGroup
-
-
Field Summary
Fields Modifier and Type Field Description static ParameterCorrector
LIST_TO_MAP_CORRECTOR
-
Fields inherited from class org.jboss.as.controller.AttributeDefinition
COMPLEX_TYPES
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
MapAttributeDefinition(MapAttributeDefinition.Builder<? extends MapAttributeDefinition.Builder,? extends MapAttributeDefinition> builder)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
addAttributeValueTypeDescription(org.jboss.dmr.ModelNode result, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
org.jboss.dmr.ModelNode
addOperationParameterDescription(ResourceBundle bundle, String prefix, org.jboss.dmr.ModelNode operationDescription)
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.org.jboss.dmr.ModelNode
addOperationParameterDescription(org.jboss.dmr.ModelNode resourceDescription, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
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.protected abstract void
addOperationParameterValueTypeDescription(org.jboss.dmr.ModelNode result, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
org.jboss.dmr.ModelNode
addOperationReplyDescription(org.jboss.dmr.ModelNode resourceDescription, String operationName, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
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.org.jboss.dmr.ModelNode
addResourceAttributeDescription(ResourceBundle bundle, String prefix, org.jboss.dmr.ModelNode resourceDescription)
Creates a returns a basic model node describing the attribute, after attaching it to the given overall resource description model node.org.jboss.dmr.ModelNode
addResourceAttributeDescription(org.jboss.dmr.ModelNode resourceDescription, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
Creates a returns a basic model node describing the attribute, after attaching it to the given overall resource description model node.protected abstract void
addValueTypeDescription(org.jboss.dmr.ModelNode node, ResourceBundle bundle)
protected org.jboss.dmr.ModelNode
convertParameterElementExpressions(org.jboss.dmr.ModelNode parameterElementValue)
Examine the given value item of a parameter map for any expression syntax, converting the relevant node toModelType.EXPRESSION
if such is supported.protected org.jboss.dmr.ModelNode
convertParameterExpressions(org.jboss.dmr.ModelNode parameter)
Iterates through the items in theparameter
map, callingconvertParameterElementExpressions(ModelNode)
for each value.ParameterValidator
getElementValidator()
The validator used to validate values in the map.void
marshallAsElement(org.jboss.dmr.ModelNode resourceModel, boolean marshallDefault, XMLStreamWriter writer)
Marshalls the value from the givenresourceModel
as an xml element, if itis marshallable
.org.jboss.dmr.ModelNode
parse(String value, Location location)
Creates and returns aModelNode
using the givenvalue
after first validating the node againstthis object's validator
.void
parseAndAddParameterElement(String key, String value, org.jboss.dmr.ModelNode operation, org.jboss.staxmapper.XMLExtendedStreamReader reader)
-
Methods inherited from class org.jboss.as.controller.AttributeDefinition
addAccessConstraints, addAllowedValuesToDescription, addCapabilityRequirements, addDeprecatedInfo, addOperationReplyDescription, convertStringExpression, correctValue, getAccessConstraints, getAllowedValues, getAlternatives, getArbitraryDescriptors, getAttributeDeprecatedDescription, getAttributeGroup, getAttributeTextDescription, getCorrector, getDefaultValue, getDeprecationData, getFlags, getMarshaller, getMeasurementUnit, getName, getNoTextDescription, getParser, getReferenceRecorder, getRequires, getType, getUndefinedMetricValue, getValidator, getXmlName, hasAlternative, hasCapabilityRequirements, isAllowed, isAllowExpression, isDeprecated, isMarshallable, isMarshallable, isNillable, isNullSignificant, isRequired, isRequired, isResourceOnly, marshallAsElement, removeCapabilityRequirements, resolveModelAttribute, resolveModelAttribute, resolveValue, resolveValue, validateAndSet, validateOperation
-
-
-
-
Field Detail
-
LIST_TO_MAP_CORRECTOR
public static final ParameterCorrector LIST_TO_MAP_CORRECTOR
-
-
Constructor Detail
-
MapAttributeDefinition
protected MapAttributeDefinition(MapAttributeDefinition.Builder<? extends MapAttributeDefinition.Builder,? extends MapAttributeDefinition> builder)
-
-
Method Detail
-
parse
public org.jboss.dmr.ModelNode parse(String value, Location location) throws XMLStreamException
Creates and returns aModelNode
using the givenvalue
after first validating the node againstthis object's validator
.If
value
isnull
and adefault value
is available, the value of that default value will be used.- Parameters:
value
- the value. Will betrimmed
before use if notnull
.location
- current location of the parser'sXMLStreamReader
. Used for any exception message- Returns:
ModelNode
representing the parsed value- Throws:
XMLStreamException
- ifvalue
is not valid
-
parseAndAddParameterElement
public void parseAndAddParameterElement(String key, String value, org.jboss.dmr.ModelNode operation, org.jboss.staxmapper.XMLExtendedStreamReader reader) throws XMLStreamException
- Throws:
XMLStreamException
-
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 classAttributeDefinition
- Parameters:
bundle
- resource bundle to use for text descriptionsprefix
- prefix to prepend to the attribute name key when looking up descriptionsresourceDescription
- the overall resource description- 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 classAttributeDefinition
- Parameters:
bundle
- resource bundle to use for text descriptionsprefix
- prefix to prepend to the attribute name key when looking up descriptionsoperationDescription
- the overall resource description- Returns:
- the attribute description node
-
getElementValidator
public ParameterValidator getElementValidator()
The validator used to validate values in the map.- Returns:
- the element validator
-
addValueTypeDescription
protected abstract void addValueTypeDescription(org.jboss.dmr.ModelNode node, ResourceBundle bundle)
-
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 classAttributeDefinition
- Parameters:
resourceDescription
- the overall resource descriptionresolver
- provider of localized text descriptionslocale
- locale to pass to the resolverbundle
- bundle to pass to the resolver- Returns:
- the attribute description node
-
addAttributeValueTypeDescription
protected abstract void addAttributeValueTypeDescription(org.jboss.dmr.ModelNode result, ResourceDescriptionResolver resolver, Locale locale, ResourceBundle bundle)
-
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 classAttributeDefinition
- Parameters:
resourceDescription
- the overall resource descriptionoperationName
- the operation nameresolver
- provider of localized text descriptionslocale
- locale to pass to the resolverbundle
- bundle to pass to the resolver- 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 classAttributeDefinition
- Parameters:
resourceDescription
- the overall resource descriptionoperationName
- the operation nameresolver
- provider of localized text descriptionslocale
- locale to pass to the resolverbundle
- bundle to pass to the resolver- Returns:
- the attribute description node
-
addOperationParameterValueTypeDescription
protected abstract void addOperationParameterValueTypeDescription(org.jboss.dmr.ModelNode result, 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 givenresourceModel
as an xml element, if itis marshallable
.- Overrides:
marshallAsElement
in classAttributeDefinition
- Parameters:
resourceModel
- the model, a non-null node ofModelType.OBJECT
.marshallDefault
-true
if the value should be marshalled even if it matches the default valuewriter
- stream writer to use for writing the attribute- Throws:
XMLStreamException
- if thrown bywriter
-
convertParameterExpressions
protected org.jboss.dmr.ModelNode convertParameterExpressions(org.jboss.dmr.ModelNode parameter)
Iterates through the items in theparameter
map, callingconvertParameterElementExpressions(ModelNode)
for each value.Note that the default implementation of
Examine the given operation parameter value for any expression syntax, converting the relevant node toconvertParameterElementExpressions(ModelNode)
will only convert simpleModelType.STRING
values. If users need to handle complex values with embedded expressions, they should use a subclass that overrides that method.ModelType.EXPRESSION
if such is supported.This implementation checks if
expressions are allowed
and if so, callsAttributeDefinition.convertStringExpression(ModelNode)
to convert aModelType.STRING
to aModelType.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 thecomplex DMR types
. If it is, anIllegalStateException
is thrown, as this implementation cannot properly handle such a combination, and a subclass that overrides this method should be used.- Overrides:
convertParameterExpressions
in classAttributeDefinition
- Parameters:
parameter
- the node to examine. Cannot not benull
- Returns:
- a node matching
parameter
but with expressions converted, or the original parameter if no conversion was performed. Will not returnnull
-
convertParameterElementExpressions
protected org.jboss.dmr.ModelNode convertParameterElementExpressions(org.jboss.dmr.ModelNode parameterElementValue)
Examine the given value item of a parameter map for any expression syntax, converting the relevant node toModelType.EXPRESSION
if such is supported.- Parameters:
parameterElementValue
- the node to examine. Will not benull
- Returns:
- the parameter element value with expressions converted, or the original parameter if no conversion
was performed. Cannot return
null
-
-