public static <I, O> List<O> map(Iterable<I> items, Func<? super I, O> func) { List<O> result = new ArrayList<O>(); for (I item : items) { O output = func.eval(item); result.add(output); } return result; }
@Override public final <E> E read(Func<InputStream, E> readCallback) { final InputStream in = read(); try { final E result = readCallback.eval(in); return result; } catch (Exception e) { throw new ResourceException(this, "Error occurred in read callback", e); } finally { FileHelper.safeClose(in); } }