package org.jboss.seam.solder.bean; import static java.util.Collections.unmodifiableSet; import java.util.HashSet; import java.util.Set; import javax.enterprise.inject.spi.InjectionPoint; import javax.enterprise.inject.spi.Producer; /** * A base class for implementing {@link Producer}. The attributes are immutable, * and collections are defensively copied on instantiation. * * @author Pete Muir * */ public abstract class AbstractImmutableProducer<T> implements Producer<T> { private final Set<InjectionPoint> injectionPoints; public AbstractImmutableProducer(Set<InjectionPoint> injectionPoints) { this.injectionPoints = new HashSet<InjectionPoint>(injectionPoints); } public Set<InjectionPoint> getInjectionPoints() { return unmodifiableSet(injectionPoints); } }