Interface FragmentData


public interface FragmentData
Represents a piece of content (or data) provided by a content fragment.

In general, FragmentData works as a wrapper around a (generic) Java object that represents the actual value. This avoids using Object in the API and also allows to provide helper functionality to access the generic value in a controlled way.

Values are typed. For more information about data types, see DataType.

Values of a given type - represented by an Object wrapped by FragmentData - may need to be converted to the needs of the client. Basically, getValue(Class) supports to convert each value to a String (and back).

For the conversion to a String the following rules are followed:

  • The conversion of numbers is technical, i.e. based on Xxxx.toString()/Xxx.parseXxx rather than NumberFormat
  • The conversion of Calendar is based on ISO-8601.
Since:
1.1
  • Method Details

    • getDataType

      @NotNull @NotNull DataType getDataType()
      Gets the data type of the value.
      Returns:
      The data type
    • getValue

      @Nullable <T> T getValue(Class<T> type)
      Gets the value, converted to the provided type.

      For information about supported type conversions: see DataType.

      Note that this method is supposed to return a suitably converted value for all types where isTypeSupported(Class) returns true

      Type Parameters:
      T - Describes the type parameter
      Parameters:
      type - The type the value should be converted to
      Returns:
      The value; null if the value could not be converted to the provided type
    • isTypeSupported

      boolean isTypeSupported(Class type)
      Checks if the specified Java data type is supported for calls to getValue(Class) and setValue(Object).
      Parameters:
      type - The class object representing the type
      Returns:
      true if the type is supported
    • getValue

      @Nullable @Nullable Object getValue()
      Gets the original value as a generic Java object.
      Returns:
      The value
    • setValue

      void setValue(@Nullable @Nullable Object value) throws ContentFragmentException
      Sets the value.

      The general rule is that a non-null value that was retrieved using getValue(Class) needs to be accepted and converted to a suitable original value. Also, every value of a type where isTypeSupported(Class) returns true needs to be accepted and converted accordingly.

      Note that for the value to be persisted, ContentElement.setValue(FragmentData) or ContentVariation.setValue(FragmentData) have to be called explicitly. This allows for manipulating the value multiple times before actually persisting it.

      Parameters:
      value - The value
      Throws:
      ContentFragmentException - if the type of the value provided is unsupported
    • getContentType

      @Nullable @Nullable String getContentType()
      Returns the content type for textbased data types.

      This will return a MIME type only when applicable. For numbers, dates, booleans, it will typically be null.

      Returns:
      The content type; null if not applicable
    • setContentType

      void setContentType(@Nullable @Nullable String contentType)
      Sets the content type for text-based data types.

      For data other than text-based types null should be provided.

      Parameters:
      contentType - The content type; null if not applicable
    • getLastModified

      @Nullable @Nullable Calendar getLastModified()
      Returns the date the value was last modified.
      Returns:
      the last modified date or null if not available
    • getLastModifiedBy

      @Nullable @Nullable String getLastModifiedBy()
      Returns the user that last modified this resource.
      Returns:
      String containing the name of the user that last modified this resource.