import java.io.Closeable;
import java.util.Set;
-
import javax.management.InstanceAlreadyExistsException;
import javax.management.ObjectName;
import javax.management.QueryExp;
-
import org.opendaylight.controller.config.api.jmx.ObjectNameUtil;
-import org.opendaylight.controller.config.manager.impl.jmx.InternalJMXRegistrator.InternalJMXRegistration;
-public class TransactionModuleJMXRegistrator implements Closeable {
- private final InternalJMXRegistrator childJMXRegistrator;
+public class TransactionModuleJMXRegistrator implements Closeable, NestableJMXRegistrator {
+ private final InternalJMXRegistrator currentJMXRegistrator;
private final String transactionName;
public TransactionModuleJMXRegistrator(
- InternalJMXRegistrator internalJMXRegistrator,
- String transactionName) {
- this.childJMXRegistrator = internalJMXRegistrator.createChild();
+ final InternalJMXRegistrator internalJMXRegistrator,
+ final String transactionName) {
+ this.currentJMXRegistrator = internalJMXRegistrator.createChild();
this.transactionName = transactionName;
}
AutoCloseable {
private final InternalJMXRegistration registration;
- TransactionModuleJMXRegistration(InternalJMXRegistration registration) {
+ TransactionModuleJMXRegistration(final InternalJMXRegistration registration) {
this.registration = registration;
}
}
}
- public TransactionModuleJMXRegistration registerMBean(Object object,
- ObjectName on) throws InstanceAlreadyExistsException {
- if (!transactionName.equals(ObjectNameUtil.getTransactionName(on)))
- throw new IllegalArgumentException(
- "Transaction name mismatch between expected "
+ public TransactionModuleJMXRegistration registerMBean(final Object object,
+ final ObjectName on) throws InstanceAlreadyExistsException {
+ if (!transactionName.equals(ObjectNameUtil.getTransactionName(on))) {
+ throw new IllegalArgumentException("Transaction name mismatch between expected "
+ transactionName + " " + "and " + on);
- ObjectNameUtil.checkType(on, ObjectNameUtil.TYPE_MODULE);
+ }
+ ObjectNameUtil.checkTypeOneOf(on, ObjectNameUtil.TYPE_MODULE);
return new TransactionModuleJMXRegistration(
- childJMXRegistrator.registerMBean(object, on));
+ currentJMXRegistrator.registerMBean(object, on));
}
- public Set<ObjectName> queryNames(ObjectName name, QueryExp query) {
- return childJMXRegistrator.queryNames(name, query);
+ public Set<ObjectName> queryNames(final ObjectName name, final QueryExp query) {
+ return currentJMXRegistrator.queryNames(name, query);
}
@Override
public void close() {
- childJMXRegistrator.close();
+ currentJMXRegistrator.close();
+ }
+
+ public String getTransactionName() {
+ return transactionName;
+ }
+
+ @Override
+ public InternalJMXRegistrator createChild() {
+ return currentJMXRegistrator.createChild();
}
}