/* * Copyright 2012 Red Hat, Inc. and/or its affiliates. * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.jboss.forge.furnace.container.cdi.util; import java.lang.annotation.Annotation; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.BeanManager; /** * Warning: ***DO NOT USE THIS CLASS*** * * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> * */ public abstract class BeanManagerUtils { @SuppressWarnings("unchecked") public static <T> T getContextualInstance(final BeanManager manager, final Class<T> type) { T result = null; Bean<T> bean = (Bean<T>) manager.resolve(manager.getBeans(type)); if (bean != null) { CreationalContext<T> context = manager.createCreationalContext(bean); if (context != null) { result = (T) manager.getReference(bean, type, context); } } return result; } @SuppressWarnings("unchecked") public static <T> T getContextualInstance(final BeanManager manager, final Class<T> type, Annotation... qualifiers) { T result = null; Bean<T> bean = (Bean<T>) manager.resolve(manager.getBeans(type, qualifiers)); if (bean != null) { CreationalContext<T> context = manager.createCreationalContext(bean); if (context != null) { result = (T) manager.getReference(bean, type, context); } } return result; } }