All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ocpsoft.rewrite.cdi.CdiBeanNameResolver Maven / Gradle / Ivy

There is a newer version: 10.0.2.Final
Show newest version
package org.ocpsoft.rewrite.cdi;

import java.util.Set;

import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;

import org.ocpsoft.logging.Logger;
import org.ocpsoft.rewrite.el.spi.BeanNameResolver;

/**
 * Implementation of {@link BeanNameResolver} for CDI.
 * 
 * @author Christian Kaltepoth
 */
public class CdiBeanNameResolver implements BeanNameResolver
{

   private final Logger log = Logger.getLogger(CdiBeanNameResolver.class);

   @Inject
   private BeanManager beanManager;

   @Override
   public String getBeanName(Class clazz)
   {

      Set> beans = beanManager.getBeans(clazz);

      // no matching beans, the BeanManager doesn't know something about this class
      if (beans == null || beans.size() == 0) {
         return null;
      }

      // more than one result -> warn the user
      else if (beans.size() > 1) {
         log.warn("The BeanManager returns more than one name for [{}]", clazz.getName());
         return null;
      }

      // exactly one result -> we got a name
      else {
         return beans.iterator().next().getName();
      }

   }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy