Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 // Copyright © 2013 Solita Oy <www.solita.fi>
 // This software is released under the MIT License.
 // The license text is at http://opensource.org/licenses/MIT
 
 package fi.solita.datatree;
 
 import java.util.*;
 
 class Util {
    public static Object[] flatten(Object[] xs) {
        List<Objectresults = new ArrayList<>();
        flatten(resultsxs);
        return results.toArray(new Object[results.size()]);
    }
    private static void flatten(List<ObjectresultsObject item) {
        if (item == null) {
            // ignore; we consider null to be equivalent to an empty list, the same way as Clojure's nil
        } else if (item.getClass().isArray()) {
            Object[] xs = (Object[]) item;
            flatten(results, Arrays.asList(xs));
        } else if (item instanceof Iterable) {
            Iterable<?> xs = (Iterable<?>) item;
            for (Object x : xs) {
                flatten(resultsx);
            }
        } else {
            results.add(toAllowedType(item));
        }
    }
    private static Object toAllowedType(Object item) {
        Class<?> c = item.getClass();
        if (c == String.class || c == Tree.class || c == Meta.class) {
            return item;
        }
        return item.toString();
    }
    public static String filterOneString(Object[] xs) {
        String result = null;
        for (Object x : xs) {
            if (x instanceof String) {
                if (result == null) {
                    result = (Stringx;
                } else {
                    throw new IllegalArgumentException("Cannot have more than one text string; " +
                            "tried to add \"" + x + "\" when already had \"" + result + "\"");
                }
            }
        }
        if (result == null) {
            result = "";
        }
        return result;
    }
    public static List<MetafilterMeta(Object[] xs) {
        List<Metaresult = new ArrayList<>(xs.length);
        for (Object x : xs) {
            if (x instanceof Meta) {
                result.add((Metax);
            }
        }
        return Arrays.asList(result.toArray(new Meta[result.size()]));
    }
    public static List<TreefilterTree(Object[] xs) {
        List<Treeresult = new ArrayList<>(xs.length);
        for (Object x : xs) {
            if (x instanceof Tree) {
                result.add((Treex);
            }
        }
        return Arrays.asList(result.toArray(new Tree[result.size()]));
    }
New to GrepCode? Check out our FAQ X