/* * Copyright 2014 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.services; import java.lang.annotation.Annotation; import java.lang.reflect.Member; import java.lang.reflect.Type; import java.util.HashSet; import java.util.Set; import javax.enterprise.inject.spi.Annotated; import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.InjectionPoint; import org.jboss.forge.furnace.container.cdi.impl.Service; /** * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> */ public class LocalServiceInjectionPoint implements InjectionPoint { private final InjectionPoint wrapped; private final Set<Annotation> qualifiers; private final Class<?> serviceType; public LocalServiceInjectionPoint(InjectionPoint wrapped, Class<?> serviceType) { this.wrapped = wrapped; this.qualifiers = new HashSet<>(wrapped.getQualifiers()); for (Annotation a : qualifiers) { if (a instanceof Service) { qualifiers.remove(a); break; } } this.serviceType = serviceType; } @Override public Type getType() { return serviceType; } @Override public Set<Annotation> getQualifiers() { return qualifiers; } @Override public Bean<?> getBean() { return wrapped.getBean(); } @Override public Member getMember() { return wrapped.getMember(); } @Override public Annotated getAnnotated() { return wrapped.getAnnotated(); } @Override public boolean isDelegate() { return wrapped.isDelegate(); } @Override public boolean isTransient() { return wrapped.isTransient(); } }