class InternalMetricsFactory {

    private static final ConcurrentMap<String, MetricRegistry> getRegistryCache;
    private static final MetricRegistry defaultMetricsRegistry;
    static {
        getRegistryCache = new ConcurrentHashMap<String, MetricRegistry>();
        getRegistryCache.put("default", defaultMetricsRegistry = new MetricRegistry());
    }

    /**
     * 指定名字获取所属的实例。
     * 
     * @param name {@link MetricRegistry} 实例的名字。
     * @return {@link MetricRegistry} 实例。
     */
    public static MetricRegistry getRegistryInstance(String name) {
        MetricRegistry instance = getRegistryCache.get(name);
        if (instance == null) {
            getRegistryCache.putIfAbsent(name, new MetricRegistry());
            instance = getRegistryCache.get(name);
        }
        return instance;
    }

    /**
     * 指定几个名字的关键词，依据 {@link MetricRegistry} 的名字生成规则获取所属的实例。
     * 
     * @param name 关键字。
     * @param names 剩余的关键字。
     * @return {@link MetricRegistry} 实例。
     */
    public static MetricRegistry getRegistryInstance(String name, String... names) {<FILL_FUNCTION_BODY>}

    /**
     * 指定类类型和几个名字的关键词，依据 {@link MetricRegistry} 的名字生成规则获取所属的实例。
     * 
     * @param clazz 类的类型。
     * @param names 关键字。
     * @return {@link MetricRegistry} 实例。
     */
    public static MetricRegistry getRegistryInstance(Class<?> clazz, String... names) {
        final String key = MetricRegistry.name(clazz, names);
        MetricRegistry instance = getRegistryCache.get(key);
        if (instance == null) {
            getRegistryCache.putIfAbsent(key, new MetricRegistry());
            instance = getRegistryCache.get(key);
        }
        return instance;
    }

    /**
     * 返回默认的 {@link MetricRegistry}。
     */
    public static MetricRegistry getDefaultMetricsRegistry() {
        return defaultMetricsRegistry;
    }

    /**
     * 返回当前注册的全部 {@link MetricRegistry}s。
     */
    public static Map<String, MetricRegistry> allRegistries() {
        return Collections.unmodifiableMap(getRegistryCache);
    }

}

        final String key = MetricRegistry.name(name, names);
        MetricRegistry instance = getRegistryCache.get(key);
        if (instance == null) {
            getRegistryCache.putIfAbsent(key, new MetricRegistry());
            instance = getRegistryCache.get(key);
        }
        return instance;
    
<no_super_class>