Package br.com.caelum.vraptor.vaas

Source Code of br.com.caelum.vraptor.vaas.ConfigurationFinder

package br.com.caelum.vraptor.vaas;

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Instance;
import javax.enterprise.inject.spi.CDI;
import javax.enterprise.util.AnnotationLiteral;

@ApplicationScoped
public class ConfigurationFinder {

  @SuppressWarnings({ "rawtypes", "unchecked"})
  public <T> Instance<T> findOne(AnnotationLiteral<?> confAnnotation) {
    Instance possibleConfigurations = CDI.current().select(confAnnotation);
    isAmbiguos(possibleConfigurations);
    return possibleConfigurations;
  }

  private void isAmbiguos(@SuppressWarnings("rawtypes") Instance possibleConfigurations) {
    if (possibleConfigurations.isAmbiguous()) {
      throw new RuntimeException(
          "You should have just one of "+possibleConfigurations+" class");
    }
  }

  @SuppressWarnings({ "rawtypes", "unchecked" })
  public <T> Instance<T> findOne(Class<? extends T> implementationClass, AnnotationLiteral<?>... qualifiers) {
    Instance possibleConfigurations = CDI.current().select(implementationClass, qualifiers);
    return possibleConfigurations;
  }
}
TOP

Related Classes of br.com.caelum.vraptor.vaas.ConfigurationFinder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.