package com.softwaremill.common.cdi.autofactory.extension;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import javax.enterprise.inject.spi.BeanManager;
import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.Set;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class QualifierAnnotationsFilter {
private final BeanManager beanManager;
public QualifierAnnotationsFilter(BeanManager beanManager) {
this.beanManager = beanManager;
}
public Annotation[] filter(Set<Annotation> annotations) {
Collection<Annotation> filtered = Collections2.filter(annotations, new Predicate<Annotation>() {
@Override
public boolean apply(Annotation input) {
return beanManager.isQualifier(input.annotationType());
}
});
return filtered.toArray(new Annotation[filtered.size()]);
}
}