*/
package org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard;
-import java.util.HashMap;
-import java.util.Map;
+import javax.annotation.Nonnull;
+import org.opendaylight.controller.cluster.datastore.Shard;
/**
- * @author Basheeruddin syedbahm@cisco.com
+ * Factory for creating ShardStats mbeans.
*
+ * @author Basheeruddin syedbahm@cisco.com
*/
public class ShardMBeanFactory {
- private static Map<String, ShardStats> shardMBeans =
- new HashMap<String, ShardStats>();
- public static ShardStats getShardStatsMBean(String shardName) {
- if (shardMBeans.containsKey(shardName)) {
- return shardMBeans.get(shardName);
- } else {
- ShardStats shardStatsMBeanImpl = new ShardStats(shardName);
-
- if (shardStatsMBeanImpl.registerMBean()) {
- shardMBeans.put(shardName, shardStatsMBeanImpl);
- }
- return shardStatsMBeanImpl;
- }
+ public static ShardStats getShardStatsMBean(final String shardName, final String mxBeanType,
+ @Nonnull final Shard shard) {
+ String finalMXBeanType = mxBeanType != null ? mxBeanType : "DistDataStore";
+ ShardStats shardStatsMBeanImpl = new ShardStats(shardName, finalMXBeanType, shard);
+ shardStatsMBeanImpl.registerMBean();
+ return shardStatsMBeanImpl;
}
-
}