Package com.thingworx.metadata
Class FieldDefinition
java.lang.Object
com.thingworx.types.NamedObject
com.thingworx.metadata.FieldDefinition
- All Implemented Interfaces:
IDiffableObject
,IAspectContainer
,INamedObject
,Serializable
,Cloneable
- Direct Known Subclasses:
PropertyDefinition
@ThingworxExtensionApiClass(since={6,6},
canInstantiate=true)
public class FieldDefinition
extends NamedObject
implements IAspectContainer, Cloneable
A definition for a data field. Fields are used primarily as the storage mechanism in DataShapeDefinition
, analogous to
PropertyDefinition
in Thing
s, ThingTemplate
s, and ThingShape
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 the Aspects
class.
- See Also:
-
Field Summary
Fields inherited from class com.thingworx.types.NamedObject
NAME_COMPARATOR
-
Constructor Summary
ConstructorDescription
Constructs a new unnamed field definition with the default base type of STRING.FieldDefinition
(String name, BaseTypes baseType)
Constructs a new field definition with the specified name and base type.FieldDefinition
(String name, BaseTypes baseType, AspectCollection aspects)
Constructs a new field definition with the specified name, base type, and aspects.FieldDefinition
(String name, String description)
Constructs a new field definition with the specified name and description.FieldDefinition
(String name, String description, BaseTypes baseType)
Constructs a new field definition with the specified name, description, and base type.FieldDefinition
(String name, String description, BaseTypes baseType, AspectCollection aspects)
Constructs a new field definition with the specified name, description, base type, and aspects. -
Method Summary
Modifier and TypeMethodDescriptionboolean
aspectsMatch
(AspectCollection aspects)
Determines whether or not the aspects assigned to this field are equivalent to the aspects in the provided collection.clone()
Creates a deep clone of this field definition.
Returns the collection of aspects belonging to this field.
Returns the base type assigned to this field definition.
Returns the data shape name assigned to theASPECT_DATASHAPE
aspect, if the base type for this field is set toINFOTABLE
.
Returns the default value assigned to this field, if one has been defined according to theASPECT_DEFAULTVALUE
aspect.
Returns the ordinal value assigned to this field.boolean
Determines if, when the base type of this field is anINFOTABLE
, a data shape has been assigned.boolean
boolean
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
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
boolean
Determines if, the service parameter is marked as a query parameterboolean
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
(Integer ordinal)
Sets the ordinal value for this field.Methods inherited from class com.thingworx.types.NamedObject
getDescription, getName, setDescription, setName, toValueCollection
-
Constructor Details
-
FieldDefinition
Constructs a new unnamed field definition with the default base type of STRING. -
FieldDefinition
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(String name, 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(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(String name, 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
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 Details
-
getBaseType
Returns the base type assigned to this field definition.- Returns:
- this field definition's base type
-
setBaseType
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
Returns the ordinal value assigned to this field.- Returns:
- the ordinal value
-
setOrdinal
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
- Returns:
true
if this field has the aspect and it is set totrue
,false
otherwise
-
isRequired
- Returns:
true
if this field has the aspect and it is set totrue
,false
otherwise
-
isPrimaryKey
- Returns:
true
if this field has the aspect and it is set totrue
,false
otherwise
-
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
- Returns:
true
if this field has a default value
-
setAspects
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
Returns the collection of aspects belonging to this field.- Returns:
- this field's collection of aspects
-
aspectsMatch
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
Creates a deep clone of this field definition. -
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
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
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
Determines if, the service parameter is marked as a query parameter- Returns:
true
ASPECT_ISQUERYPARAMETER
aspect is set totrue
-
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
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
-