public interface ValueFunction
The specific function must be declared under the element
xs:annotation/xs:appinfo
(see Computed Values):
where<osd:function class="com.foo.MyFunction"/>
com.foo.MyFunction
is the fully qualified name of the class implementing
this interface. It is also possible to set additional JavaBean properties:
where<osd:function class="com.foo.MyFunction"> <param1>...</param1> <param2>...</param2> </osd:function>
param1
and param2
are JavaBean properties of the class specified.
For more information, see the JavaBean specification.
setParam1(...)
and
setParam2(...)
);setup(ValueFunctionContext)
is called on the new instance.getValue(Adaptation)
is called each time this is needed (for example when the record is
displayed or exported).
See getValue(Adaptation)
.
Modifier and Type | Method and Description |
---|---|
Object |
getValue(Adaptation aDataSetOrRecord)
Returns the value in the context of the specified record or dataset.
|
void |
setup(ValueFunctionContext aContext)
This method is called when the data model is loaded, for checking that this function is consistent
with the data model that defines it.
|
Object getValue(Adaptation aDataSetOrRecord)
The value returned must conform to the associated data model declaration (that is, the type, cardinality, facets).
If the function is attached to a table with N records, some operations will call this method N times. This is the case for:
ExportSpec.setIncludesComputedValues(boolean)
will deactivate the call to the function);osd:disableValidation = "true"
.
Thus, for a table with large volumes of records, it may be necessary to optimize the implementation (for example, by caching). See also performance guidelines chapter.
For a single instance of this interface, this method may be called concurrently by several threads.
ValueAccessException
void setup(ValueFunctionContext aContext)