All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.as.clustering.controller.Operation Maven / Gradle / Ivy

Go to download

The code in this module is not explicitly related to clustering, but rather contains resuable code used by clustering modules and any modules that integrate with clustering.

There is a newer version: 34.0.0.Final
Show newest version
/*
 * Copyright The WildFly Authors
 * SPDX-License-Identifier: Apache-2.0
 */
package org.jboss.as.clustering.controller;

import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.ExpressionResolver;
import org.jboss.as.controller.OperationDefinition;
import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.registry.OperationEntry;
import org.jboss.dmr.ModelNode;

/**
 * Interface to be implemented by operation enumerations.
 *
 * @param  operation context
 * @author Paul Ferraro
 * @author Radoslav Husar
 */
public interface Operation extends Definable {

    final AttributeDefinition[] NO_ATTRIBUTES = new AttributeDefinition[0];

    default String getName() {
        return this.getDefinition().getName();
    }

    default boolean isReadOnly() {
        return this.getDefinition().getFlags().contains(OperationEntry.Flag.READ_ONLY);
    }

    default AttributeDefinition[] getParameters() {
        return NO_ATTRIBUTES;
    }

    /**
     * Execute against the specified context.
     *
     * @param expressionResolver an expression resolver
     * @param operation original operation model to resolve parameters from
     * @param context an execution context
     * @return the execution result (possibly null).
     */
    ModelNode execute(ExpressionResolver expressionResolver, ModelNode operation, C context) throws OperationFailedException;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy