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 Things, ThingTemplates, and ThingShapes. 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:
  • Constructor Details

    • 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(String name, 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 name
      description - 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 name
      description - the description
      baseType - 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 name
      baseType - the base type
      aspects - 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 name
      description - the description
      baseType - the base type
      aspects - a collection of aspects belonging to this field
    • FieldDefinition

      @ThingworxExtensionApiMethod(since={6,6}) public FieldDefinition(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 name
      baseType - the base type
  • Method Details

    • 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 Integer getOrdinal()


      Returns the ordinal value assigned to this field.
      Returns:
      the ordinal value
    • setOrdinal

      @ThingworxExtensionApiMethod(since={6,6}) public void setOrdinal(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 Boolean isPrivate()


      Determines if this field has the ASPECT_ISPRIVATE aspect set to true.
      Returns:
      true if this field has the aspect and it is set to true, false otherwise
    • isRequired

      @ThingworxExtensionApiMethod(since={6,6}) public Boolean isRequired()


      Determines if this field has the ASPECT_ISREQUIRED aspect set to true.
      Returns:
      true if this field has the aspect and it is set to true, false otherwise
    • isPrimaryKey

      @ThingworxExtensionApiMethod(since={6,6}) public boolean isPrimaryKey()


      Determines if this field has the ASPECT_ISPRIMARYKEY aspect set to true.
      Returns:
      true if this field has the aspect and it is set to true, 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 the ASPECT_DEFAULTVALUE aspect.
      Returns:
      the default value of this field, or null if none has been defined
    • hasDefaultValue

      @ThingworxExtensionApiMethod(since={6,6}) public boolean hasDefaultValue()


      Determines if this field has a default value according to the ASPECT_DEFAULTVALUE aspect.
      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



      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



      Creates a deep clone of this field definition.
      Overrides:
      clone in class 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 an INFOTABLE, a data shape has been assigned.
      Returns:
      true if the base type is set to INFOTABLE and a value is set to the ASPECT_DATASHAPE aspect
    • isStreamEntry

      @ThingworxExtensionApiMethod(since={6,6}) public boolean isStreamEntry()


      Determines if, when the base type of this field is an INFOTABLE, the contents of the info table will be derived from a stream entry.
      Returns:
      true if the base type is set to INFOTABLE and the ASPECT_ISSTREAMENTRY aspect is set to true
    • isDataTableEntry

      @ThingworxExtensionApiMethod(since={6,6}) public boolean isDataTableEntry()


      Determines if, when the base type of this field is an INFOTABLE, the contents of the info table will be derived from a data table entry.
      Returns:
      true if the base type is set to INFOTABLE and the ASPECT_ISDATATABLEENTRY aspect is set to true
    • 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 to true
    • isContentCrawlerEntry

      @ThingworxExtensionApiMethod(since={8,0}) public boolean isContentCrawlerEntry()


      Determines if, when the base type of this field is an INFOTABLE, the contents of the info table will be derived from a content crawler entry.
      Returns:
      true if the base type is set to INFOTABLE and the ASPECT_ISCONTENTCRAWLERENTRY aspect is set to true
    • getDataShapeName

      @ThingworxExtensionApiMethod(since={6,6}) public String getDataShapeName()


      Returns the data shape name assigned to the ASPECT_DATASHAPE aspect, if the base type for this field is set to INFOTABLE.
      Returns:
      the data shape name assigned to this field if the base type is set to INFOTABLE, or null if no data shape name has been assigned or the base type is not INFOTABLE