Interface DataProvider<T>
- Type Parameters:
T- The type of handled objects.
public interface DataProvider<T>
Provides objects for display within a report plug-in's results list.
Providers must implement functionality to support incremental result lists in order to enable dynamic result loading during continuous scrolling operations:
Providers must implement functionality to support incremental result lists in order to enable dynamic result loading during continuous scrolling operations:
- Whenever the report is first displayed or its filter parameters are
changed by the user (requiring the generation of a completely new result list), a new object of this data provider
class is instantiated; Client will then call
start()first to allow for setup of local fields that will be used in subsequent calls of other methods, e.g.getNext()orisRunning(). - Between filter
configuration changes, the current object instance of this class is persisted; Client will repeatedly call
getNext()andisRunning()in order to obtain incremental batches of result objects and to check if any further results that haven't yet been returned in those incremental batches are available, respectively.
- Since:
- 5.1.19
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closure method; called if the report provider is no longer needed.deserialize(@NotNull String string) Returns the object for the givenidornullif it couldn't be found or is no longer available.getNext(int count) Returns an incremental result set of objects, potentially usingstart()'sparameterinput as a filter configuration to limit the result set to match certain criteria.intgetTotal()Returns the total number of results that are available for display in the report's results list (based on the current filter parameters) or-1if the object-providing process is still running.booleanReturn the running state of this object.@Nullable StringReturns a string identifier for the givenobjectornullif this element has no identifier.voidstart(SpecialistsBroker broker, ParameterMap parameter) Initialization; called before any other methods.
-
Method Details
-
start
Initialization; called before any other methods. Typically used to start the object-providing process when the report is first displayed and when the filter configuration is changed.- Parameters:
broker- Request local specialists brokerparameter- Report parameter values (seeWebeditReportPlugin).- Since:
- 5.1.19
-
getNext
Returns an incremental result set of objects, potentially usingstart()'sparameterinput as a filter configuration to limit the result set to match certain criteria. The list should not contain more than the specifiedcountof entries and not include duplicates of the same object in result lists during repeated calls of this method during the lifetime of this object.- Parameters:
count- The requested count of elements.- Returns:
- A
Listof further objects that the client should include in the report's display. - Since:
- 5.1.19
-
isRunning
boolean isRunning()Return the running state of this object. IfgetNext()has not yet returned all results that are available (based on whichever criteria), the provider should be considered running in order to communicate to the client that more results are available on-demand. If no further results can be returned bygetNext(), the provider should be considered stopped (isRunning()returnsfalse) and remain that way for the remainder of the object's lifetime.- Returns:
trueif this provider is still running and can provide more results; otherwisefalse.- Since:
- 5.1.19
-
getTotal
int getTotal()Returns the total number of results that are available for display in the report's results list (based on the current filter parameters) or-1if the object-providing process is still running.- Returns:
- Total number of elements or
-1while the object-providing process is running. - Since:
- 5.1.19
-
close
void close()Closure method; called if the report provider is no longer needed. Cleans up resources and stops object-providing processes.- Since:
- 5.1.19
-
serialize
Returns a string identifier for the givenobjectornullif this element has no identifier. Note: This method will only be used in the ContentCreator (webclient).- Parameters:
object- to identify.- Returns:
- string identifier or
null. - Since:
- 5.1.19
-
deserialize
Returns the object for the givenidornullif it couldn't be found or is no longer available. Note: This method will only be used in the ContentCreator (webclient).- Parameters:
string- object identifier, previously returned byserialize(Object).- Returns:
- identified object or
null. - Since:
- 5.1.19
-