protected Map<TargetClass,List<Attribute.TypeCompound>> sift(final Iterable<Attribute.TypeCompound> typeCompounds){
  final Map<TargetClass,List<Attribute.TypeCompound>> targetClassToCompound=new EnumMap<>(TargetClass.class);
  for (  TargetClass targetClass : TargetClass.values()) {
    targetClassToCompound.put(targetClass,new ArrayList<TypeCompound>());
  }
  for (  final Attribute.TypeCompound typeCompound : typeCompounds) {
    final TargetType typeCompoundTarget=typeCompound.position.type;
    final List<Attribute.TypeCompound> destList;
    if (ElementAnnotationUtil.contains(typeCompoundTarget,annotatedTargets())) {
      destList=targetClassToCompound.get(TargetClass.TARGETED);
    }
 else     if (ElementAnnotationUtil.contains(typeCompoundTarget,validTargets())) {
      destList=targetClassToCompound.get(TargetClass.VALID);
    }
 else {
      destList=targetClassToCompound.get(TargetClass.INVALID);
    }
    destList.add(typeCompound);
  }
  return targetClassToCompound;
}

protected Map < TargetClass , List < Attribute . TypeCompound > > sift ( final Iterable < Attribute . TypeCompound > typeCompounds ) { final Map < TargetClass , List < Attribute . TypeCompound > > targetClassToCompound = new EnumMap < > ( TargetClass . class ) ; for ( TargetClass targetClass : TargetClass . values ( ) ) { targetClassToCompound . put ( targetClass , new ArrayList < TypeCompound > ( ) ) ; } for ( final Attribute . TypeCompound typeCompound : typeCompounds ) { final TargetType typeCompoundTarget = typeCompound . position . type ; final List < Attribute . TypeCompound > destList ; if ( ElementAnnotationUtil . contains ( typeCompoundTarget , annotatedTargets ( ) ) ) { destList = targetClassToCompound . get ( TargetClass . TARGETED ) ; } else if ( ElementAnnotationUtil . contains ( typeCompoundTarget , validTargets ( ) ) ) { destList = targetClassToCompound . get ( TargetClass . VALID ) ; } else { destList = targetClassToCompound . get ( TargetClass . INVALID ) ; } destList . add ( typeCompound ) ; } return targetClassToCompound ; }
separate the input annotations into a map of targetclass ( targeted , valid , invalid ) to the annotations that fall into each of those categories .
