protected Iterable<JavaFileObject> wrap(Iterable<JavaFileObject> fileObjects){
  List<JavaFileObject> mapped=new ArrayList<JavaFileObject>();
  for (  JavaFileObject fileObject : fileObjects)   mapped.add(wrap(fileObject));
  return Collections.unmodifiableList(mapped);
}

protected Iterable < JavaFileObject > wrap ( Iterable < JavaFileObject > fileObjects ) { List < JavaFileObject > mapped = new ArrayList < JavaFileObject > ( ) ; for ( JavaFileObject fileObject : fileObjects ) mapped . add ( wrap ( fileObject ) ) ; return Collections . unmodifiableList ( mapped ) ; }
this implementation maps the given list of file objects by calling wrap on each . subclasses may override this behavior .
