public String getValue()

in core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/resource/bundle/DefaultResourceBundle.java [93:151]


    public String getValue(Class<? extends BundleKey> key)
    {
        //in case of an inner class
        if("".equals(key.getSimpleName()) && BundleKey.class.isAssignableFrom(key.getSuperclass()))
        {
            key = (Class<? extends BundleKey>) key.getSuperclass();
        }

        Named named = key.getAnnotation(Named.class);

        String resourceKey = null;

        if(named != null)
        {
            resourceKey = named.value();
        }

        if(resourceKey == null)
        {
            resourceKey = StringUtils.replaceUpperCaseCharactersWithUnderscores(
                    key.getSimpleName().substring(0, 1).toLowerCase() + key.getSimpleName().substring(1));
        }

        Class<?> bundleClass = key.getSuperclass();
        if(this.bundleName == null &&
                !Object.class.getName().equals(bundleClass.getName()) &&
                !BundleValue.class.isAssignableFrom(bundleClass))
        {
            useBundle(bundleClass);
        }
        else
        {
            List<Class> bundleClassCandidates = new ArrayList<Class>();

            for(Class interfaceClass : key.getInterfaces())
            {
                if(interfaceClass.isAnnotationPresent(Bundle.class))
                {
                    useBundle(interfaceClass);
                    break;
                }
                if(!BundleKey.class.isAssignableFrom(interfaceClass))
                {
                    bundleClassCandidates.add(interfaceClass);
                }
            }

            if(this.bundleName == null && bundleClassCandidates.size() == 1)
            {
                useBundle(bundleClassCandidates.iterator().next());
            }
            else if(this.bundleName == null && bundleClassCandidates.size() > 1)
            {
                throw new IllegalStateException(key.getName() + " implements multiple custom interfaces and " +
                        "non of them is annotated with @" + Bundle.class);
            }
        }
        return getValue(resourceKey);
    }