org.eclipse.ditto.json.JsonObject.toBuilder()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(112)

本文整理了Java中org.eclipse.ditto.json.JsonObject.toBuilder()方法的一些代码示例,展示了JsonObject.toBuilder()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JsonObject.toBuilder()方法的具体详情如下:
包路径:org.eclipse.ditto.json.JsonObject
类名称:JsonObject
方法名:toBuilder

JsonObject.toBuilder介绍

[英]Returns a new mutable builder with a fluent API for a JsonObject. The returned builder is already initialised with the data of the this JSON object. This method is useful if an existing JSON object should be strongly modified but the amount of creating objects should be kept low at the same time.
[中]返回一个新的可变生成器,其中包含JsonObject的流畅API。已使用此JSON对象的数据初始化返回的生成器。如果现有的JSON对象应该被强烈修改,但同时创建对象的数量应该保持在较低的水平,则此方法非常有用。

代码示例

代码示例来源:origin: eclipse/ditto

@Override
public JsonObject apply(final JsonObject connectionJsonObject) {
  final Optional<JsonArray> sources = connectionJsonObject.getValue(Connection.JsonFields.SOURCES);
  if (sources.isPresent() && needsSourceFilterMigration(connectionJsonObject)) {
    final JsonArray sourcesArray = sources.get().stream()
        .filter(JsonValue::isObject)
        .map(JsonValue::asObject)
        .map(MigrateSourceFilters::migrateSourceFilters)
        .collect(JsonCollectors.valuesToArray());
    return connectionJsonObject.toBuilder().set(Connection.JsonFields.SOURCES, sourcesArray).build();
  } else {
    return connectionJsonObject;
  }
}

代码示例来源:origin: org.eclipse.ditto/ditto-services-connectivity-messaging

@Override
public JsonObject apply(final JsonObject connectionJsonObject) {
  final Optional<JsonArray> sources = connectionJsonObject.getValue(Connection.JsonFields.SOURCES);
  if (sources.isPresent() && needsSourceFilterMigration(connectionJsonObject)) {
    final JsonArray sourcesArray = sources.get().stream()
        .filter(JsonValue::isObject)
        .map(JsonValue::asObject)
        .map(MigrateSourceFilters::migrateSourceFilters)
        .collect(JsonCollectors.valuesToArray());
    return connectionJsonObject.toBuilder().set(Connection.JsonFields.SOURCES, sourcesArray).build();
  } else {
    return connectionJsonObject;
  }
}

代码示例来源:origin: org.eclipse.ditto/ditto-services-connectivity-messaging

static JsonObject migrateSourceFilters(final JsonObject source) {
    return source.getValue(Enforcement.JsonFields.FILTERS)
        .filter(JsonValue::isArray)
        .map(JsonValue::asArray)
        .map(a -> JsonFactory.newObjectBuilder()
            .set(Enforcement.JsonFields.INPUT, ConnectivityModelFactory.SOURCE_ADDRESS_ENFORCEMENT)
            .set(Enforcement.JsonFields.FILTERS, a)
            .build())
        .map(enforcement -> source.toBuilder()
            .remove(Enforcement.JsonFields.FILTERS)
            .set(Source.JsonFields.ENFORCEMENT, enforcement))
        .map(JsonObjectBuilder::build)
        .orElse(source);
  }
}

代码示例来源:origin: eclipse/ditto

static JsonObject migrateSourceFilters(final JsonObject source) {
    return source.getValue(Enforcement.JsonFields.FILTERS)
        .filter(JsonValue::isArray)
        .map(JsonValue::asArray)
        .map(a -> JsonFactory.newObjectBuilder()
            .set(Enforcement.JsonFields.INPUT, ConnectivityModelFactory.SOURCE_ADDRESS_ENFORCEMENT)
            .set(Enforcement.JsonFields.FILTERS, a)
            .build())
        .map(enforcement -> source.toBuilder()
            .remove(Enforcement.JsonFields.FILTERS)
            .set(Source.JsonFields.ENFORCEMENT, enforcement))
        .map(JsonObjectBuilder::build)
        .orElse(source);
  }
}

代码示例来源:origin: org.eclipse.ditto/ditto-model-connectivity

@Override
public JsonObject toJson(final JsonSchemaVersion schemaVersion, final Predicate<JsonField> predicate) {
  final JsonObjectBuilder jsonObjectBuilder = delegate.toJson(schemaVersion, predicate).toBuilder();
  jsonObjectBuilder.set(MqttSource.JsonFields.QOS, qos);
  return jsonObjectBuilder.build();
}

代码示例来源:origin: org.eclipse.ditto/ditto-model-connectivity

@Override
public JsonObject toJson(final JsonSchemaVersion schemaVersion, final Predicate<JsonField> predicate) {
  final JsonObjectBuilder jsonObjectBuilder = delegate.toJson(schemaVersion, predicate).toBuilder();
  jsonObjectBuilder.set(MqttSource.JsonFields.QOS, qos);
  return jsonObjectBuilder.build();
}

