/** * Convert a {@link ISelectableValueHolderCollection} into JSON.<br> * The structure is the following one : { "value" : {"value" : "the value", "name" : "the name", * "description" : "the description","url" : "the url"} } * * @param valueHoldersList a collection * @return a JSON object */ public static <T> ObjectNode marshallAsJson(List<ISelectableValueHolder<T>> valueHoldersList) { ObjectNode valueHoldersAsJson = Json.newObject(); if (valueHoldersList != null) { int order = 0; for (ISelectableValueHolder<T> valueHolder : valueHoldersList) { valueHoldersAsJson.set( String.valueOf(valueHolder.getValue()), marshallAsJson(valueHolder, order)); order++; } } return valueHoldersAsJson; }
/** * Convert a {@link ISelectableValueHolder} into JSON.<br> * The structure is the following one : {"value" : "the value", "name" : "the name", "description" * : "the description","url" : "the url"} * * @param valueHolder a value holder * @return a JSON object */ public static <T> ObjectNode marshallAsJson(ISelectableValueHolder<T> valueHolder, int order) { ObjectNode valueHolderAsJson = Json.newObject(); valueHolderAsJson.put("name", valueHolder.getName()); valueHolderAsJson.put("order", order); valueHolderAsJson.put("value", String.valueOf(valueHolder.getValue())); if (valueHolder.getDescription() != null) { valueHolderAsJson.put("description", valueHolder.getDescription()); } if (valueHolder.getUrl() != null) { valueHolderAsJson.put("url", valueHolder.getUrl()); } return valueHolderAsJson; }