String writeQueueItem()

in src/main/java/org/apache/sling/distribution/queue/impl/simple/QueueItemMapper.java [83:119]


    String writeQueueItem(DistributionQueueItem item) {
        String packageId = item.getPackageId();
        StringWriter w = new StringWriter();
        JsonGenerator jsonWriter = Json.createGenerator(w);
        jsonWriter.writeStartObject();
        for (Map.Entry<String, Object> entry : item.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();
            if (value instanceof String[]) {
                jsonWriter.writeStartArray(entry.getKey());
                for (String s : ((String[]) value)) {
                    jsonWriter.write(s);
                }
                jsonWriter.writeEnd();
            } else if (value == null) {
                jsonWriter.write(key, JsonValue.NULL);
            } else if (value instanceof String) {
                jsonWriter.write(key, (String) value);
            } else if (value instanceof Boolean) {
                jsonWriter.write(key, (Boolean) value);
            } else if (value instanceof Integer) {
                jsonWriter.write(key, (Integer) value);
            } else if (value instanceof Float) {
                jsonWriter.write(key, (Float) value);
            }else if (value instanceof Double) {
                jsonWriter.write(key, (Double) value);
            } else if (value instanceof Long) {
                jsonWriter.write(key, (Long) value);
            } else {
                jsonWriter.write(key, String.valueOf(value));
            }
        }
        jsonWriter.writeEnd();
        jsonWriter.close();

        return packageId + " " + w.toString();
    }