Interface FragmentData
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 thanNumberFormat
-
The conversion of
Calendar
is based on ISO-8601.
- Since:
- 1.1
-
Method Summary
Modifier and TypeMethodDescription@Nullable String
Returns the content type for textbased data types.@NotNull DataType
Gets the data type of the value.@Nullable Calendar
Returns the date the value was last modified.@Nullable String
Returns the user that last modified this resource.@Nullable Object
getValue()
Gets the original value as a generic Java object.<T> T
Gets the value, converted to the provided type.boolean
isTypeSupported
(Class type) Checks if the specified Java data type is supported for calls togetValue(Class)
andsetValue(Object)
.void
setContentType
(@Nullable String contentType) Sets the content type for text-based data types.void
Sets the value.
-
Method Details
-
getDataType
Gets the data type of the value.- Returns:
- The data type
-
getValue
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)
returnstrue
- 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
Checks if the specified Java data type is supported for calls togetValue(Class)
andsetValue(Object)
.- Parameters:
type
- The class object representing the type- Returns:
true
if the type is supported
-
getValue
Gets the original value as a generic Java object.- Returns:
- The value
-
setValue
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 whereisTypeSupported(Class)
returnstrue
needs to be accepted and converted accordingly.Note that for the value to be persisted,
ContentElement.setValue(FragmentData)
orContentVariation.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
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
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
Returns the date the value was last modified.- Returns:
- the last modified date or
null
if not available
-
getLastModifiedBy
Returns the user that last modified this resource.- Returns:
- String containing the name of the user that last modified this resource.
-