Skip to content

Commit

Permalink
eclipse-ditto#60: extend protocol examples
Browse files Browse the repository at this point in the history
* added dummy methods in ThingsModelFactory
* enhanced CommandAndEventJsonExamplesProducer which is responsible for generating protocol examples

Signed-off-by: Thomas Jaeckle <thomas.jaeckle@bosch-si.com>
  • Loading branch information
thjaeckle committed Jan 16, 2018
1 parent a724684 commit 273da85
Show file tree
Hide file tree
Showing 5 changed files with 123 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

import javax.annotation.concurrent.Immutable;

import org.eclipse.ditto.json.JsonArray;
import org.eclipse.ditto.json.JsonFactory;
import org.eclipse.ditto.json.JsonObject;
import org.eclipse.ditto.json.JsonParseException;
Expand Down Expand Up @@ -104,6 +105,53 @@ public static AttributesBuilder newAttributesBuilder(final JsonObject jsonObject
return AttributesModelFactory.newAttributesBuilder(jsonObject);
}

/**
* Returns a new empty builder for an immutable {@link FeatureDefinition}.
*
* @return the builder.
*/
public static FeatureDefinitionBuilder newFeatureDefinitionBuilder() {
return null; // TODO CR-4907
}

/**
* Returns a new builder for an immutable {@link FeatureDefinition} which is initialised with the values of the
* given JSON array.
*
* @param jsonArray provides the initial values of the result.
* @return the builder.
* @throws NullPointerException if {@code jsonArray} is {@code null}.
*/
public static FeatureDefinitionBuilder newFeatureDefinitionBuilder(final JsonArray jsonArray) {
return null; // TODO CR-4907
}

/**
* Returns a new immutable {@link FeatureDefinition} which represents {@code null}.
*
* @return the new {@code null}-like {@code FeatureDefinition}.
*/
public static FeatureDefinition nullFeatureDefinition() {
return null; // TODO CR-4907
}

/**
* Returns a new immutable {@link FeatureDefinition} which is initialised with the values of the given JSON array.
*
* @param jsonArray provides the initial values of the result.
* @return the new immutable initialised {@code FeatureProperties}.
* @throws NullPointerException if {@code jsonArray} is {@code null}.
*/
public static FeatureDefinition newFeatureDefinition(final JsonArray jsonArray) {
checkNotNull(jsonArray, "JSON array for initialization");

if (!jsonArray.isNull()) {
return null; // TODO CR-4907
} else {
return null; // TODO CR-4907
}
}

