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,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 fullThingincluding 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>
-
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 org.eclipse.ditto.json.JsonFieldDefinition<java.lang.String>JSON_COPY_POLICY_FROMJson Field definition for the optional feature to copy an existing policy.static 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.static 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().static org.eclipse.ditto.json.JsonFieldDefinition<java.lang.String>JSON_POLICY_ID_OR_PLACEHOLDERJson Field definition for the optional feature to copy an existing policy.static java.lang.StringNAMEName of the "Modify Thing" command.static java.lang.StringTYPEType of this command.-
Fields inherited from interface org.eclipse.ditto.base.model.signals.commands.Command
TYPE_QUALIFIER
-
Fields inherited from interface org.eclipse.ditto.things.model.signals.commands.ThingCommand
RESOURCE_TYPE, TYPE_PREFIX
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendPayload(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 booleancanEqual(java.lang.Object other)booleanchangesAuthorization()Checks whether this command may change authorization of the Thing.booleanequals(java.lang.Object obj)static ModifyThingfromJson(java.lang.String jsonString, org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)Creates 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.CategorygetCategory()java.util.Optional<org.eclipse.ditto.json.JsonValue>getEntity(org.eclipse.ditto.base.model.json.JsonSchemaVersion schemaVersion)ThingIdgetEntityId()java.util.Optional<org.eclipse.ditto.json.JsonObject>getInitialPolicy()java.util.Optional<java.lang.String>getPolicyIdOrPlaceholder()org.eclipse.ditto.json.JsonPointergetResourcePath()ThinggetThing()Returns theThingto modify.inthashCode()static ModifyThingof(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 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.ModifyThingsetDittoHeaders(org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)java.lang.StringtoString()static ModifyThingwithCopiedPolicy(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.things.model.signals.commands.ThingCommand
getEntityType, getResourceType, getTypePrefix
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
Name of the "Modify Thing" command.- See Also:
- Constant Field Values
-
TYPE
public static final java.lang.String TYPE
Type of this 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- 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:
java.lang.NullPointerException- if any argument isnull.
-
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- 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:
java.lang.NullPointerException- if any argument isnull.
-
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- 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:
java.lang.NullPointerException- if any argument isnull.PoliciesConflictingException- if the passedinitialPolicyis not null and the passedpolicyIdOrPlaceholderis not null.
-
fromJson
public static ModifyThing fromJson(java.lang.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:
java.lang.NullPointerException- ifjsonStringisnull.java.lang.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:
java.lang.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
public Thing getThing()
Returns theThingto modify.- Returns:
- the Thing to modify.
-
getEntityId
public ThingId getEntityId()
- Specified by:
getEntityIdin interfaceorg.eclipse.ditto.base.model.entity.id.WithEntityId- Specified by:
getEntityIdin interfaceWithThingId
-
getInitialPolicy
public java.util.Optional<org.eclipse.ditto.json.JsonObject> getInitialPolicy()
- Returns:
- the initial
Policyif there should be one applied when creating the Thing.
-
getPolicyIdOrPlaceholder
public java.util.Optional<java.lang.String> 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 java.util.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
-
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:
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
public ModifyThing setDittoHeaders(org.eclipse.ditto.base.model.headers.DittoHeaders dittoHeaders)
- 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
public boolean equals(@Nullable java.lang.Object obj)- Overrides:
equalsin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
canEqual
protected boolean canEqual(@Nullable java.lang.Object other)- Overrides:
canEqualin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classorg.eclipse.ditto.base.model.signals.commands.AbstractCommand<ModifyThing>
-
-