com.isomorphic.datasource

## Class DSField

- com.isomorphic.datasource.DSField

-     public class DSField

  Server-side representation of a DataSource Field.

  Contains accessors for all documented DataSource properties and a general getProperty() API for retrieving your own properties for custom DataSource implementations.

  See Also:
    Serialized Form

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getBeanPropertyName()` Returns property name for this field: Returns `valueXPath` if specified.
    `java.lang.String` | `getForeignKey()` Returns the foreign key, if set.
    `java.lang.String` | `getIncludeFrom()` Returns value for "includeFrom" property of this field if set, `null` otherwise
    `java.lang.Long` | `getLength()` Returns the length of this field, if specified.
    `java.lang.String` | `getName()` Returns the name of this field.
    `java.lang.String` | `getProperty(java.lang.String property)` For an XML DataSource, returns the value of the specified attribute as a string.
    `java.lang.String` | `getTitle()` Returns the title of this field, if any.
    `java.lang.String` | `getType()` Returns the type of this field.
    `java.util.List` | `getValidators()` Returns the List of Validators defined on this DSField
    `java.lang.String` | `getValueWriteXPath()` For an XML DataSource, returns the XPath expression used as alternative way to set the field value.
    `java.lang.String` | `getValueXPath()` For an XML DataSource, returns the XPath expression used to retrieve the field value.
    `boolean` | `isAutoGenerated()` Returns true if this field value is auto-generated by data base or ORM provider, false otherwise.
    `boolean` | `isInapplicable()` Returns the value of this field's "inapplicable" property (default false)
    `boolean` | `isPrimaryKey()` Returns true if this field is a primary key, false otherwise.
    `boolean` | `isRequired()` Returns true if this field is required, false otherwise.
    `boolean` | `shouldEncodeInResponse()` Returns true if this is a field of binary type that also has "encodeInResponse" set

- - ### Method Detail

    - #### getName

          public java.lang.String getName()

      Returns the name of this field.
      Returns:
        the name of this field

    - #### isRequired

          public boolean isRequired()

      Returns true if this field is required, false otherwise.
      Returns:
        true if this field is required, false otherwise

    - #### getType

          public java.lang.String getType()

      Returns the type of this field.

      Valid values include (please see the client-side documentation for details of what these types mean):

      - text
      - boolean
      - integer
      - float
      - date
      - datetime
      - time
      - enum
      - intEnum
      - sequence
      - link
      - image
      - binary
      - imageFile
      - modifier
      - modifierTimestamp
      - creator
      - creatorTimestamp
      Note that user-defined types are also possible. Please see the client-side documentation for the SimpleType class.
      Returns:
        the type of this field

    - #### getLength

          public java.lang.Long getLength()

      Returns the length of this field, if specified.
      Returns:
        the length of this field, if specified

    - #### getTitle

          public java.lang.String getTitle()

      Returns the title of this field, if any. Note that the title may not really be a String; it is possible that it may be a LocaleMessage instead. In this case, the returned value is a String describing the key and value of the LocaleMessage
      Returns:
        the title of this field, if any

    - #### isPrimaryKey

          public boolean isPrimaryKey()

      Returns true if this field is a primary key, false otherwise.
      Returns:
        true if this field is a primary key, false otherwise

    - #### isAutoGenerated

          public boolean isAutoGenerated()

      Returns true if this field value is auto-generated by data base or ORM provider, false otherwise. Field is auto-generated if either field type is "sequence" or "autoGenerated" property is set to true.
      Returns:
        true if this field is auto-generated, false otherwise

    - #### getForeignKey

          public java.lang.String getForeignKey()

      Returns the foreign key, if set.

      If set, declares that this field holds values that can be matched to values from another DataSource field, to create a relationship between records from different DataSources or even records within the same DataSource.

      The format of the foreign key is `<dataSourceId>.<fieldName>`.

      Returns:
        the foreign key, if set

    - #### getValueXPath

          public java.lang.String getValueXPath()

      For an XML DataSource, returns the XPath expression used to retrieve the field value. This expression will be evaluated relative to the record element.
      Returns:
        the XPath expression

    - #### getValueWriteXPath

          public java.lang.String getValueWriteXPath()

      For an XML DataSource, returns the XPath expression used as alternative way to set the field value. This expression will be evaluated relative to the record element.
      Returns:
        the XPath expression

    - #### getProperty

          public java.lang.String getProperty(java.lang.String property)

      For an XML DataSource, returns the value of the specified attribute as a string.
      Parameters:
        `property` - the name of the attribute
      Returns:
        the value of the specified attribute as a string

    - #### getValidators

          public java.util.List getValidators()

      Returns the List of Validators defined on this DSField
      Returns:
        the List of Validators defined on this DSField

    - #### getIncludeFrom

          public java.lang.String getIncludeFrom()

      Returns value for "includeFrom" property of this field if set, `null` otherwise

    - #### getBeanPropertyName

          public java.lang.String getBeanPropertyName()

      Returns property name for this field:
      - Returns `valueXPath` if specified. Supports only simple XPath definitions: "property/subProperty/subSubProperty". If XPath starts with slash ('/') - it is trimmed. Replaces slashes ('/') with periods ('.').
      - For simple properties property name matches field name.
      Parameters:
        `fieldName` - `String` Data source filed name.
      Returns:
        `String` bean property name. Can be composed of subproperties (for example: "address.zipCode").

    - #### shouldEncodeInResponse

          public boolean shouldEncodeInResponse()

      Returns true if this is a field of binary type that also has "encodeInResponse" set

    - #### isInapplicable

          public boolean isInapplicable()

      Returns the value of this field's "inapplicable" property (default false)