package org.oddjob.jmx.handlers;
import javax.management.MBeanAttributeInfo;
import javax.management.MBeanNotificationInfo;
import javax.management.MBeanOperationInfo;
import javax.management.MBeanParameterInfo;
import org.oddjob.Resetable;
import org.oddjob.jmx.client.ClientHandlerResolver;
import org.oddjob.jmx.client.HandlerVersion;
import org.oddjob.jmx.client.VanillaHandlerResolver;
import org.oddjob.jmx.server.ServerAllOperationsHandler;
import org.oddjob.jmx.server.ServerInterfaceHandler;
import org.oddjob.jmx.server.ServerInterfaceHandlerFactory;
import org.oddjob.jmx.server.ServerSideToolkit;
/**
*/
public class ResetableHandlerFactory
implements ServerInterfaceHandlerFactory<Resetable, Resetable> {
public static final HandlerVersion VERSION = new HandlerVersion(1, 0);
public Class<Resetable> interfaceClass() {
return Resetable.class;
}
public MBeanAttributeInfo[] getMBeanAttributeInfo() {
return new MBeanAttributeInfo[0];
}
public MBeanOperationInfo[] getMBeanOperationInfo() {
return new MBeanOperationInfo[] {
new MBeanOperationInfo("softReset",
"Soft Reset the job.", new MBeanParameterInfo[0], Void.TYPE
.getName(), MBeanOperationInfo.ACTION),
new MBeanOperationInfo("hardReset",
"Hard Reset the job.", new MBeanParameterInfo[0], Void.TYPE
.getName(), MBeanOperationInfo.ACTION)
};
}
public MBeanNotificationInfo[] getMBeanNotificationInfo() {
return new MBeanNotificationInfo[0];
}
public ServerInterfaceHandler createServerHandler(Resetable target, ServerSideToolkit ojmb) {
return new ServerAllOperationsHandler<Resetable>(
Resetable.class, target);
}
public ClientHandlerResolver<Resetable> clientHandlerFactory() {
return new VanillaHandlerResolver<Resetable>(
Resetable.class.getName());
}
}