code: @SuppressWarnings("unchecked")
     public static <B> Class<? extends Builder<B>> builderFor(B built) throws CacheConfigurationException {
        BuiltBy builtBy = built.getClass().getAnnotation(BuiltBy.class);
        if (builtBy == null) {
           throw new CacheConfigurationException("Missing BuiltBy annotation for configuration bean " + built.getClass().getName());
        }
        return (Class<? extends Builder<B>>) builtBy.value();
     }
docs: Returns the builder that was used to build this class.  This is determined by the instance having a class that
  has a {@link org.infinispan.commons.configuration.BuiltBy} annotation present on it.  If one is not present
  a {@link org.infinispan.commons.CacheConfigurationException} is thrown
  @param built The instance to find the builder for
  @param <B> The type of builder
  @return The builder for this instance
  @throws CacheConfigurationException thrown if the instance class can't provide the builder