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.JsonFields

    Nested 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

    Fields
    Modifier and Type
    Field
    Description
    static 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 String
    Name of the "Modify Thing" command.
    static final String
    Type of this command.

    Fields inherited from interface org.eclipse.ditto.base.model.signals.commands.Command

    TYPE_QUALIFIER

    Fields inherited from interface org.eclipse.ditto.base.model.signals.Signal

    CHANNEL_LIVE, CHANNEL_TWIN

    Fields inherited from interface org.eclipse.ditto.things.model.signals.commands.ThingCommand

    RESOURCE_TYPE, TYPE_PREFIX

    Fields 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 Type
    Method
    Description
    protected void
    appendPayload(org.eclipse.ditto.json.JsonObjectBuilder jsonObjectBuilder, org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion, Predicate<org.eclipse.ditto.json.JsonField> thePredicate)
     
    protected boolean
     
    boolean
    Checks whether this command may change authorization of the Thing.
    boolean
     
    fromJson(String jsonString, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
    Creates a new ModifyThing from a JSON string.
    fromJson(org.eclipse.ditto.json.JsonObject jsonObject, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
    Creates a new ModifyThing from a JSON object.
    org.eclipse.ditto.base.model.signals.commands.Command.Category
     
    Optional<org.eclipse.ditto.json.JsonValue>
    getEntity(org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion)
     
     
    Optional<org.eclipse.ditto.json.JsonObject>
     
     
    org.eclipse.ditto.json.JsonPointer
     
    Returns the Thing to modify.
    int
     
    of(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.
    of(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)
     
     
    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.

    Methods inherited from class org.eclipse.ditto.base.model.signals.commands.AbstractCommand

    getDittoHeaders, getManifest, getType, toJson

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.eclipse.ditto.base.model.signals.commands.Command

    getImplementedSchemaVersion, toJson, toJson

    Methods inherited from interface org.eclipse.ditto.base.model.json.Jsonifiable

    getLatestSchemaVersion, getSupportedSchemaVersions, implementsSchemaVersion, implementsSchemaVersion, toJsonString

    Methods inherited from interface org.eclipse.ditto.base.model.json.Jsonifiable.WithPredicate

    toJson, toJsonString, toJsonString

    Methods inherited from interface org.eclipse.ditto.base.model.signals.Signal

    getName

    Methods inherited from interface org.eclipse.ditto.things.model.signals.commands.ThingCommand

    getEntityType, getResourceType, getTypePrefix

    Methods inherited from interface org.eclipse.ditto.base.model.headers.WithDittoHeaders

    getDittoHeaders

    Methods inherited from interface org.eclipse.ditto.base.model.headers.WithManifest

    getManifest

    Methods inherited from interface org.eclipse.ditto.base.model.signals.WithOptionalEntity

    getEntity

    Methods inherited from interface org.eclipse.ditto.base.model.signals.WithType

    getType
  • Field Details

    • NAME

      public static final String NAME
      Name of the "Modify Thing" command.
      See Also:
    • TYPE

      public static final String 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_POLICY
      Json 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_PLACEHOLDER
      Json Field definition for the optional feature to copy an existing policy.
    • JSON_COPY_POLICY_FROM

      public static final org.eclipse.ditto.json.JsonFieldDefinition<String> 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_POLICY
      Json 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 - the Thing to modify.
      initialPolicy - the initial Policy to set for the Thing when creating it - may be null.
      dittoHeaders - the headers of the command.
      Returns:
      the command.
      Throws:
      NullPointerException - if any argument is null.
    • 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 - the Thing to modify.
      policyIdOrPlaceholder - the policy id of the Policy to 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 is null.
    • 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 - the Thing to modify.
      policyIdOrPlaceholder - the policy id of the Policy to 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 initial Policy to set for the Thing when creating it - may be null.
      dittoHeaders - the headers of the command.
      Returns:
      the command.
      Throws:
      NullPointerException - if any argument is null.
      PoliciesConflictingException - if the passed initialPolicy is not null and the passed policyIdOrPlaceholder is not null.
    • fromJson

      public static ModifyThing fromJson(String jsonString, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
      Creates a new ModifyThing from 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 - if jsonString is null.
      IllegalArgumentException - if jsonString is empty.
      org.eclipse.ditto.json.JsonParseException - if the passed in jsonString was 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 new ModifyThing from 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 - if jsonObject is null.
      org.eclipse.ditto.json.JsonParseException - if the passed in jsonObject was not in the expected format.
      org.eclipse.ditto.json.JsonMissingFieldException - if jsonObject did not contain a field for ThingCommand.JsonFields.JSON_THING_ID or JSON_THING.
    • getThing

      public Thing getThing()
      Returns the Thing to modify.
      Returns:
      the Thing to modify.
    • getEntityId

      public ThingId getEntityId()
      Specified by:
      getEntityId in interface org.eclipse.ditto.base.model.entity.id.WithEntityId
      Specified by:
      getEntityId in interface WithThingId
    • getInitialPolicy

      public Optional<org.eclipse.ditto.json.JsonObject> getInitialPolicy()
      Returns:
      the initial Policy if there should be one applied when creating the Thing.
    • getPolicyIdOrPlaceholder

      public Optional<String> getPolicyIdOrPlaceholder()
      Returns:
      The policy id of the Policy to 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:
      getResourcePath in interface org.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:
      getEntity in interface org.eclipse.ditto.base.model.signals.WithOptionalEntity<ModifyThing>
    • setEntity

      public ModifyThing setEntity(org.eclipse.ditto.json.JsonValue entity)
      Specified by:
      setEntity in interface org.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:
      appendPayload in class org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
    • getCategory

      public org.eclipse.ditto.base.model.signals.commands.Command.Category getCategory()
      Specified by:
      getCategory in interface org.eclipse.ditto.base.model.signals.commands.Command<ModifyThing>
    • setDittoHeaders

      public ModifyThing setDittoHeaders(org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
      Specified by:
      setDittoHeaders in interface org.eclipse.ditto.base.model.signals.commands.Command<ModifyThing>
      Specified by:
      setDittoHeaders in interface org.eclipse.ditto.base.model.headers.DittoHeadersSettable<ModifyThing>
      Specified by:
      setDittoHeaders in interface ThingCommand<ModifyThing>
      Specified by:
      setDittoHeaders in interface ThingModifyCommand<ModifyThing>
    • changesAuthorization

      public boolean changesAuthorization()
      Description copied from interface: ThingModifyCommand
      Checks whether this command may change authorization of the Thing.
      Specified by:
      changesAuthorization in interface ThingModifyCommand<ModifyThing>
      Returns:
      true if authorization would change, false otherwise.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
    • canEqual

      protected boolean canEqual(@Nullable Object other)
      Overrides:
      canEqual in class org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
    • toString

      public String toString()
      Overrides:
      toString in class org.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>