private boolean isAssignableFrom(Store store, String className) throws ClassNotFoundException {

    Class<? extends Store> storeClass = store.getClass();

    ClassLoader classLoader = storeClass.getClassLoader();

    Class<?> clazz = classLoader.loadClass(className);

    return clazz.isAssignableFrom(storeClass);
  }
  protected int getDelegatorStoresCount(Store store) throws Exception {
    try {
      Class<? extends Store> storeClass = store.getClass();

      Method method = storeClass.getMethod("getDelegatorStoresCount");

      return (Integer) method.invoke(store);
    } catch (NoSuchMethodException nsme) {
      throw new IllegalArgumentException(
          ClassUtil.getClassName(store) + " does not implement DelegatorStore", nsme);
    }
  }