Package com.thingworx.metadata
Class DataShapeDefinition
java.lang.Object
com.thingworx.types.NamedObject
com.thingworx.metadata.DataShapeDefinition
- All Implemented Interfaces:
IDiffableObject
,INamedObject
,Serializable
,Cloneable
@ThingworxExtensionApiClass(since={6,6},
canInstantiate=true)
public final class DataShapeDefinition
extends NamedObject
implements Cloneable
Used to define fields for all data that is managed within ThingWorx. This includes, but is not limited to, all persisted data, transient
data, and data in transit. DataShapeDefinition
is used in the underpinnings of DataShape
s, InfoTable
s, and
StreamThing
s, as well as numerous other classes both directly and indirectly.
A DataShapeDefinition
is ultimately a wrapper around a FieldDefinitionCollection
with some additional methods for
matching, cloning, and analysis.
- See Also:
-
Field Summary
Fields inherited from class com.thingworx.types.NamedObject
NAME_COMPARATOR
-
Constructor Summary
ConstructorDescription
Constructs a new empty data shape definition.
Constructs a data shape definition containing a predefined collection of fields. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a new field definition to this data shape definition.clone()
Creates a deep clone of this data shape definition.static DataShapeDefinition
fromJSON
(org.json.JSONObject jsonObject) Deprecated.getFieldDefinition
(String name)
Returns the field definition with the specified name.
Returns the collection of field definitions belonging to this data shape definition.boolean
Tests if the field named exists in this definition.boolean
Tests if this definition contains any fields that are designated as primary keys.boolean
Determines if this data shape definition has the same fields with the same base types as the provided data shape definition.void
setFields
(FieldDefinitionCollection fields)
Replaces the fields belonging to this data shape definition with the fields provided in the specified collection.org.json.JSONObject
toJSON()
Deprecated.no replacementMethods inherited from class com.thingworx.types.NamedObject
getDescription, getName, setDescription, setName, toValueCollection
-
Constructor Details
-
DataShapeDefinition
Constructs a new empty data shape definition. -
DataShapeDefinition
@ThingworxExtensionApiMethod(since={6,6}) public DataShapeDefinition(FieldDefinitionCollection fields)
Constructs a data shape definition containing a predefined collection of fields.- Parameters:
fields
- the fields that will belong to this data shape definition
-
-
Method Details
-
hasField
Tests if the field named exists in this definition.- Parameters:
name
- the name of the field- Returns:
true
if the field exists in this definition
-
hasPrimaryKey
Tests if this definition contains any fields that are designated as primary keys.- Returns:
true
if any field belonging to this definition is a primary key,false
if none of the fields are primary keys or no fields exist in this definition
-
addFieldDefinition
Adds a new field definition to this data shape definition.- Parameters:
field
- the field definition to add
-
getFieldDefinition
Returns the field definition with the specified name.- Parameters:
name
- the name of the field to return- Returns:
- the specified field definition, or
null
if the field does not exist
-
getFields
Returns the collection of field definitions belonging to this data shape definition.- Returns:
- the collection of field definitions belonging to this data shape definition
-
setFields
Replaces the fields belonging to this data shape definition with the fields provided in the specified collection.- Parameters:
fields
- the field definitions to assign to this data shape definition
-
clone
Creates a deep clone of this data shape definition. All of the field definitions belonging to this object are also cloned. -
matches
Determines if this data shape definition has the same fields with the same base types as the provided data shape definition.- Parameters:
ds1
- the data shape defintion to compare against this one- Returns:
true
if the data shape definitions have the same fields (ignoring aspects)
-
fromJSON
@Deprecated @ThingworxExtensionApiMethod(since={6,6}, deprecatedSince={8,4}) public static DataShapeDefinition fromJSON(org.json.JSONObject jsonObject) throws Exception Deprecated.
Parses a serialized data shape definition as a JSON object. The JSON object must contain a mapping for the field definitions in order to be valid.- Parameters:
jsonObject
- the JSON object containing the serialized data shape definition- Returns:
- the resultant data shape definition
- Throws:
Exception
- if the contents of the JSON object do not match the expected format
-
toJSON
@Deprecated @ThingworxExtensionApiMethod(since={6,6}, deprecatedSince={8,4}) public org.json.JSONObject toJSON() throws ExceptionDeprecated.no replacement
Serializes this data shape definition into JSON format. The resulting JSON object will contain the full list of field definitions belonging to this data shape definition.- Returns:
- a JSON object describing this data shape definition
- Throws:
Exception
- a JSON exception occurs during serialization
-