/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.java;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
public class Gosu2JavaUtil {
// Arrays.toList
public static <T> ArrayList<T> list(T... values) {
ArrayList<T> arrayList = new ArrayList<>(values.length);
for (T value : values) {
arrayList.add(value);
}
return arrayList;
}
public static <I, O> List<O> map(Collection<I> in, Mapper<I, O> m) {
ArrayList<O> out = new ArrayList<>(in.size());
for (I value : in) {
out.add(m.map(value));
}
return out;
}
public static <I, O> List<O> map(List<I> in, Mapper<I, O> m) {
ArrayList<O> out = new ArrayList<>(in.size());
for (I value : in) {
out.add(m.map(value));
}
return out;
}
public static <I, O, C> O[] map(I[] in, Class<C> theType, Mapper<I, O> m) {
Object array = Array.newInstance(theType, in.length);
for (int i = 0; i < in.length; i++) {
Array.set(array, i, m.map(in[i]));
}
return (O[]) array;
}
public static void main(String[] args) {
Integer[] map = map(new String[]{"1", "2"}, Integer.class, new Mapper<String, Integer>() {
@Override
public Integer map(String elt) {
return Integer.parseInt(elt);
}
});
}
}