package org.wildfly.extension.picketlink.federation.model.handlers; import org.jboss.as.controller.AbstractRemoveStepHandler; import org.jboss.as.controller.OperationContext; import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.PathAddress; import org.jboss.dmr.ModelNode; import org.wildfly.extension.picketlink.federation.service.EntityProviderService; import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.ADDRESS; /** * @author Pedro Igor */ public class HandlerParameterRemoveHandler extends AbstractRemoveStepHandler { static final HandlerParameterRemoveHandler INSTANCE = new HandlerParameterRemoveHandler(); @Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { PathAddress pathAddress = PathAddress.pathAddress(operation.get(ADDRESS)); String providerAlias = pathAddress.subAddress(0, pathAddress.size() - 2).getLastElement().getValue(); String handlerType = pathAddress.subAddress(0, pathAddress.size() - 1).getLastElement().getValue(); EntityProviderService providerService = EntityProviderService.getService(context, providerAlias); String handlerParameterName = pathAddress.getLastElement().getValue(); providerService.removeHandlerParameter(handlerType, handlerParameterName); } @Override protected void recoverServices(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { HandlerParameterAddHandler.INSTANCE.performRuntime(context, operation, model); } }