@Override public boolean contains(final CharSequence key) { return wrapped.contains(key); }
@Override public boolean contains(final CharSequence key) { return wrapped.contains(key); }
@Override public boolean contains(final CharSequence key) { return wrapped.contains(key); }
@Override public boolean contains(final CharSequence key) { return wrapped.contains(key); }
private static boolean needsSourceFilterMigration(final JsonObject connectionJsonObject) { final Optional<JsonArray> sources = connectionJsonObject.getValue(Connection.JsonFields.SOURCES); return sources.isPresent() && sources.get().stream().filter(JsonValue::isObject) .map(JsonValue::asObject).anyMatch(source -> source.contains("filters")); }
private static boolean needsSourceFilterMigration(final JsonObject connectionJsonObject) { final Optional<JsonArray> sources = connectionJsonObject.getValue(Connection.JsonFields.SOURCES); return sources.isPresent() && sources.get().stream().filter(JsonValue::isObject) .map(JsonValue::asObject).anyMatch(source -> source.contains("filters")); }
static Optional<JsonArray> migrateTargets(@Nonnull final JsonObject connectionJsonObject, final JsonArray authContext) { return connectionJsonObject.getValue(Connection.JsonFields.TARGETS) .map(targetsArray -> IntStream.range(0, targetsArray.getSize()) .mapToObj(index -> targetsArray.get(index) .filter(JsonValue::isObject) .map(JsonValue::asObject) .map(object -> { if (object.contains(Target.JsonFields.AUTHORIZATION_CONTEXT.getPointer())) { // keep the authContext if it was already set in the target return object; } else { return object.set(Target.JsonFields.AUTHORIZATION_CONTEXT, authContext); } }) .orElse(null) ).collect(JsonCollectors.valuesToArray()) ); } }
static Optional<JsonArray> migrateSources(@Nonnull final JsonObject connectionJsonObject, final JsonArray authContext) { return connectionJsonObject.getValue(Connection.JsonFields.SOURCES) .map(sourcesArray -> IntStream.range(0, sourcesArray.getSize()) .mapToObj(index -> sourcesArray.get(index) .filter(JsonValue::isObject) .map(JsonValue::asObject) .map(object -> { if (object.contains(Source.JsonFields.AUTHORIZATION_CONTEXT.getPointer())) { // keep the authContext if it was already set in the target return object; } else { return object.set(Source.JsonFields.AUTHORIZATION_CONTEXT, authContext); } }) .orElse(null) ).collect(JsonCollectors.valuesToArray()) ); }
static Optional<JsonArray> migrateSources(@Nonnull final JsonObject connectionJsonObject, final JsonArray authContext) { return connectionJsonObject.getValue(Connection.JsonFields.SOURCES) .map(sourcesArray -> IntStream.range(0, sourcesArray.getSize()) .mapToObj(index -> sourcesArray.get(index) .filter(JsonValue::isObject) .map(JsonValue::asObject) .map(object -> { if (object.contains(Source.JsonFields.AUTHORIZATION_CONTEXT.getPointer())) { // keep the authContext if it was already set in the target return object; } else { return object.set(Source.JsonFields.AUTHORIZATION_CONTEXT, authContext); } }) .orElse(null) ).collect(JsonCollectors.valuesToArray()) ); }
static Optional<JsonArray> migrateTargets(@Nonnull final JsonObject connectionJsonObject, final JsonArray authContext) { return connectionJsonObject.getValue(Connection.JsonFields.TARGETS) .map(targetsArray -> IntStream.range(0, targetsArray.getSize()) .mapToObj(index -> targetsArray.get(index) .filter(JsonValue::isObject) .map(JsonValue::asObject) .map(object -> { if (object.contains(Target.JsonFields.AUTHORIZATION_CONTEXT.getPointer())) { // keep the authContext if it was already set in the target return object; } else { return object.set(Target.JsonFields.AUTHORIZATION_CONTEXT, authContext); } }) .orElse(null) ).collect(JsonCollectors.valuesToArray()) ); } }
@Override public boolean contains(final CharSequence key) { requireNonNull(key, "The key or pointer to check the existence of a value for must not be null!"); final boolean result; final JsonPointer pointer = JsonFactory.newPointer(key); if (1 >= pointer.getLevelCount()) { result = pointer.getRoot().map(this::containsKey).orElse(false); } else { result = pointer.getRoot() .flatMap(this::getValueForKey) .map(jsonValue -> !jsonValue.isObject() || jsonValue.asObject().contains(pointer.nextLevel())) // Recursion .orElse(false); } return result; }
@Override public boolean contains(final CharSequence key) { requireNonNull(key, "The key or pointer to check the existence of a value for must not be null!"); final boolean result; final JsonPointer pointer = JsonPointer.of(key); if (1 >= pointer.getLevelCount()) { result = pointer.getRoot().map(this::containsKey).orElse(false); } else { result = pointer.getRoot() .flatMap(this::getValueForKey) .map(jsonValue -> !jsonValue.isObject() || jsonValue.asObject().contains(pointer.nextLevel())) // Recursion .orElse(false); } return result; }
private static Optional<Policy> getInlinedOrDefaultPolicyForCreateThing(final CreateThing createThing) { final Optional<JsonObject> initialPolicy = createThing.getInitialPolicy(); if (initialPolicy.isPresent()) { final JsonObject policyJson = initialPolicy.get(); final JsonObjectBuilder policyJsonBuilder = policyJson.toBuilder(); final Thing thing = createThing.getThing(); if (thing.getPolicyId().isPresent() || !policyJson.contains(Policy.JsonFields.ID.getPointer())) { final String policyId = thing.getPolicyId().orElse(createThing.getThingId()); policyJsonBuilder.set(Policy.JsonFields.ID, policyId); } return Optional.of(PoliciesModelFactory.newPolicy(policyJsonBuilder.build())); } else { return getDefaultPolicy(createThing.getDittoHeaders().getAuthorizationContext(), createThing.getThingId()); } }
/** * Verifies that the JSON object contains all specified keys. * * @param expectedJsonKey the mandatory key whose existence is checked. * @param furtherExpectedJsonKeys further optional keys whose existence in the JSON object is checked. * @return this assertion object. */ public JsonObjectAssert containsKey(final CharSequence expectedJsonKey, final CharSequence... furtherExpectedJsonKeys) { isNotNull(); final Collection<CharSequence> allExpectedJsonKeys = new ArrayList<>(1 + furtherExpectedJsonKeys.length); allExpectedJsonKeys.add(expectedJsonKey); Collections.addAll(allExpectedJsonKeys, furtherExpectedJsonKeys); final List<CharSequence> missingKeys = new ArrayList<>(); for (final CharSequence jsonKey : allExpectedJsonKeys) { if (!actual.contains(jsonKey)) { missingKeys.add(jsonKey); } } Assertions.assertThat(missingKeys) .overridingErrorMessage("Expected JSON object to contain key(s) <%s> but it did not contain <%s>", allExpectedJsonKeys, missingKeys) .isEmpty(); return myself; }
final JsonObjectBuilder subBuilder = JsonObject.newBuilder(); subStatusObj.forEach(subBuilder::set); if (roleStatusBuilder.build().contains(key)) { key = key + "_" + UUID.randomUUID().toString().hashCode();
private static JsonObject mergeJsonObjects(final JsonObject object1, final JsonObject object2) { final JsonObjectBuilder builder = JsonFactory.newObjectBuilder(); if(object1.isNull() && object2.isNull()) { return JsonFactory.nullObject(); } // add fields of jsonObject1 object1.forEach(jsonField -> { final JsonKey key = jsonField.getKey(); final JsonValue value1 = jsonField.getValue(); final Optional<JsonValue> maybeValue2 = object2.getValue(key); if (maybeValue2.isPresent()) { builder.set(key, mergeJsonValues(value1, maybeValue2.get())); } else { builder.set(jsonField); } }); // add fields of jsonObject2 not present in jsonObject0 object2.forEach(jsonField -> { if (!object1.contains(jsonField.getKey())) { builder.set(jsonField); } }); return builder.build(); }
private static Thing createThingForPost(final String jsonString) { final JsonObject inputJson = wrapJsonRuntimeException(() -> JsonFactory.newObject(jsonString)); if (inputJson.contains(Thing.JsonFields.ID.getPointer())) { throw ThingIdNotExplicitlySettableException.newBuilder(true).build(); } final String thingId = ThingBuilder.generateRandomThingId(); final JsonObjectBuilder outputJsonBuilder = inputJson.toBuilder(); outputJsonBuilder.set(Thing.JsonFields.ID.getPointer(), thingId); return ThingsModelFactory.newThingBuilder(outputJsonBuilder.build()) .setId(thingId) .build(); }