Class 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, 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 java.lang.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 java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.eclipse.ditto.json.JsonFieldDefinition<java.lang.String> JSON_COPY_POLICY_FROM
      Json Field definition for the optional feature to copy an existing policy.
      static 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.
      static 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().
      static org.eclipse.ditto.json.JsonFieldDefinition<java.lang.String> JSON_POLICY_ID_OR_PLACEHOLDER
      Json Field definition for the optional feature to copy an existing policy.
      static java.lang.String NAME
      Name of the "Modify Thing" command.
      static java.lang.String TYPE
      Type of this command.
      • Fields inherited from interface org.eclipse.ditto.base.model.signals.commands.Command

        TYPE_QUALIFIER
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void appendPayload​(org.eclipse.ditto.json.JsonObjectBuilder jsonObjectBuilder, org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion, java.util.function.Predicate<org.eclipse.ditto.json.JsonField> thePredicate)  
      protected boolean canEqual​(java.lang.Object other)  
      boolean changesAuthorization()
      Checks whether this command may change authorization of the Thing.
      boolean equals​(java.lang.Object obj)  
      static ModifyThing fromJson​(java.lang.String jsonString, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
      Creates a new ModifyThing from a JSON string.
      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.
      org.eclipse.ditto.base.model.signals.commands.Command.Category getCategory()  
      java.util.Optional<org.eclipse.ditto.json.JsonValue> getEntity​(org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion)  
      ThingId getEntityId()  
      java.util.Optional<org.eclipse.ditto.json.JsonObject> getInitialPolicy()  
      java.util.Optional<java.lang.String> getPolicyIdOrPlaceholder()  
      org.eclipse.ditto.json.JsonPointer getResourcePath()  
      Thing getThing()
      Returns the Thing to modify.
      int hashCode()  
      static ModifyThing of​(ThingId thingId, Thing thing, org.eclipse.ditto.json.JsonObject initialPolicy, java.lang.String policyIdOrPlaceholder, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
      Returns a command for modifying a thing which is passed as argument.
      static ModifyThing 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.
      ModifyThing setDittoHeaders​(org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)  
      java.lang.String toString()  
      static ModifyThing withCopiedPolicy​(ThingId thingId, Thing thing, java.lang.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.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 Detail

      • NAME

        public static final java.lang.String NAME
        Name of the "Modify Thing" command.
        See Also:
        Constant Field Values
      • 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<java.lang.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<java.lang.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 Detail

      • 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:
        java.lang.NullPointerException - if any argument is null.
      • withCopiedPolicy

        public static ModifyThing withCopiedPolicy​(ThingId thingId,
                                                   Thing thing,
                                                   java.lang.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:
        java.lang.NullPointerException - if any argument is null.
      • of

        public static ModifyThing of​(ThingId thingId,
                                     Thing thing,
                                     @Nullable
                                     org.eclipse.ditto.json.JsonObject initialPolicy,
                                     @Nullable
                                     java.lang.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:
        java.lang.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​(java.lang.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:
        java.lang.NullPointerException - if jsonString is null.
        java.lang.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:
        java.lang.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 java.util.Optional<org.eclipse.ditto.json.JsonObject> getInitialPolicy()
        Returns:
        the initial Policy if there should be one applied when creating the Thing.
      • getPolicyIdOrPlaceholder

        public java.util.Optional<java.lang.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 java.util.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
      • appendPayload

        protected void appendPayload​(org.eclipse.ditto.json.JsonObjectBuilder jsonObjectBuilder,
                                     org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion,
                                     java.util.function.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>
      • hashCode

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

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

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

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