/* * 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.services; import java.lang.annotation.Annotation; import java.lang.reflect.Member; import java.lang.reflect.Type; import java.util.Arrays; import java.util.Collections; 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; /** * @author <a href="mailto:lincolnbaxter@gmail.com">Lincoln Baxter, III</a> */ public class ExportedInstanceInjectionPoint implements InjectionPoint { private final InjectionPoint wrapped; private final Set<Annotation> qualifiers = new HashSet<>(); public ExportedInstanceInjectionPoint(final InjectionPoint wrapped, Annotation... qualifiers) { this.wrapped = wrapped; if (qualifiers != null) this.qualifiers.addAll(Arrays.asList(qualifiers)); } @Override public Type getType() { return wrapped.getType(); } @Override public boolean isDelegate() { return wrapped.isDelegate(); } @Override public boolean isTransient() { return wrapped.isTransient(); } @Override public Set<Annotation> getQualifiers() { return Collections.unmodifiableSet(qualifiers); } @Override public Bean<?> getBean() { return wrapped.getBean(); } @Override public Member getMember() { return wrapped.getMember(); } @Override public Annotated getAnnotated() { return wrapped.getAnnotated(); } @Override public String toString() { return wrapped.toString(); } }