/** * Returns an empty {@code JsonArray} object. * * @return the empty array. */ static JsonArray empty() { return JsonFactory.newArray(); }
/** * Creates a new {@code JsonArray} from the given string. * * @param jsonArrayString the string that represents the JSON array. * @return the JSON array that has been created from the string. * @throws NullPointerException if {@code jsonArrayString} is {@code null}. * @throws IllegalArgumentException if {@code jsonArrayString} is empty. * @throws JsonParseException if {@code jsonArrayString} does not represent a valid JSON array. */ static JsonArray of(final String jsonArrayString) { return JsonFactory.newArray(jsonArrayString); }
/** * Returns a new empty {@code ImmutableSearchResult} instance. * * @return instance. */ public static SearchResult empty() { return of(JsonFactory.newArray(), NO_NEXT_PAGE); }
/** * Returns a new empty {@code ImmutableSearchResult} instance. * * @return instance. */ public static SearchResult empty() { return of(JsonFactory.newArray(), NO_NEXT_PAGE); }
/** * Returns a new immutable {@link FeatureDefinition} which is initialised with the values of the given JSON string. * This string is required to be a valid {@link JsonArray}. * * @param jsonString provides the initial values of the result; * @return the new immutable initialised {@code FeatureDefinition}. * @throws DittoJsonException if {@code jsonString} cannot be parsed to {@code FeatureDefinition}. * @throws FeatureDefinitionEmptyException if the JSON array is empty. * @throws FeatureDefinitionIdentifierInvalidException if any Identifier of the JSON array is invalid. */ public static FeatureDefinition newFeatureDefinition(final String jsonString) { final JsonArray jsonArray = DittoJsonException.wrapJsonRuntimeException(() -> JsonFactory.newArray(jsonString)); return newFeatureDefinition(jsonArray); }
/** * Returns a new immutable {@link FeatureDefinition} which is initialised with the values of the given JSON string. * This string is required to be a valid {@link JsonArray}. * * @param jsonString provides the initial values of the result; * @return the new immutable initialised {@code FeatureDefinition}. * @throws DittoJsonException if {@code jsonString} cannot be parsed to {@code FeatureDefinition}. * @throws FeatureDefinitionEmptyException if the JSON array is empty. * @throws FeatureDefinitionIdentifierInvalidException if any Identifier of the JSON array is invalid. */ public static FeatureDefinition newFeatureDefinition(final String jsonString) { final JsonArray jsonArray = DittoJsonException.wrapJsonRuntimeException(() -> JsonFactory.newArray(jsonString)); return newFeatureDefinition(jsonArray); }
private static void validateJsonArrayValue(final String key, @Nullable final CharSequence value) { final String headerValue = String.valueOf(value); try { final JsonArray jsonArray = JsonFactory.newArray(headerValue); final List<JsonValue> nonStringArrayValues = jsonArray.stream() .filter(jsonValue -> !jsonValue.isString()) .collect(Collectors.toList()); if (!nonStringArrayValues.isEmpty()) { final String msgTemplate = "JSON array for ''{0}'' contained non-String values."; throw DittoHeaderInvalidException.newCustomMessageBuilder(MessageFormat.format(msgTemplate, key)) .build(); } } catch (final JsonParseException e) { throw DittoHeaderInvalidException.newInvalidTypeBuilder(key, headerValue, "JSON array").build(); } }
private JsonArray getChildrenAsArray() { // performance shortcut if (children.isEmpty()) { return JsonFactory.newArray(); } final JsonArrayBuilder arrayBuilder = JsonArray.newBuilder(); children.forEach(child -> arrayBuilder.add(child.toJson())); return arrayBuilder.build(); }
private JsonArray getChildrenAsArray() { // performance shortcut if (children.isEmpty()) { return JsonFactory.newArray(); } final JsonArrayBuilder arrayBuilder = JsonArray.newBuilder(); children.forEach(child -> arrayBuilder.add(child.toJson())); return arrayBuilder.build(); }
private JsonArray getDetailsAsArray() { // performance shortcut if (details.isEmpty()) { return JsonFactory.newArray(); } final JsonArrayBuilder arrayBuilder = JsonArray.newBuilder(); details.forEach(detailMessage -> arrayBuilder.add(detailMessage.toJson())); return arrayBuilder.build(); }
private JsonArray getDetailsAsArray() { // performance shortcut if (details.isEmpty()) { return JsonFactory.newArray(); } final JsonArrayBuilder arrayBuilder = JsonArray.newBuilder(); details.forEach(detailMessage -> arrayBuilder.add(detailMessage.toJson())); return arrayBuilder.build(); }
private static void validateJsonArrayValue(final String key, @Nullable final CharSequence value) { final String headerValue = String.valueOf(value); try { final JsonArray jsonArray = JsonFactory.newArray(headerValue); final List<JsonValue> nonStringArrayValues = jsonArray.stream() .filter(jsonValue -> !jsonValue.isString()) .collect(Collectors.toList()); if (!nonStringArrayValues.isEmpty()) { final String msgTemplate = "JSON array for ''{0}'' contained non-String values."; throw DittoHeaderInvalidException.newCustomMessageBuilder(MessageFormat.format(msgTemplate, key)) .build(); } } catch (final JsonParseException e) { throw DittoHeaderInvalidException.newInvalidTypeBuilder(key, headerValue, "JSON array").build(); } }
@Override public Set<String> fromSnapshotStore(final SnapshotOffer snapshotOffer) { final Object snapshotEntityFromDb = snapshotOffer.snapshot(); final JsonArray jsonValues; if (snapshotEntityFromDb instanceof BsonValue) { jsonValues = JsonFactory.newArray(DittoBsonJson.getInstance().serialize((BsonValue) snapshotEntityFromDb) .toString()); } else { throw new IllegalArgumentException( "Unable to fromSnapshotStore a non-'BsonValue' object! Was: " + snapshotEntityFromDb.getClass()); } return jsonValues.stream() .map(JsonValue::asString) .collect(Collectors.toSet()); }
/** * Creates a new {@link StatusInfo} from a JSON object. * * @param jsonObject the JSON object. * @return the created instance. * @throws NullPointerException if {@code jsonObject} is {@code null}. * @throws IllegalArgumentException if {@code jsonObject} is empty. * @throws JsonMissingFieldException if the passed in {@code jsonObject} was not in the expected format. */ public static StatusInfo fromJson(final JsonObject jsonObject) { final String label = jsonObject.getValue(JSON_KEY_LABEL).orElse(null); final Status status = Status.valueOf(jsonObject.getValueOrThrow(JSON_KEY_STATUS)); final JsonArray detailsArray = jsonObject.getValue(JSON_KEY_DETAILS).orElse(JsonFactory.newArray()); final List<StatusDetailMessage> details = detailsArray.stream() .map(JsonValue::asObject) .map(StatusDetailMessage::fromJson) .collect(Collectors.toList()); final JsonArray childrenArray = jsonObject.getValue(JSON_KEY_CHILDREN).orElse(JsonFactory.newArray()); final List<StatusInfo> children = childrenArray.stream() .map(JsonValue::asObject) .map(StatusInfo::fromJson) .collect(Collectors.toList()); return of(status, details, children, label); }
/** * Creates a new {@link StatusInfo} from a JSON object. * * @param jsonObject the JSON object. * @return the created instance. * @throws NullPointerException if {@code jsonObject} is {@code null}. * @throws IllegalArgumentException if {@code jsonObject} is empty. * @throws JsonMissingFieldException if the passed in {@code jsonObject} was not in the expected format. */ public static StatusInfo fromJson(final JsonObject jsonObject) { final String label = jsonObject.getValue(JSON_KEY_LABEL).orElse(null); final Status status = Status.valueOf(jsonObject.getValueOrThrow(JSON_KEY_STATUS)); final JsonArray detailsArray = jsonObject.getValue(JSON_KEY_DETAILS).orElse(JsonFactory.newArray()); final List<StatusDetailMessage> details = detailsArray.stream() .map(JsonValue::asObject) .map(StatusDetailMessage::fromJson) .collect(Collectors.toList()); final JsonArray childrenArray = jsonObject.getValue(JSON_KEY_CHILDREN).orElse(JsonFactory.newArray()); final List<StatusInfo> children = childrenArray.stream() .map(JsonValue::asObject) .map(StatusInfo::fromJson) .collect(Collectors.toList()); return of(status, details, children, label); }