private static JsonObject initialPolicyForCreateThingFrom(final Adaptable adaptable) { return adaptable.getPayload().getValue() .map(JsonValue::asObject) .map(o -> o.getValue(CreateThing.JSON_INLINE_POLICY).map(JsonValue::asObject).orElse(null)) .orElse(null); }
private static String policyIdOrPlaceholderForCreateThingFrom(final Adaptable adaptable) { return adaptable.getPayload().getValue() .map(JsonValue::asObject) .flatMap(o -> o.getValue(CreateThing.JSON_COPY_POLICY_FROM)) .orElse(null); }
protected static Thing thingFrom(final Adaptable adaptable) { return adaptable.getPayload().getValue() .map(JsonValue::asObject) .map(ThingsModelFactory::newThing) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static Attributes attributesFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asObject) .map(ThingsModelFactory::newAttributes) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static Features featuresFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asObject) .map(ThingsModelFactory::newFeatures) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static FeatureDefinition featureDefinitionFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asArray) .map(ThingsModelFactory::newFeatureDefinition) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static FeatureProperties featurePropertiesFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asObject) .map(ThingsModelFactory::newFeatureProperties) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static FeatureDefinition featureDefinitionFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asArray) .map(ThingsModelFactory::newFeatureDefinition) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static JsonArray thingsArrayFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .filter(JsonValue::isArray) .map(JsonValue::asArray) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static String policyIdFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asString) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
@Override protected String getType(final Adaptable adaptable) { if (adaptable.getTopicPath().getSubject().filter(KnownMessageSubjects.CLAIM_SUBJECT::equals).isPresent()) { return SendClaimMessageResponse.TYPE; } else if (!adaptable.getHeaders().map(DittoHeaders::isResponseRequired).orElse(true)) { return SendMessageAcceptedResponse.TYPE; } else if (adaptable.getPayload().getPath().getFeatureId().isPresent()) { return SendFeatureMessageResponse.TYPE; } else { return SendThingMessageResponse.TYPE; } }
@Override protected String getType(final Adaptable adaptable) { if (adaptable.getTopicPath().getSubject().filter(KnownMessageSubjects.CLAIM_SUBJECT::equals).isPresent()) { return SendClaimMessage.TYPE; } else if (adaptable.getPayload().getPath().getFeatureId().isPresent()) { return SendFeatureMessage.TYPE; } else { return SendThingMessage.TYPE; } }
protected static AclEntry aclEntryFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(permissions -> AccessControlListModelFactory .newAclEntry(leafValue(adaptable.getPayload().getPath()), permissions)) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
protected static JsonPointer attributePointerFrom(final Adaptable adaptable) { final JsonPointer path = adaptable.getPayload().getPath(); return path.getSubPointer(ATTRIBUTE_PATH_LEVEL) .orElseThrow(() -> UnknownPathException.newBuilder(path).build()); }
protected static Feature featureFrom(final Adaptable adaptable) { return adaptable.getPayload() .getValue() .map(JsonValue::asObject) .map(jsonObject -> ThingsModelFactory.newFeatureBuilder(jsonObject) .useId(featureIdFrom(adaptable)) .build()) .orElseThrow(() -> JsonParseException.newBuilder().build()); }
private Signal<?> processCommandResponseSignalFromAdaptable(final Adaptable adaptable, final TopicPath topicPath) { final Optional<HttpStatusCode> status = adaptable.getPayload().getStatus(); final boolean isErrorResponse = status.isPresent() && status.get().toInt() >= HttpStatusCode.BAD_REQUEST.toInt(); if (TopicPath.Action.RETRIEVE.equals(topicPath.getAction().orElse(null))) { return isErrorResponse ? thingErrorResponseFromAdaptable(adaptable) : thingQueryCommandResponseAdapter.fromAdaptable(adaptable); } else { return isErrorResponse ? thingErrorResponseFromAdaptable(adaptable) : thingModifyCommandResponseAdapter.fromAdaptable(adaptable); } }
@Override protected String getType(final Adaptable adaptable) { final TopicPath topicPath = adaptable.getTopicPath(); final JsonPointer path = adaptable.getPayload().getPath(); final String eventName = PathMatcher.match(path) + getActionNameWithFirstLetterUpperCase(topicPath); return topicPath.getGroup() + "." + topicPath.getCriterion() + ":" + eventName; }
@Override protected String getType(final Adaptable adaptable) { final TopicPath topicPath = adaptable.getTopicPath(); if (topicPath.isWildcardTopic()) { return RetrieveThingsResponse.TYPE; } else { final JsonPointer path = adaptable.getPayload().getPath(); final String commandName = getAction(topicPath) + upperCaseFirst(PathMatcher.match(path)); return topicPath.getGroup() + ".responses:" + commandName; } }
@Override protected String getType(final Adaptable adaptable) { final TopicPath topicPath = adaptable.getTopicPath(); final JsonPointer path = adaptable.getPayload().getPath(); final String commandName = getAction(topicPath) + upperCaseFirst(PathMatcher.match(path)); return topicPath.getGroup() + "." + topicPath.getCriterion() + ":" + commandName; }
@Override protected String getType(final Adaptable adaptable) { final TopicPath topicPath = adaptable.getTopicPath(); if (topicPath.isWildcardTopic()) { return RetrieveThings.TYPE; } else { final JsonPointer path = adaptable.getPayload().getPath(); final String commandName = getAction(topicPath) + upperCaseFirst(PathMatcher.match(path)); return topicPath.getGroup() + "." + topicPath.getCriterion() + ":" + commandName; } }