Class ModifyThing
java.lang.Object
org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
org.eclipse.ditto.things.model.signals.commands.modify.ModifyThing
- All Implemented Interfaces:
org.eclipse.ditto.base.model.entity.id.WithEntityId,org.eclipse.ditto.base.model.entity.type.WithEntityType,org.eclipse.ditto.base.model.headers.DittoHeadersSettable<ModifyThing>,org.eclipse.ditto.base.model.headers.WithDittoHeaders,org.eclipse.ditto.base.model.headers.WithManifest,org.eclipse.ditto.base.model.json.Jsonifiable<org.eclipse.ditto.json.JsonObject>,org.eclipse.ditto.base.model.json.Jsonifiable.WithPredicate<org.eclipse.ditto.json.JsonObject,,org.eclipse.ditto.json.JsonField> org.eclipse.ditto.base.model.signals.commands.Command<ModifyThing>,org.eclipse.ditto.base.model.signals.Signal<ModifyThing>,org.eclipse.ditto.base.model.signals.SignalWithEntityId<ModifyThing>,org.eclipse.ditto.base.model.signals.WithName,org.eclipse.ditto.base.model.signals.WithOptionalEntity<ModifyThing>,org.eclipse.ditto.base.model.signals.WithResource,org.eclipse.ditto.base.model.signals.WithType,ThingModifyCommand<ModifyThing>,ThingCommand<ModifyThing>,WithThingId
public final class ModifyThing
extends org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
implements ThingModifyCommand<ModifyThing>
This command modifies an existing Thing. It contains the full
Thing including the Thing ID which should be
used for modification.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.ditto.base.model.signals.commands.Command
org.eclipse.ditto.base.model.signals.commands.Command.Category, org.eclipse.ditto.base.model.signals.commands.Command.JsonFieldsNested classes/interfaces inherited from interface org.eclipse.ditto.base.model.json.Jsonifiable
org.eclipse.ditto.base.model.json.Jsonifiable.WithFieldSelector, org.eclipse.ditto.base.model.json.Jsonifiable.WithFieldSelectorAndPredicate<T extends Object>, org.eclipse.ditto.base.model.json.Jsonifiable.WithPointer<J extends org.eclipse.ditto.json.JsonValue>, org.eclipse.ditto.base.model.json.Jsonifiable.WithPredicate<J extends org.eclipse.ditto.json.JsonValue,T extends Object> Nested classes/interfaces inherited from interface org.eclipse.ditto.things.model.signals.commands.ThingCommand
ThingCommand.JsonFields -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final org.eclipse.ditto.json.JsonFieldDefinition<String>Json Field definition for the optional feature to copy an existing policy.static final org.eclipse.ditto.json.JsonFieldDefinition<org.eclipse.ditto.json.JsonObject>Json Field definition for the optional initial "inline" policy when creating a Thing.static final org.eclipse.ditto.json.JsonFieldDefinition<org.eclipse.ditto.json.JsonObject>Json Field definition for the optional initial "inline" policy for usage in getEntity().static final org.eclipse.ditto.json.JsonFieldDefinition<String>Json Field definition for the optional feature to copy an existing policy.static final StringName of the "Modify Thing" command.static final StringType of this command.Fields inherited from interface org.eclipse.ditto.base.model.signals.commands.Command
TYPE_QUALIFIERFields inherited from interface org.eclipse.ditto.base.model.signals.Signal
CHANNEL_LIVE, CHANNEL_TWINFields inherited from interface org.eclipse.ditto.things.model.signals.commands.ThingCommand
RESOURCE_TYPE, TYPE_PREFIXFields inherited from interface org.eclipse.ditto.base.model.signals.WithType
MESSAGES_COMMAND_RESPONSES_PREFIX, MESSAGES_COMMANDS_PREFIX, POLICY_ANNOUNCEMENT_PREFIX, THINGS_COMMAND_RESPONSES_PREFIX, THINGS_COMMANDS_PREFIX, THINGS_EVENTS_PREFIX -
Method Summary
Modifier and TypeMethodDescriptionprotected voidappendPayload(org.eclipse.ditto.json.JsonObjectBuilder jsonObjectBuilder, org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion, Predicate<org.eclipse.ditto.json.JsonField> thePredicate) protected booleanbooleanChecks whether this command may change authorization of the Thing.booleanstatic ModifyThingCreates a newModifyThingfrom a JSON string.static ModifyThingfromJson(org.eclipse.ditto.json.JsonObject jsonObject, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Creates a newModifyThingfrom a JSON object.org.eclipse.ditto.base.model.signals.commands.Command.CategoryOptional<org.eclipse.ditto.json.JsonValue>getEntity(org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion) Optional<org.eclipse.ditto.json.JsonObject>org.eclipse.ditto.json.JsonPointergetThing()Returns theThingto modify.inthashCode()static ModifyThingof(ThingId thingId, Thing thing, org.eclipse.ditto.json.JsonObject initialPolicy, String policyIdOrPlaceholder, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Returns a command for modifying a thing which is passed as argument.static ModifyThingof(ThingId thingId, Thing thing, org.eclipse.ditto.json.JsonObject initialPolicy, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Returns a command for modifying a thing which is passed as argument.setDittoHeaders(org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) setEntity(org.eclipse.ditto.json.JsonValue entity) toString()static ModifyThingwithCopiedPolicy(ThingId thingId, Thing thing, String policyIdOrPlaceholder, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Returns a command for modifying a thing which is passed as argument.Methods inherited from class org.eclipse.ditto.base.model.signals.commands.AbstractCommand
getDittoHeaders, getManifest, getType, toJsonMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.ditto.base.model.signals.commands.Command
getImplementedSchemaVersion, toJson, toJsonMethods inherited from interface org.eclipse.ditto.base.model.json.Jsonifiable
getLatestSchemaVersion, getSupportedSchemaVersions, implementsSchemaVersion, implementsSchemaVersion, toJsonStringMethods inherited from interface org.eclipse.ditto.base.model.json.Jsonifiable.WithPredicate
toJson, toJsonString, toJsonStringMethods inherited from interface org.eclipse.ditto.base.model.signals.Signal
getNameMethods inherited from interface org.eclipse.ditto.things.model.signals.commands.ThingCommand
getEntityType, getResourceType, getTypePrefixMethods inherited from interface org.eclipse.ditto.base.model.headers.WithDittoHeaders
getDittoHeadersMethods inherited from interface org.eclipse.ditto.base.model.headers.WithManifest
getManifestMethods inherited from interface org.eclipse.ditto.base.model.signals.WithOptionalEntity
getEntityMethods inherited from interface org.eclipse.ditto.base.model.signals.WithType
getType
-
Field Details
-
NAME
Name of the "Modify Thing" command.- See Also:
-
TYPE
Type of this command.- See Also:
-
JSON_INITIAL_POLICY
public static final org.eclipse.ditto.json.JsonFieldDefinition<org.eclipse.ditto.json.JsonObject> JSON_INITIAL_POLICYJson Field definition for the optional initial "inline" policy when creating a Thing. -
JSON_POLICY_ID_OR_PLACEHOLDER
public static final org.eclipse.ditto.json.JsonFieldDefinition<String> JSON_POLICY_ID_OR_PLACEHOLDERJson Field definition for the optional feature to copy an existing policy. -
JSON_COPY_POLICY_FROM
Json Field definition for the optional feature to copy an existing policy. -
JSON_INLINE_POLICY
public static final org.eclipse.ditto.json.JsonFieldDefinition<org.eclipse.ditto.json.JsonObject> JSON_INLINE_POLICYJson Field definition for the optional initial "inline" policy for usage in getEntity().
-
-
Method Details
-
of
public static ModifyThing of(ThingId thingId, Thing thing, @Nullable org.eclipse.ditto.json.JsonObject initialPolicy, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Returns a command for modifying a thing which is passed as argument.- Parameters:
thingId- the Thing's ID.thing- theThingto modify.initialPolicy- the initialPolicyto set for the Thing when creating it - may be null.dittoHeaders- the headers of the command.- Returns:
- the command.
- Throws:
NullPointerException- if any argument isnull.
-
withCopiedPolicy
public static ModifyThing withCopiedPolicy(ThingId thingId, Thing thing, String policyIdOrPlaceholder, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Returns a command for modifying a thing which is passed as argument. The thing will have a policy copied from a policy with the given policyIdOrPlaceholder.- Parameters:
thingId- the Thing's ID.thing- theThingto modify.policyIdOrPlaceholder- the policy id of thePolicyto copy and set for the Thing when creating it. If its a placeholder it will be resolved to a policy id. Placeholder must be of the syntax:{{ ref:things/<theThingId>/policyId }}.dittoHeaders- the headers of the command.- Returns:
- the command.
- Throws:
NullPointerException- if any argument isnull.
-
of
public static ModifyThing of(ThingId thingId, Thing thing, @Nullable org.eclipse.ditto.json.JsonObject initialPolicy, @Nullable String policyIdOrPlaceholder, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Returns a command for modifying a thing which is passed as argument. Only one of the arguments initialPolicy and policyIdOrPlaceholder must not be null. They are both allowed to be null, but not both to not be null at the same time.- Parameters:
thingId- the Thing's ID.thing- theThingto modify.policyIdOrPlaceholder- the policy id of thePolicyto copy and set for the Thing when creating it. If its a placeholder it will be resolved to a policy id. Placeholder must be of the syntax:{{ ref:things/<theThingId>/policyId }}.initialPolicy- the initialPolicyto set for the Thing when creating it - may be null.dittoHeaders- the headers of the command.- Returns:
- the command.
- Throws:
NullPointerException- if any argument isnull.PoliciesConflictingException- if the passedinitialPolicyis not null and the passedpolicyIdOrPlaceholderis not null.
-
fromJson
public static ModifyThing fromJson(String jsonString, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Creates a newModifyThingfrom a JSON string.- Parameters:
jsonString- the JSON string of which the command is to be created.dittoHeaders- the headers of the command.- Returns:
- the command.
- Throws:
NullPointerException- ifjsonStringisnull.IllegalArgumentException- ifjsonStringis empty.org.eclipse.ditto.json.JsonParseException- if the passed injsonStringwas not in the expected format.
-
fromJson
public static ModifyThing fromJson(org.eclipse.ditto.json.JsonObject jsonObject, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders) Creates a newModifyThingfrom a JSON object.- Parameters:
jsonObject- the JSON object of which the command is to be created.dittoHeaders- the headers of the command.- Returns:
- the command.
- Throws:
NullPointerException- ifjsonObjectisnull.org.eclipse.ditto.json.JsonParseException- if the passed injsonObjectwas not in the expected format.org.eclipse.ditto.json.JsonMissingFieldException- ifjsonObjectdid not contain a field forThingCommand.JsonFields.JSON_THING_IDorJSON_THING.
-
getThing
Returns theThingto modify.- Returns:
- the Thing to modify.
-
getEntityId
- Specified by:
getEntityIdin interfaceorg.eclipse.ditto.base.model.entity.id.WithEntityId- Specified by:
getEntityIdin interfaceWithThingId
-
getInitialPolicy
- Returns:
- the initial
Policyif there should be one applied when creating the Thing.
-
getPolicyIdOrPlaceholder
- Returns:
- The policy id of the
Policyto copy and set for the Thing when creating it. Could also be a placeholder like: {{ ref:things/theThingId/policyId }}.
-
getResourcePath
public org.eclipse.ditto.json.JsonPointer getResourcePath()- Specified by:
getResourcePathin interfaceorg.eclipse.ditto.base.model.signals.WithResource
-
getEntity
public Optional<org.eclipse.ditto.json.JsonValue> getEntity(org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion) - Specified by:
getEntityin interfaceorg.eclipse.ditto.base.model.signals.WithOptionalEntity<ModifyThing>
-
setEntity
- Specified by:
setEntityin interfaceorg.eclipse.ditto.base.model.signals.WithOptionalEntity<ModifyThing>
-
appendPayload
protected void appendPayload(org.eclipse.ditto.json.JsonObjectBuilder jsonObjectBuilder, org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion, Predicate<org.eclipse.ditto.json.JsonField> thePredicate) - Specified by:
appendPayloadin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
getCategory
public org.eclipse.ditto.base.model.signals.commands.Command.Category getCategory()- Specified by:
getCategoryin interfaceorg.eclipse.ditto.base.model.signals.commands.Command<ModifyThing>
-
setDittoHeaders
- Specified by:
setDittoHeadersin interfaceorg.eclipse.ditto.base.model.signals.commands.Command<ModifyThing>- Specified by:
setDittoHeadersin interfaceorg.eclipse.ditto.base.model.headers.DittoHeadersSettable<ModifyThing>- Specified by:
setDittoHeadersin interfaceThingCommand<ModifyThing>- Specified by:
setDittoHeadersin interfaceThingModifyCommand<ModifyThing>
-
changesAuthorization
public boolean changesAuthorization()Description copied from interface:ThingModifyCommandChecks whether this command may change authorization of the Thing.- Specified by:
changesAuthorizationin interfaceThingModifyCommand<ModifyThing>- Returns:
trueif authorization would change,falseotherwise.
-
hashCode
public int hashCode()- Overrides:
hashCodein classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
equals
- Overrides:
equalsin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
canEqual
- Overrides:
canEqualin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
toString
- Overrides:
toStringin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-