public static String join(Iterable<?> items, String glue) {
        StringBuilder sb = new StringBuilder();
        boolean first = true;
        for (Object item : items) {
            if (!first) {
                sb.append(glue);
            }
            first = false;
            sb.append(item);
        }
        return sb.toString();
    }