package org.jboss.as.logging;
import org.jboss.as.controller.OperationStepHandler;
import org.jboss.as.controller.PathElement;
import org.jboss.as.controller.SimpleResourceDefinition;
import org.jboss.as.controller.descriptions.ResourceDescriptionResolver;
import org.jboss.as.controller.registry.OperationEntry.Flag;
import org.jboss.as.controller.transform.description.ResourceTransformationDescriptionBuilder;
/**
* Adds the ability to register transformers in a resource definition.
*
* @author <a href="mailto:jperkins@redhat.com">James R. Perkins</a>
*/
abstract class TransformerResourceDefinition extends SimpleResourceDefinition {
protected TransformerResourceDefinition(final PathElement pathElement, final ResourceDescriptionResolver descriptionResolver) {
super(new Parameters(pathElement, descriptionResolver));
}
protected TransformerResourceDefinition(final PathElement pathElement, final ResourceDescriptionResolver descriptionResolver, final OperationStepHandler addHandler, final OperationStepHandler removeHandler) {
super(new Parameters(pathElement, descriptionResolver).setAddHandler(addHandler).setRemoveHandler(removeHandler));
}
protected TransformerResourceDefinition(final PathElement pathElement, final ResourceDescriptionResolver descriptionResolver, final OperationStepHandler addHandler, final OperationStepHandler removeHandler, final Flag addRestartLevel, final Flag removeRestartLevel) {
super(new Parameters(pathElement, descriptionResolver)
.setAddHandler(addHandler)
.setRemoveHandler(removeHandler)
.setAddRestartLevel(addRestartLevel)
.setRemoveRestartLevel(removeRestartLevel));
}
protected TransformerResourceDefinition(final Parameters parameters) {
super(parameters);
}
/**
* Register the transformers for the resource.
*
* @param modelVersion the model version we're registering
* @param rootResourceBuilder the builder for the root resource
* @param loggingProfileBuilder the builder for the logging profile, {@code null} if the profile was rejected
*/
public abstract void registerTransformers(KnownModelVersion modelVersion,
ResourceTransformationDescriptionBuilder rootResourceBuilder,
ResourceTransformationDescriptionBuilder loggingProfileBuilder);
}