diff --git a/signals/commands/policies/pom.xml b/signals/commands/policies/pom.xml
index 9c0274c24e..0e13b40089 100755
--- a/signals/commands/policies/pom.xml
+++ b/signals/commands/policies/pom.xml
@@ -73,13 +73,6 @@
-
- org.eclipse.ditto.signals.commands.policies.modify.ModifySubjectResponse#modified(org.eclipse.ditto.model.policies.PolicyId,org.eclipse.ditto.model.policies.Label,org.eclipse.ditto.model.base.headers.DittoHeaders)
- org.eclipse.ditto.signals.commands.policies.modify.ModifyPolicyEntryResponse#modified(org.eclipse.ditto.model.policies.PolicyId,org.eclipse.ditto.model.base.headers.DittoHeaders)
- org.eclipse.ditto.signals.commands.policies.modify.ModifyResourceResponse#modified(org.eclipse.ditto.model.policies.PolicyId,org.eclipse.ditto.model.policies.Label,org.eclipse.ditto.model.base.headers.DittoHeaders)
- org.eclipse.ditto.signals.commands.policies.modify.ModifyPolicyEntryResponse#modified(java.lang.String,org.eclipse.ditto.model.base.headers.DittoHeaders)
- org.eclipse.ditto.signals.commands.policies.modify.ModifyResourceResponse#modified(java.lang.String,org.eclipse.ditto.model.policies.Label,org.eclipse.ditto.model.base.headers.DittoHeaders)
- org.eclipse.ditto.signals.commands.policies.modify.ModifySubjectResponse#modified(java.lang.String,org.eclipse.ditto.model.policies.Label,org.eclipse.ditto.model.base.headers.DittoHeaders)
diff --git a/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyPolicyEntryResponse.java b/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyPolicyEntryResponse.java
index 522d72fd30..2a79e30717 100755
--- a/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyPolicyEntryResponse.java
+++ b/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyPolicyEntryResponse.java
@@ -39,6 +39,7 @@
import org.eclipse.ditto.model.policies.PolicyId;
import org.eclipse.ditto.signals.commands.base.AbstractCommandResponse;
import org.eclipse.ditto.signals.commands.base.CommandResponseJsonDeserializer;
+import org.eclipse.ditto.signals.commands.policies.PolicyCommandResponse;
/**
* Response to a {@link ModifyPolicyEntry} command.
@@ -60,20 +61,19 @@ public final class ModifyPolicyEntryResponse extends AbstractCommandResponse(TYPE, jsonObject)
- .deserialize((statusCode) -> {
+ .deserialize(statusCode -> {
final String extractedPolicyId =
- jsonObject.getValueOrThrow(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID);
+ jsonObject.getValueOrThrow(PolicyCommandResponse.JsonFields.JSON_POLICY_ID);
final PolicyId policyId = PolicyId.of(extractedPolicyId);
- final Label readLabel = Label.of(jsonObject.getValueOrThrow(JSON_LABEL));
+ final Optional readLabel = jsonObject.getValue(JSON_LABEL);
final PolicyEntry extractedPolicyEntryCreated = jsonObject.getValue(JSON_POLICY_ENTRY)
.filter(JsonValue::isObject)
.map(JsonValue::asObject)
- .map(obj -> PoliciesModelFactory.newPolicyEntry(readLabel, obj))
+ .flatMap(obj -> readLabel.map(label -> PoliciesModelFactory.newPolicyEntry(label, obj)))
.orElse(null);
- return new ModifyPolicyEntryResponse(policyId, statusCode, extractedPolicyEntryCreated, readLabel,
+ return new ModifyPolicyEntryResponse(policyId, statusCode, extractedPolicyEntryCreated,
+ readLabel.map(Label::of).orElse(null),
dittoHeaders);
});
}
@@ -208,14 +241,9 @@ public Optional getEntity(final JsonSchemaVersion schemaVersion) {
@Override
public JsonPointer getResourcePath() {
-
- final Label label;
- if (policyEntryCreated == null) {
- label = this.label;
- } else {
- label = policyEntryCreated.getLabel();
+ if (null == label) {
+ return JsonPointer.empty();
}
-
final String path = "/entries/" + label;
return JsonPointer.of(path);
}
@@ -225,9 +253,11 @@ protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final Js
final Predicate thePredicate) {
final Predicate predicate = schemaVersion.and(thePredicate);
- jsonObjectBuilder.set(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID, String.valueOf(policyId),
+ jsonObjectBuilder.set(PolicyCommandResponse.JsonFields.JSON_POLICY_ID, String.valueOf(policyId),
predicate);
- jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate);
+ if (null != label) {
+ jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate);
+ }
if (null != policyEntryCreated) {
jsonObjectBuilder.set(JSON_POLICY_ENTRY, policyEntryCreated.toJson(schemaVersion, thePredicate), predicate);
}
diff --git a/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyResourceResponse.java b/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyResourceResponse.java
index 74719a60d1..1fabc1eb01 100755
--- a/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyResourceResponse.java
+++ b/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifyResourceResponse.java
@@ -40,6 +40,7 @@
import org.eclipse.ditto.model.policies.ResourceKey;
import org.eclipse.ditto.signals.commands.base.AbstractCommandResponse;
import org.eclipse.ditto.signals.commands.base.CommandResponseJsonDeserializer;
+import org.eclipse.ditto.signals.commands.policies.PolicyCommandResponse;
/**
* Response to a {@link ModifyResource} command.
@@ -65,12 +66,12 @@ public final class ModifyResourceResponse extends AbstractCommandResponse(TYPE, jsonObject).deserialize(statusCode -> {
final String extractedPolicyId =
- jsonObject.getValueOrThrow(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID);
+ jsonObject.getValueOrThrow(PolicyCommandResponse.JsonFields.JSON_POLICY_ID);
final PolicyId policyId = PolicyId.of(extractedPolicyId);
final String stringLabel = jsonObject.getValueOrThrow(JSON_LABEL);
final Label label = PoliciesModelFactory.newLabel(stringLabel);
- final ResourceKey extractedResourceKey =
- ResourceKey.newInstance(jsonObject.getValueOrThrow(JSON_RESOURCE_KEY));
+ final Optional extractedResourceKey = jsonObject.getValue(JSON_RESOURCE_KEY)
+ .map(ResourceKey::newInstance);
final Resource extractedResourceCreated = jsonObject.getValue(JSON_RESOURCE)
.map(JsonValue::asObject)
- .map(obj -> PoliciesModelFactory.newResource(extractedResourceKey, obj))
+ .flatMap(obj -> extractedResourceKey.map(resourceKey -> PoliciesModelFactory.newResource(resourceKey, obj)))
.orElse(null);
- return new ModifyResourceResponse(policyId, label, extractedResourceKey, extractedResourceCreated,
+ return new ModifyResourceResponse(policyId, label,
+ extractedResourceKey.map(ResourceKey::newInstance).orElse(null), extractedResourceCreated,
statusCode, dittoHeaders);
});
}
@@ -247,10 +281,12 @@ protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final Js
final Predicate thePredicate) {
final Predicate predicate = schemaVersion.and(thePredicate);
- jsonObjectBuilder.set(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID, String.valueOf(policyId),
+ jsonObjectBuilder.set(PolicyCommandResponse.JsonFields.JSON_POLICY_ID, String.valueOf(policyId),
predicate);
jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate);
- jsonObjectBuilder.set(JSON_RESOURCE_KEY, resourceKey.toString(), predicate);
+ if (null != resourceKey) {
+ jsonObjectBuilder.set(JSON_RESOURCE_KEY, resourceKey.toString(), predicate);
+ }
if (null != resourceCreated) {
jsonObjectBuilder.set(JSON_RESOURCE, resourceCreated.toJson(schemaVersion, thePredicate), predicate);
}
diff --git a/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifySubjectResponse.java b/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifySubjectResponse.java
index 99ff362fcc..3289a2bdd5 100755
--- a/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifySubjectResponse.java
+++ b/signals/commands/policies/src/main/java/org/eclipse/ditto/signals/commands/policies/modify/ModifySubjectResponse.java
@@ -40,6 +40,7 @@
import org.eclipse.ditto.model.policies.SubjectId;
import org.eclipse.ditto.signals.commands.base.AbstractCommandResponse;
import org.eclipse.ditto.signals.commands.base.CommandResponseJsonDeserializer;
+import org.eclipse.ditto.signals.commands.policies.PolicyCommandResponse;
/**
* Response to a {@link ModifySubject} command.
@@ -66,19 +67,19 @@ public final class ModifySubjectResponse extends AbstractCommandResponse(TYPE, jsonObject).deserialize(statusCode -> {
final String extractedPolicyId =
- jsonObject.getValueOrThrow(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID);
+ jsonObject.getValueOrThrow(PolicyCommandResponse.JsonFields.JSON_POLICY_ID);
final PolicyId policyId = PolicyId.of(extractedPolicyId);
final Label label = PoliciesModelFactory.newLabel(jsonObject.getValueOrThrow(JSON_LABEL));
- final SubjectId extractedSubjectId = SubjectId.newInstance(jsonObject.getValueOrThrow(JSON_SUBJECT_ID));
+ final Optional extractedSubjectId = jsonObject.getValue(JSON_SUBJECT_ID);
final Subject extractedSubjectCreated = jsonObject.getValue(JSON_SUBJECT)
.map(JsonValue::asObject)
- .map(obj -> PoliciesModelFactory.newSubject(extractedSubjectId, obj))
+ .flatMap(obj -> extractedSubjectId.map(subjectId -> PoliciesModelFactory.newSubject(subjectId, obj)))
.orElse(null);
- return new ModifySubjectResponse(policyId, label, extractedSubjectId, extractedSubjectCreated, statusCode,
+ return new ModifySubjectResponse(policyId, label,
+ extractedSubjectId.map(SubjectId::newInstance).orElse(null),
+ extractedSubjectCreated, statusCode,
dittoHeaders);
});
}
@@ -231,6 +267,9 @@ public Optional getEntity(final JsonSchemaVersion schemaVersion) {
@Override
public JsonPointer getResourcePath() {
+ if (null == subjectId) {
+ return JsonPointer.empty();
+ }
final String path = "/entries/" + label + "/subjects/" + subjectId;
return JsonPointer.of(path);
}
@@ -240,10 +279,12 @@ protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final Js
final Predicate thePredicate) {
final Predicate predicate = schemaVersion.and(thePredicate);
- jsonObjectBuilder.set(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID, String.valueOf(policyId),
+ jsonObjectBuilder.set(PolicyCommandResponse.JsonFields.JSON_POLICY_ID, String.valueOf(policyId),
predicate);
jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate);
- jsonObjectBuilder.set(JSON_SUBJECT_ID, subjectId.toString(), predicate);
+ if (null != subjectId) {
+ jsonObjectBuilder.set(JSON_SUBJECT_ID, subjectId.toString(), predicate);
+ }
if (null != subjectCreated) {
jsonObjectBuilder.set(JSON_SUBJECT, subjectCreated.toJson(schemaVersion, thePredicate), predicate);
}