代码示例来源:origin: eclipse/ditto

@Override
public JsonObject toJson(final JsonSchemaVersion schemaVersion, final Predicate<JsonField> predicate) {
  final JsonObjectBuilder jsonObjectBuilder = delegate.toJson(schemaVersion, predicate).toBuilder();
  jsonObjectBuilder.set(MqttSource.JsonFields.QOS, qos);
  return jsonObjectBuilder.build();
}

代码示例来源:origin: eclipse/ditto

@Override
public JsonObject toJson(final JsonSchemaVersion schemaVersion, final Predicate<JsonField> predicate) {
  final JsonObjectBuilder jsonObjectBuilder = delegate.toJson(schemaVersion, predicate).toBuilder();
  jsonObjectBuilder.set(MqttSource.JsonFields.QOS, qos);
  return jsonObjectBuilder.build();
}

代码示例来源:origin: org.eclipse.ditto/ditto-services-connectivity-messaging

@Override
public JsonObject apply(final JsonObject connectionJsonObject) {
  final Optional<JsonArray> globalAuthorizationContext = connectionJsonObject.getValue(AUTHORIZATION_CONTEXT);
  if (globalAuthorizationContext.isPresent()) {
    // in the old, deprecated format, use the global authorization context as sources and targets contexts
    final JsonObjectBuilder migrationConnectionBuilder = connectionJsonObject.toBuilder();
    final JsonArray authContext = globalAuthorizationContext.get();
    MigrateAuthorizationContexts.migrateSources(connectionJsonObject, authContext)
        .ifPresent(s -> migrationConnectionBuilder.set(Connection.JsonFields.SOURCES, s));
    MigrateAuthorizationContexts.migrateTargets(connectionJsonObject, authContext)
        .ifPresent(t -> migrationConnectionBuilder.set(Connection.JsonFields.TARGETS, t));
    return migrationConnectionBuilder.build();
  } else {
    // no migration required
    return connectionJsonObject;
  }
}

代码示例来源:origin: eclipse/ditto

@Override
public JsonObject apply(final JsonObject connectionJsonObject) {
  final Optional<JsonArray> globalAuthorizationContext = connectionJsonObject.getValue(AUTHORIZATION_CONTEXT);
  if (globalAuthorizationContext.isPresent()) {
    // in the old, deprecated format, use the global authorization context as sources and targets contexts
    final JsonObjectBuilder migrationConnectionBuilder = connectionJsonObject.toBuilder();
    final JsonArray authContext = globalAuthorizationContext.get();
    MigrateAuthorizationContexts.migrateSources(connectionJsonObject, authContext)
        .ifPresent(s -> migrationConnectionBuilder.set(Connection.JsonFields.SOURCES, s));
    MigrateAuthorizationContexts.migrateTargets(connectionJsonObject, authContext)
        .ifPresent(t -> migrationConnectionBuilder.set(Connection.JsonFields.TARGETS, t));
    return migrationConnectionBuilder.build();
  } else {
    // no migration required
    return connectionJsonObject;
  }
}

代码示例来源:origin: eclipse/ditto

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());
  }
}

代码示例来源:origin: eclipse/ditto

private JsonObject createThingJsonObjectForPut(final String jsonString, final String thingId) {
  final JsonObject inputJson = wrapJsonRuntimeException(() -> JsonFactory.newObject(jsonString));
  final JsonObjectBuilder outputJsonBuilder = inputJson.toBuilder();
  final Optional<JsonValue> optThingId = inputJson.getValue(Thing.JsonFields.ID.getPointer());
  // verifies that thing ID agrees with ID from route
  if (optThingId.isPresent()) {
    final JsonValue thingIdFromBody = optThingId.get();
    if (!thingIdFromBody.isString() || !thingId.equals(thingIdFromBody.asString())) {
      throw ThingIdNotExplicitlySettableException.newBuilder(false).build();
    }
  } else {
    outputJsonBuilder.set(Thing.JsonFields.ID, thingId).build();
  }
  return outputJsonBuilder.build();
}

代码示例来源:origin: eclipse/ditto

private void reportAggregatedThingAndPolicy(
    final RetrieveThing retrieveThing,
    final RetrieveThingResponse retrieveThingResponse,
    final Policy policy,
    final Enforcer enforcer,
    final ActorRef sender) {
  final RetrieveThingResponse limitedView =
      buildJsonViewForThingQueryCommandResponse(retrieveThingResponse, enforcer);
  final JsonObject inlinedPolicy =
      policy.toInlinedJson(retrieveThing.getImplementedSchemaVersion(), FieldType.notHidden());
  final JsonObject thingWithInlinedPolicy = limitedView.getEntity().asObject().toBuilder()
      .setAll(inlinedPolicy)
      .build();
  replyToSender(limitedView.setEntity(thingWithInlinedPolicy), sender);
}

代码示例来源:origin: eclipse/ditto

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();
}

相关文章