@SuppressWarnings("unchecked") @Override public List<ScoredAnnotation<PERSON>> annotate(FACE object, Collection<PERSON> restrict) { if (annotator instanceof RestrictedAnnotator) { return ((RestrictedAnnotator<FACE, PERSON>) annotator).annotate(object, restrict); } final List<ScoredAnnotation<PERSON>> pot = annotator.annotate(object); if (pot == null || pot.size() == 0) return null; final List<ScoredAnnotation<PERSON>> toKeep = new ArrayList<ScoredAnnotation<PERSON>>(); for (final ScoredAnnotation<PERSON> p : pot) { if (restrict.contains(p.annotation)) toKeep.add(p); } return toKeep; }