T
- the type of an object that, if stored by the
applyUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, HandbackHolder)
implementation, will be passed to
revertUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, Object)
.public abstract class AbstractWriteAttributeHandler<T> extends Object implements OperationStepHandler
read-write attribute
.Modifier and Type | Class and Description |
---|---|
static class |
AbstractWriteAttributeHandler.HandbackHolder<T>
Holder subclasses can use to pass an object between
applyUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, HandbackHolder)
and revertUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, Object) . |
Modifier | Constructor and Description |
---|---|
protected |
AbstractWriteAttributeHandler(AttributeDefinition... definitions) |
protected |
AbstractWriteAttributeHandler(Collection<AttributeDefinition> definitions) |
Modifier and Type | Method and Description |
---|---|
protected abstract boolean |
applyUpdateToRuntime(OperationContext context,
org.jboss.dmr.ModelNode operation,
String attributeName,
org.jboss.dmr.ModelNode resolvedValue,
org.jboss.dmr.ModelNode currentValue,
AbstractWriteAttributeHandler.HandbackHolder<T> handbackHolder)
Hook to allow subclasses to make runtime changes to effect the attribute value change.
|
void |
execute(OperationContext context,
org.jboss.dmr.ModelNode operation)
Execute this step.
|
protected void |
finishModelStage(OperationContext context,
org.jboss.dmr.ModelNode operation,
String attributeName,
org.jboss.dmr.ModelNode newValue,
org.jboss.dmr.ModelNode oldValue,
Resource model)
Hook to allow subclasses to do any final
OperationContext.Stage.MODEL processing following the
application of the new attribute value. |
protected AttributeDefinition |
getAttributeDefinition(String attributeName)
Gets the
AttributeDefinition provided to the constructor (if present) whose
name matches the given attributeName . |
protected void |
recordCapabilitiesAndRequirements(OperationContext context,
AttributeDefinition attributeDefinition,
org.jboss.dmr.ModelNode newValue,
org.jboss.dmr.ModelNode oldValue)
Record any new requirements for other
capabilities
that now exist as a result of this operation, or remove any existing requirements that no longer exist. |
protected boolean |
requiresRuntime(OperationContext context)
Gets whether a
OperationContext.Stage.RUNTIME handler should be added. |
protected abstract void |
revertUpdateToRuntime(OperationContext context,
org.jboss.dmr.ModelNode operation,
String attributeName,
org.jboss.dmr.ModelNode valueToRestore,
org.jboss.dmr.ModelNode valueToRevert,
T handback)
Hook to allow subclasses to revert runtime changes made in
applyUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, HandbackHolder) . |
protected void |
validateUpdatedModel(OperationContext context,
Resource model)
Hook to allow subclasses to validate the model following the application of the new attribute value.
|
protected AbstractWriteAttributeHandler(AttributeDefinition... definitions)
protected AbstractWriteAttributeHandler(Collection<AttributeDefinition> definitions)
public void execute(OperationContext context, org.jboss.dmr.ModelNode operation) throws OperationFailedException
OperationStepHandler
context.getFailureDescription()
must be called, or an OperationFailedException
must be thrown.
If the operation succeeded and the operation provides a return value, context.getResult()
should
be called and the result populated with the outcome. If the handler wishes to take further action once the result
of the overall operation execution is known, one of the
context.completeStep variants
should be called to register a callback. The callback will not be invoked if this method throws an exception.
When this method is invoked the thread context classloader
will
be set to be the defining class loader of the class that implements this interface.
execute
in interface OperationStepHandler
context
- the operation contextoperation
- the operation being executedOperationFailedException
- if the operation failed before calling context.completeStep()
protected abstract boolean applyUpdateToRuntime(OperationContext context, org.jboss.dmr.ModelNode operation, String attributeName, org.jboss.dmr.ModelNode resolvedValue, org.jboss.dmr.ModelNode currentValue, AbstractWriteAttributeHandler.HandbackHolder<T> handbackHolder) throws OperationFailedException
context
- the context of the operationoperation
- the operationattributeName
- the name of the attribute being modifiedresolvedValue
- the new value for the attribute, after ModelNode.resolve()
has been called on itcurrentValue
- the existing value for the attributehandbackHolder
- holder for an arbitrary object to pass to
revertUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, Object)
if
the operation needs to be rolled backtrue
if the server requires reload to effect the attribute
value change; false
if notOperationFailedException
protected abstract void revertUpdateToRuntime(OperationContext context, org.jboss.dmr.ModelNode operation, String attributeName, org.jboss.dmr.ModelNode valueToRestore, org.jboss.dmr.ModelNode valueToRevert, T handback) throws OperationFailedException
applyUpdateToRuntime(OperationContext, ModelNode, String, ModelNode, ModelNode, HandbackHolder)
.context
- the context of the operationoperation
- the operationattributeName
- the name of the attribute being modifiedvalueToRestore
- the previous value for the attribute, before this operation was executedvalueToRevert
- the new value for the attribute that should be revertedhandback
- an object, if any, passed in to the handbackHolder
by the applyUpdateToRuntime
implementationOperationFailedException
protected void recordCapabilitiesAndRequirements(OperationContext context, AttributeDefinition attributeDefinition, org.jboss.dmr.ModelNode newValue, org.jboss.dmr.ModelNode oldValue)
capabilities
that now exist as a result of this operation, or remove any existing requirements that no longer exist.context
- the context. Will not be null
attributeDefinition
- the definition of the attribute being modified. Will not be null
newValue
- the new value of the attributeoldValue
- the previous value of the attributeprotected void finishModelStage(OperationContext context, org.jboss.dmr.ModelNode operation, String attributeName, org.jboss.dmr.ModelNode newValue, org.jboss.dmr.ModelNode oldValue, Resource model) throws OperationFailedException
OperationContext.Stage.MODEL
processing following the
application of the new attribute value. This default implementation calls
validateUpdatedModel(OperationContext, Resource)
.
NOTE: Implementations must not call
OperationContext.completeStep(OperationContext.ResultHandler)
or any of its variants. The method that
calls this one handles step completion.
context
- the operation contextoperation
- the operationattributeName
- the name of the attribute being modifiednewValue
- the new value for the attributeoldValue
- the previous value for the attributemodel
- the updated model resourceOperationFailedException
protected void validateUpdatedModel(OperationContext context, Resource model) throws OperationFailedException
context
- the operation contextmodel
- the updated model resourceOperationFailedException
protected boolean requiresRuntime(OperationContext context)
OperationContext.Stage.RUNTIME
handler should be added. This default implementation
returns true if the process is a normal server
and the process
is not booting
. The rationale for the latter check is if the process is
booting, the resource being modified will have been added as a previous step in the same context, and
the Stage.RUNTIME handling for that add will see a model the reflects the changes made by this handler and
will apply them to the runtime.context
- operation contexttrue
if a runtime stage handler should be added; false
otherwise.protected AttributeDefinition getAttributeDefinition(String attributeName)
AttributeDefinition
provided to the constructor (if present) whose
name
matches the given attributeName
.attributeName
- the attribute namenull
if no matching definition is foundCopyright © 2023 JBoss by Red Hat. All rights reserved.