+ /**
+ * Need to do without Google stuff
+ * @author Instrumental
+ *
+ */
+ public static class ImmutableMap {
+ public static <T,U> Map<T,U> of(Object ... tag_value) {
+ Map<T,U> rv = new HashMap<>();
+ for(int i=0;i<tag_value.length-1;i+=2) {
+ rv.put((T)tag_value[i],(U)tag_value[i+1]);
+ }
+ return rv;
+ }
+
+ }
+
+ /**
+ * Need to do without Google stuff
+ * @author Instrumental
+ *
+ */
+ public static class Iterables {
+ public static <T> T getOnlyElement(List<T> lt) {
+ if(lt.isEmpty()) {
+ return null;
+ } else {
+ return lt.get(0);
+ }
+ }
+ }
+
+ /**
+ * Need to do without Google stuff
+ * @author Instrumental
+ *
+ */
+ public static class Lists {
+ @SuppressWarnings("unchecked")
+ public static <T> List<T> newArrayList(Collection<T> ... init ) {
+ List<T> rv = new ArrayList<>();
+ for(Collection<T> o : init) {
+ for(T t : o) {
+ rv.add(t);
+ }
+ }
+ return rv;
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T> List<T> newArrayList(Object ... init ) {
+ List<T> rv = new ArrayList<>();
+ for(Object o : init) {
+ rv.add((T)o);
+ }
+ return rv;
+ }
+
+ }
+
+ /**
+ * Need to do without Google stuff
+ * @author Instrumental
+ *
+ */
+ public static class Sets {
+ @SuppressWarnings("unchecked")
+ public static <T> Set<T> newHashSet(Object ... init ) {
+ Set<T> rv = new HashSet<>();
+ for(Object o : init) {
+ rv.add((T)o);
+ }
+ return rv;
+ }
+ }