Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * JBoss, Home of Professional Open Source
  * Copyright 2012, Red Hat, Inc., and individual contributors
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.jboss.weld.bootstrap;
Provides operations for resolving specialized beans. Since such resolutions are required during bootstrap when javax.enterprise.inject.spi.BeanManagers are not initialized yet, this resolver operates on a set of accessible BeanDeployerEnvironments.

Author(s):
Jozef Hartinger
public class SpecializedBeanResolver {
    private static final String IS_NOT_A_SPECIALIZING_BEAN = " is not a specializing bean";
    public SpecializedBeanResolver(Set<BeanDeployerEnvironmentaccessibleEnvironments) {
        this. = accessibleEnvironments;
    }
    private interface BootstrapTransform<T extends Bean<?>> {
        Iterable<T> transform(T beanBeanDeployerEnvironment environment);
    }
        @Override
        public Iterable<AbstractClassBean<?>> transform(AbstractClassBean<?> beanBeanDeployerEnvironment environment) {
            return environment.getClassBeans(bean.getBeanClass().getSuperclass());
        }
    };
    private static final BootstrapTransform<ProducerMethod<?, ?>> PRODUCER_METHOD_TRANSFORM = new BootstrapTransform<ProducerMethod<?, ?>>() {
        @Override
        public Iterable<ProducerMethod<?, ?>> transform(ProducerMethod<?, ?> beanBeanDeployerEnvironment environment) {
            return environment.getProducerMethod(bean.getBeanClass().getSuperclass(), bean.getEnhancedAnnotated().getSignature());
        }
    };
    private <T extends Bean<?>> Set<T> getSpecializedBeans(T beanBootstrapTransform<T> transform) {
        Set<T> beans = new HashSet<T>();
        for (BeanDeployerEnvironment environment : ) {
            Iterables.addAll(beanstransform.transform(beanenvironment));
        }
        return beans;
    }
    protected Set<AbstractClassBean<?>> resolveSpecializedBeans(final AbstractClassBean<?> bean) {
        if (!bean.isSpecializing()) {
            throw new IllegalArgumentException(bean + );
        }
        return getSpecializedBeans(bean);
    }
    protected Set<ProducerMethod<?, ?>> resolveSpecializedBeans(final ProducerMethod<?, ?> bean) {
        if (!bean.isSpecializing()) {
            throw new IllegalArgumentException(bean + );
        }
        return getSpecializedBeans(bean);
    }
New to GrepCode? Check out our FAQ X