sprockets/src/main/java/net/sf/sprockets/content/Values.java
public static ContentValues putAll(ContentValues target, Object... values) {
        int length = values.length;
        checkArgument(length % 2 == 0, "values length must be a multiple of two");
        for (int i = 0; i < length; i += 2) {
            String key = (String) values[i];
            Object val = values[i + 1];
            if (val == null) {
                target.putNull(key);
            } else if (val instanceof String) {
                target.put(key, (String) val);
            } else if (val instanceof Long) {
                target.put(key, (Long) val);
            } else if (val instanceof Integer) {
                target.put(key, (Integer) val);
            } else if (val instanceof Boolean) {
                target.put(key, (Boolean) val);
            } else if (val instanceof Double) {
                target.put(key, (Double) val);
            } else if (val instanceof Float) {
                target.put(key, (Float) val);
            } else if (val instanceof byte[]) {
                target.put(key, (byte[]) val);
            } else if (val instanceof Byte) {
                target.put(key, (Byte) val);
            } else if (val instanceof Short) {
                target.put(key, (Short) val);
            } else {
                throw new IllegalArgumentException(
                        "ContentValues does not support values of type " + val.getClass().getName()
                                + " (provided for key '" + key + "')");
            }
        }
public static ContentValues putAll(ContentValues target, Object... values) {
        int length = values.length;
        checkArgument(length % 2 == 0, "values length must be a multiple of two");
        for (int i = 0; i < length; i += 2) {
            String key = (String) values[i];
            Object val = values[i + 1];
            if (val == null) {
                target.putNull(key);
            } else if (val instanceof String) {
                target.put(key, (String) val);
            } else if (val instanceof Long) {
                target.put(key, (Long) val);
            } else if (val instanceof Integer) {
                target.put(key, (Integer) val);
            } else if (val instanceof Boolean) {
                target.put(key, (Boolean) val);
            } else if (val instanceof Double) {
                target.put(key, (Double) val);
            } else if (val instanceof Float) {
                target.put(key, (Float) val);
            } else if (val instanceof byte[]) {
                target.put(key, (byte[]) val);
            } else if (val instanceof Byte) {
                target.put(key, (Byte) val);
            } else if (val instanceof Short) {
                target.put(key, (Short) val);
            } else {
                throw new IllegalArgumentException(
                        "ContentValues does not support values of type " + val.getClass().getName()
                                + " (provided for key '" + key + "')");
            }
        }
Put all of the values into the existing set.

@param values length must be a multiple of two: {@code String key, Object value, ...}
@throws IllegalArgumentException if a value type is not supported