/**
* Returns a new immutable empty {@link FeatureProperties}.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@
import org.eclipse.ditto.model.things.AclNotAllowedException;
import org.eclipse.ditto.model.things.Attributes;
import org.eclipse.ditto.model.things.Feature;
import org.eclipse.ditto.model.things.FeatureDefinition;
import org.eclipse.ditto.model.things.FeatureProperties;
import org.eclipse.ditto.model.things.Features;
import org.eclipse.ditto.model.things.Permission;
Expand Down Expand Up @@ -148,6 +149,8 @@
import org.eclipse.ditto.signals.commands.things.exceptions.AttributeNotModifiableException;
import org.eclipse.ditto.signals.commands.things.exceptions.AttributesNotAccessibleException;
import org.eclipse.ditto.signals.commands.things.exceptions.AttributesNotModifiableException;
import org.eclipse.ditto.signals.commands.things.exceptions.FeatureDefinitionNotAccessibleException;
import org.eclipse.ditto.signals.commands.things.exceptions.FeatureDefinitionNotModifiableException;
import org.eclipse.ditto.signals.commands.things.exceptions.FeatureNotAccessibleException;
import org.eclipse.ditto.signals.commands.things.exceptions.FeatureNotModifiableException;
import org.eclipse.ditto.signals.commands.things.exceptions.FeaturePropertiesNotAccessibleException;
Expand Down Expand Up @@ -175,6 +178,8 @@
import org.eclipse.ditto.signals.commands.things.modify.DeleteAttributes;
import org.eclipse.ditto.signals.commands.things.modify.DeleteAttributesResponse;
import org.eclipse.ditto.signals.commands.things.modify.DeleteFeature;
import org.eclipse.ditto.signals.commands.things.modify.DeleteFeatureDefinition;
import org.eclipse.ditto.signals.commands.things.modify.DeleteFeatureDefinitionResponse;
import org.eclipse.ditto.signals.commands.things.modify.DeleteFeatureProperties;
import org.eclipse.ditto.signals.commands.things.modify.DeleteFeaturePropertiesResponse;
import org.eclipse.ditto.signals.commands.things.modify.DeleteFeatureProperty;
Expand All @@ -191,6 +196,8 @@
import org.eclipse.ditto.signals.commands.things.modify.ModifyAttributes;
import org.eclipse.ditto.signals.commands.things.modify.ModifyAttributesResponse;
import org.eclipse.ditto.signals.commands.things.modify.ModifyFeature;
import org.eclipse.ditto.signals.commands.things.modify.ModifyFeatureDefinition;
import org.eclipse.ditto.signals.commands.things.modify.ModifyFeatureDefinitionResponse;
import org.eclipse.ditto.signals.commands.things.modify.ModifyFeatureProperties;
import org.eclipse.ditto.signals.commands.things.modify.ModifyFeaturePropertiesResponse;
import org.eclipse.ditto.signals.commands.things.modify.ModifyFeatureProperty;
Expand All @@ -211,6 +218,8 @@
import org.eclipse.ditto.signals.commands.things.query.RetrieveAttributes;
import org.eclipse.ditto.signals.commands.things.query.RetrieveAttributesResponse;
import org.eclipse.ditto.signals.commands.things.query.RetrieveFeature;
import org.eclipse.ditto.signals.commands.things.query.RetrieveFeatureDefinition;
import org.eclipse.ditto.signals.commands.things.query.RetrieveFeatureDefinitionResponse;
import org.eclipse.ditto.signals.commands.things.query.RetrieveFeatureProperties;
import org.eclipse.ditto.signals.commands.things.query.RetrieveFeaturePropertiesResponse;
import org.eclipse.ditto.signals.commands.things.query.RetrieveFeatureProperty;
Expand Down Expand Up @@ -256,6 +265,9 @@
import org.eclipse.ditto.signals.events.things.AttributesDeleted;
import org.eclipse.ditto.signals.events.things.AttributesModified;
import org.eclipse.ditto.signals.events.things.FeatureCreated;
import org.eclipse.ditto.signals.events.things.FeatureDefinitionCreated;
import org.eclipse.ditto.signals.events.things.FeatureDefinitionDeleted;
import org.eclipse.ditto.signals.events.things.FeatureDefinitionModified;
import org.eclipse.ditto.signals.events.things.FeatureDeleted;
import org.eclipse.ditto.signals.events.things.FeatureModified;
import org.eclipse.ditto.signals.events.things.FeaturePropertiesCreated;
Expand Down Expand Up @@ -336,6 +348,9 @@ class CommandAndEventJsonExamplesProducer {
public static final String PROPERTY_X = "x";
private static final JsonPointer PROPERTY_POINTER = JsonFactory.newPointer(PROPERTY_X);
private static final JsonValue PROPERTY_VALUE = JsonFactory.newValue(42);
private static final FeatureDefinition FEATURE_DEFINITION = ThingsModelFactory.newFeatureDefinitionBuilder()
.add("org.eclipse.ditto:fluxcapacitor:1.0.0")
.build();
private static final FeatureProperties FEATURE_PROPERTIES = ThingsModelFactory.newFeaturePropertiesBuilder()
.set("x", 3.141)
.set("y", 2.718)
Expand Down Expand Up @@ -822,6 +837,10 @@ private void produceThingQueryCommands(final Path rootPath) throws IOException {
final RetrieveFeature retrieveFeature = RetrieveFeature.of(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("retrieveFeature.json")), retrieveFeature);

final RetrieveFeatureDefinition retrieveFeatureDefinition =
RetrieveFeatureDefinition.of(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("retrieveFeatureDefinition.json")), retrieveFeatureDefinition);

final RetrieveFeatureProperties retrieveFeatureProperties =
RetrieveFeatureProperties.of(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("retrieveFeatureProperties.json")), retrieveFeatureProperties);
Expand Down Expand Up @@ -878,6 +897,11 @@ private void produceThingQueryResponses(final Path rootPath) throws IOException
DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("retrieveFeatureResponse.json")), retrieveFeatureResponse);

final RetrieveFeatureDefinitionResponse retrieveFeatureDefinitionResponse =
RetrieveFeatureDefinitionResponse.of(THING_ID, FEATURE_ID, FEATURE_DEFINITION, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("retrieveFeatureDefinitionResponse.json")),
retrieveFeatureDefinitionResponse);

final RetrieveFeaturePropertiesResponse retrieveFeaturePropertiesResponse =
RetrieveFeaturePropertiesResponse.of(THING_ID, FEATURE_ID, FEATURE_PROPERTIES, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("retrieveFeaturePropertiesResponse.json")),
Expand Down Expand Up @@ -940,6 +964,10 @@ private void produceThingModifyCommands(final Path rootPath) throws IOException
final DeleteFeatures deleteFeatures = DeleteFeatures.of(THING_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("deleteFeatures.json")), deleteFeatures);

final ModifyFeatureDefinition modifyFeatureDefinition = ModifyFeatureDefinition.of(THING_ID, FEATURE_ID,
FEATURE_DEFINITION, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("modifyFeatureDefinition.json")), modifyFeatureDefinition);

final ModifyFeatureProperties modifyFeatureProperties = ModifyFeatureProperties.of(THING_ID, FEATURE_ID,
FEATURE_PROPERTIES, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("modifyFeatureProperties.json")), modifyFeatureProperties);
Expand All @@ -948,6 +976,10 @@ private void produceThingModifyCommands(final Path rootPath) throws IOException
PROPERTY_POINTER, PROPERTY_VALUE, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("modifyFeatureProperty.json")), modifyFeatureProperty);

final DeleteFeatureDefinition deleteFeatureDefinition = DeleteFeatureDefinition.of(THING_ID, FEATURE_ID,
DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("deleteFeatureDefinition.json")), deleteFeatureDefinition);

final DeleteFeatureProperties deleteFeatureProperties = DeleteFeatureProperties.of(THING_ID, FEATURE_ID,
DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("deleteFeatureProperties.json")), deleteFeatureProperties);
Expand Down Expand Up @@ -1034,6 +1066,16 @@ private void produceThingModifyResponses(final Path rootPath) throws IOException
DeleteFeatureResponse.of(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("deleteFeatureResponse.json")), deleteFeatureResponse);

final ModifyFeatureDefinitionResponse modifyFeatureDefinitionResponse =
ModifyFeatureDefinitionResponse.modified(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("modifyFeatureDefinitionResponse.json")),
modifyFeatureDefinitionResponse);

final ModifyFeatureDefinitionResponse modifyFeatureDefinitionResponseCreated =
ModifyFeatureDefinitionResponse.created(THING_ID, FEATURE_ID, FEATURE_DEFINITION, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("modifyFeatureDefinitionResponseCreated.json")),
modifyFeatureDefinitionResponseCreated);

final ModifyFeaturePropertiesResponse modifyFeaturePropertiesResponse =
ModifyFeaturePropertiesResponse.modified(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("modifyFeaturePropertiesResponse.json")),
Expand All @@ -1044,6 +1086,11 @@ private void produceThingModifyResponses(final Path rootPath) throws IOException
writeJson(commandsDir.resolve(Paths.get("modifyFeaturePropertiesResponseCreated.json")),
modifyFeaturePropertiesResponseCreated);

final DeleteFeatureDefinitionResponse deleteFeatureDefinitionResponse =
DeleteFeatureDefinitionResponse.of(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("deleteFeatureDefinitionResponse.json")),
deleteFeatureDefinitionResponse);

final DeleteFeaturePropertiesResponse deleteFeaturePropertiesResponse =
DeleteFeaturePropertiesResponse.of(THING_ID, FEATURE_ID, DITTO_HEADERS);
writeJson(commandsDir.resolve(Paths.get("deleteFeaturePropertiesResponse.json")),
Expand Down Expand Up @@ -1144,6 +1191,14 @@ private void produceThingEvents(final Path rootPath) throws IOException {
DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featuresModified.json")), featuresModified);

final FeatureDefinitionCreated featureDefinitionCreated = FeatureDefinitionCreated.of(THING_ID, FEATURE_ID,
FEATURE_DEFINITION, REVISION_NUMBER, DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featureDefinitionCreated.json")), featureDefinitionCreated);

final FeatureDefinitionModified featureDefinitionModified = FeatureDefinitionModified.of(THING_ID, FEATURE_ID,
FEATURE_DEFINITION, REVISION_NUMBER, DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featureDefinitionModified.json")), featureDefinitionModified);

final FeaturePropertiesCreated featurePropertiesCreated = FeaturePropertiesCreated.of(THING_ID, FEATURE_ID,
FEATURE_PROPERTIES, REVISION_NUMBER, DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featurePropertiesCreated.json")), featurePropertiesCreated);
Expand All @@ -1160,6 +1215,10 @@ private void produceThingEvents(final Path rootPath) throws IOException {
PROPERTY_POINTER, PROPERTY_VALUE, REVISION_NUMBER, DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featurePropertyModified.json")), featurePropertyModified);

final FeatureDefinitionDeleted featureDefinitionDeleted = FeatureDefinitionDeleted.of(THING_ID, FEATURE_ID,
REVISION_NUMBER, DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featureDefinitionDeleted.json")), featureDefinitionDeleted);

final FeaturePropertiesDeleted featurePropertiesDeleted = FeaturePropertiesDeleted.of(THING_ID, FEATURE_ID,
REVISION_NUMBER, DITTO_HEADERS);
writeJson(eventsDir.resolve(Paths.get("featurePropertiesDeleted.json")), featurePropertiesDeleted);
Expand Down Expand Up @@ -1226,6 +1285,18 @@ private void produceThingExceptions(final Path rootPath) throws IOException {
writeJson(exceptionsDir.resolve(Paths.get("featureNotModifiableException.json")),
featureNotModifiableException);

final FeatureDefinitionNotAccessibleException featureDefinitionNotAccessibleException =
FeatureDefinitionNotAccessibleException.newBuilder(THING_ID, FEATURE_ID)
.dittoHeaders(DITTO_HEADERS).build();
writeJson(exceptionsDir.resolve(Paths.get("featureDefinitionNotAccessibleException.json")),
featureDefinitionNotAccessibleException);

final FeatureDefinitionNotModifiableException featureDefinitionNotModifiableException =
FeatureDefinitionNotModifiableException.newBuilder(THING_ID, FEATURE_ID)
.dittoHeaders(DITTO_HEADERS).build();
writeJson(exceptionsDir.resolve(Paths.get("featureDefinitionNotModifiableException.json")),
featureDefinitionNotModifiableException);

final FeaturePropertiesNotAccessibleException featurePropertiesNotAccessibleException =
FeaturePropertiesNotAccessibleException.newBuilder(THING_ID, FEATURE_ID)
.dittoHeaders(DITTO_HEADERS).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,7 @@ public class JsonExamplesProducer {
private static final JsonPointer PROPERTY_POINTER = JsonFactory.newPointer(PROPERTY_X);
private static final JsonValue PROPERTY_VALUE = JsonFactory.newValue(42);
private static final FeatureDefinition FEATURE_DEFINITION = ThingsModelFactory.newFeatureDefinitionBuilder()
.set("x", 3.141)
.set("y", 2.718)
.set("z", 1)
.set("unit", "g")
.add("org.eclipse.ditto:fluxcapacitor:1.0.0")
.build();
private static final FeatureProperties FEATURE_PROPERTIES = ThingsModelFactory.newFeaturePropertiesBuilder()
.set("x", 3.141)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.eclipse.ditto.model.things.AccessControlList;
import org.eclipse.ditto.model.things.AclEntry;
import org.eclipse.ditto.model.things.Attributes;
import org.eclipse.ditto.model.things.FeatureDefinition;
import org.eclipse.ditto.model.things.FeatureProperties;
import org.eclipse.ditto.model.things.Features;
import org.eclipse.ditto.model.things.Permission;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.eclipse.ditto.model.things.AclEntry;
import org.eclipse.ditto.model.things.Attributes;
import org.eclipse.ditto.model.things.Feature;
import org.eclipse.ditto.model.things.FeatureDefinition;
import org.eclipse.ditto.model.things.FeatureProperties;
import org.eclipse.ditto.model.things.Features;
import org.eclipse.ditto.model.things.Permission;
Expand Down Expand Up @@ -102,10 +103,7 @@ public class JsonExamplesProducer {
private static final JsonPointer PROPERTY_POINTER = JsonFactory.newPointer(PROPERTY_X);
private static final JsonValue PROPERTY_VALUE = JsonFactory.newValue(42);
private static final FeatureDefinition FEATURE_DEFINITION = ThingsModelFactory.newFeatureDefinitionBuilder()
.set("x", 3.141)
.set("y", 2.718)
.set("z", 1)
.set("unit", "g")
.set("org.eclipse.ditto:fluxcapacitor:1.0.0")
.build();
private static final FeatureProperties FEATURE_PROPERTIES = ThingsModelFactory.newFeaturePropertiesBuilder()
.set("x", 3.141)
Expand Down

0 comments on commit 273da85

Please sign in to comment.