Package com.thingworx.metadata
Class FieldDefinition
- java.lang.Object
-
- com.thingworx.types.NamedObject
-
- com.thingworx.metadata.FieldDefinition
-
- All Implemented Interfaces:
IDiffableObject
,IAspectContainer
,INamedObject
,java.io.Serializable
,java.lang.Cloneable
- Direct Known Subclasses:
PropertyDefinition
@ThingworxExtensionApiClass(since={6,6}, canInstantiate=true) public class FieldDefinition extends NamedObject implements IAspectContainer, java.lang.Cloneable
A definition for a data field. Fields are used primarily as the storage mechanism in
DataShapeDefinition
, analogous toPropertyDefinition
inThing
s,ThingTemplate
s, andThingShape
s. Fields are also used in services for defining the input parameters and the result.Field definitions can be organized according to ordinality and assigned special behavioral properties called "aspects". An aspect is a key-value pair where the value conforms to one of the primitives in the
BaseTypes
enumeration. The aspects that can be assigned to a field definition are defined in theAspects
class.
-
-
Field Summary
-
Fields inherited from class com.thingworx.types.NamedObject
NAME_COMPARATOR
-
-
Constructor Summary
Constructors Constructor Description FieldDefinition()
Constructs a new unnamed field definition with the default base type of STRING.FieldDefinition(java.lang.String name, BaseTypes baseType)
Constructs a new field definition with the specified name and base type.FieldDefinition(java.lang.String name, BaseTypes baseType, AspectCollection aspects)
Constructs a new field definition with the specified name, base type, and aspects.FieldDefinition(java.lang.String name, java.lang.String description)
Constructs a new field definition with the specified name and description.FieldDefinition(java.lang.String name, java.lang.String description, BaseTypes baseType)
Constructs a new field definition with the specified name, description, and base type.FieldDefinition(java.lang.String name, java.lang.String description, BaseTypes baseType, AspectCollection aspects)
Constructs a new field definition with the specified name, description, base type, and aspects.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
aspectsMatch(AspectCollection aspects)
Determines whether or not the aspects assigned to this field are equivalent to the aspects in the provided collection.FieldDefinition
clone()
Creates a deep clone of this field definition.AspectCollection
getAspects()
Returns the collection of aspects belonging to this field.BaseTypes
getBaseType()
Returns the base type assigned to this field definition.java.lang.String
getDataShapeName()
Returns the data shape name assigned to theASPECT_DATASHAPE
aspect, if the base type for this field is set toINFOTABLE
.IPrimitiveType
getDefaultValue()
Returns the default value assigned to this field, if one has been defined according to theASPECT_DEFAULTVALUE
aspect.java.lang.Integer
getOrdinal()
Returns the ordinal value assigned to this field.boolean
hasDataShape()
Determines if, when the base type of this field is anINFOTABLE
, a data shape has been assigned.boolean
hasDefaultValue()
boolean
isContentCrawlerEntry()
Determines if, when the base type of this field is anINFOTABLE
, the contents of the info table will be derived from a content crawler entry.boolean
isDataTableEntry()
Determines if, when the base type of this field is anINFOTABLE
, the contents of the info table will be derived from a data table entry.boolean
isPrimaryKey()
java.lang.Boolean
isPrivate()
boolean
isQueryParameter()
Determines if, the service parameter is marked as a query parameterjava.lang.Boolean
isRequired()
boolean
isStreamEntry()
Determines if, when the base type of this field is anINFOTABLE
, the contents of the info table will be derived from a stream entry.void
setAspects(AspectCollection value)
Replaces all aspects on this field with the aspects in the specified collection.void
setBaseType(BaseTypes baseType)
Assigns the specified base type to this field.void
setOrdinal(java.lang.Integer ordinal)
Sets the ordinal value for this field.-
Methods inherited from class com.thingworx.types.NamedObject
getDescription, getName, setDescription, setName, toValueCollection
-
-
-
-
Constructor Detail
-
FieldDefinition
@ThingworxExtensionApiMethod(since={6,6}) public FieldDefinition()
Constructs a new unnamed field definition with the default base type of STRING.
-
FieldDefinition
@ThingworxExtensionApiMethod(since={6,6}) public FieldDefinition(java.lang.String name, java.lang.String description)
Constructs a new field definition with the specified name and description. The base type will be set to the default of STRING.- Parameters:
name
- the namedescription
- the description
-
FieldDefinition
@ThingworxExtensionApiMethod(since={6,6}) public FieldDefinition(java.lang.String name, java.lang.String description, BaseTypes baseType)
Constructs a new field definition with the specified name, description, and base type. If the supplied base type is null, the default of STRING will be used.- Parameters:
name
- the namedescription
- the descriptionbaseType
- the base type
-
FieldDefinition
@ThingworxExtensionApiMethod(since={7,1}) public FieldDefinition(java.lang.String name, BaseTypes baseType, AspectCollection aspects)
Constructs a new field definition with the specified name, base type, and aspects. If the supplied base type is null, the default of STRING will be used.- Parameters:
name
- the namebaseType
- the base typeaspects
- a collection of aspects belonging to this field
-
FieldDefinition
@ThingworxExtensionApiMethod(since={7,1}) public FieldDefinition(java.lang.String name, java.lang.String description, BaseTypes baseType, AspectCollection aspects)
Constructs a new field definition with the specified name, description, base type, and aspects. If the supplied base type is null, the default of STRING will be used.- Parameters:
name
- the namedescription
- the descriptionbaseType
- the base typeaspects
- a collection of aspects belonging to this field
-
FieldDefinition
@ThingworxExtensionApiMethod(since={6,6}) public FieldDefinition(java.lang.String name, BaseTypes baseType)
Constructs a new field definition with the specified name and base type. If the supplied base type is null, the default of STRING will be used.- Parameters:
name
- the namebaseType
- the base type
-
-
Method Detail
-
getBaseType
@ThingworxExtensionApiMethod(since={6,6}) public BaseTypes getBaseType()
Returns the base type assigned to this field definition.- Returns:
- this field definition's base type
-
setBaseType
@ThingworxExtensionApiMethod(since={6,6}) public void setBaseType(BaseTypes baseType)
Assigns the specified base type to this field. Any persisted data that refers to this field may not be accessible if the base type is changed to an incompatible type. If the supplied value is null, this will perform a no-op.- Parameters:
baseType
- the base type to assign to this field
-
getOrdinal
@ThingworxExtensionApiMethod(since={6,6}) public java.lang.Integer getOrdinal()
Returns the ordinal value assigned to this field.- Returns:
- the ordinal value
-
setOrdinal
@ThingworxExtensionApiMethod(since={6,6}) public void setOrdinal(java.lang.Integer ordinal)
Sets the ordinal value for this field. If the supplied value is null, this will perform a no-op.- Parameters:
ordinal
- the new ordinal value
-
isPrivate
@ThingworxExtensionApiMethod(since={6,6}) public java.lang.Boolean isPrivate()
- Returns:
true
if this field has the aspect and it is set totrue
,false
otherwise
-
isRequired
@ThingworxExtensionApiMethod(since={6,6}) public java.lang.Boolean isRequired()
- Returns:
true
if this field has the aspect and it is set totrue
,false
otherwise
-
isPrimaryKey
@ThingworxExtensionApiMethod(since={6,6}) public boolean isPrimaryKey()
- Returns:
true
if this field has the aspect and it is set totrue
,false
otherwise
-
getDefaultValue
@ThingworxExtensionApiMethod(since={6,6}) public IPrimitiveType getDefaultValue()
Returns the default value assigned to this field, if one has been defined according to theASPECT_DEFAULTVALUE
aspect.- Returns:
- the default value of this field, or
null
if none has been defined
-
hasDefaultValue
@ThingworxExtensionApiMethod(since={6,6}) public boolean hasDefaultValue()
- Returns:
true
if this field has a default value
-
setAspects
@ThingworxExtensionApiMethod(since={6,6}) public void setAspects(AspectCollection value)
Replaces all aspects on this field with the aspects in the specified collection.- Parameters:
value
- the aspects that will be assigned to this field
-
getAspects
@ThingworxExtensionApiMethod(since={6,6}) public AspectCollection getAspects()
Returns the collection of aspects belonging to this field.- Returns:
- this field's collection of aspects
-
aspectsMatch
@ThingworxExtensionApiMethod(since={6,6}) public boolean aspectsMatch(AspectCollection aspects)
Determines whether or not the aspects assigned to this field are equivalent to the aspects in the provided collection.- Parameters:
aspects
- a collection of aspects to compare against- Returns:
true
if the aspects are equivalent
-
clone
@ThingworxExtensionApiMethod(since={6,6}) public FieldDefinition clone()
Creates a deep clone of this field definition.- Overrides:
clone
in classjava.lang.Object
- Returns:
- a clone of this field definition
-
hasDataShape
@ThingworxExtensionApiMethod(since={6,6}) public boolean hasDataShape()
Determines if, when the base type of this field is anINFOTABLE
, a data shape has been assigned.- Returns:
true
if the base type is set toINFOTABLE
and a value is set to theASPECT_DATASHAPE
aspect
-
isStreamEntry
@ThingworxExtensionApiMethod(since={6,6}) public boolean isStreamEntry()
Determines if, when the base type of this field is anINFOTABLE
, the contents of the info table will be derived from a stream entry.- Returns:
true
if the base type is set toINFOTABLE
and theASPECT_ISSTREAMENTRY
aspect is set totrue
-
isDataTableEntry
@ThingworxExtensionApiMethod(since={6,6}) public boolean isDataTableEntry()
Determines if, when the base type of this field is anINFOTABLE
, the contents of the info table will be derived from a data table entry.- Returns:
true
if the base type is set toINFOTABLE
and theASPECT_ISDATATABLEENTRY
aspect is set totrue
-
isQueryParameter
@ThingworxExtensionApiMethod(since={8,3}) public boolean isQueryParameter()
Determines if, the service parameter is marked as a query parameter- Returns:
true
ASPECT_ISQUERYPARAMETER
aspect is set totrue
-
isContentCrawlerEntry
@ThingworxExtensionApiMethod(since={8,0}) public boolean isContentCrawlerEntry()
Determines if, when the base type of this field is anINFOTABLE
, the contents of the info table will be derived from a content crawler entry.- Returns:
true
if the base type is set toINFOTABLE
and theASPECT_ISCONTENTCRAWLERENTRY
aspect is set totrue
-
getDataShapeName
@ThingworxExtensionApiMethod(since={6,6}) public java.lang.String getDataShapeName()
Returns the data shape name assigned to theASPECT_DATASHAPE
aspect, if the base type for this field is set toINFOTABLE
.- Returns:
- the data shape name assigned to this field if the base type is set to
INFOTABLE
, ornull
if no data shape name has been assigned or the base type is notINFOTABLE
-
-