- Since:
- 4.2.0
Methods
-
containsKeys(parameters) → {Promise.<oj.ContainsKeysResults>}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Check if there are rows containing the specified keys
A generic implementation of this method is available from oj.FetchByKeysMixin. It is for convenience and may not provide the most efficient implementation for your data provider. Classes that implement the DataProvider interface are encouraged to provide a more efficient implementation.
Parameters:
Name Type Description parametersoj.FetchByKeysParameters contains by key parameters - Since:
- 4.2.0
Returns:
Returns Promise which resolves to oj.ContainsKeysResults.- Type
- Promise.<oj.ContainsKeysResults>
Example
Check if keys 1001 and 556 are contained
var containsKeys = [1001, 556]; dataprovider.containsKeys({keys: containsKeys}).then(function(value) { var results = value['results']; if (results.has(1001)) { console.log('Has key 1001'); } else if (results.has(556){ console.log('Has key 556'); } }); -
fetchByKeys(parameters) → {Promise.<oj.FetchByKeysResults>}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Fetch rows by keys
A generic implementation of this method is available from oj.FetchByKeysMixin. It is for convenience and may not provide the most efficient implementation for your data provider. Classes that implement the DataProvider interface are encouraged to provide a more efficient implementation.
Parameters:
Name Type Description parametersoj.FetchByKeysParameters fetch by key parameters - Since:
- 4.2.0
Returns:
Returns Promise which resolves to oj.FetchByKeysResults.- Type
- Promise.<oj.FetchByKeysResults>
Example
Fetch for keys 1001 and 556
var fetchKeys = [1001, 556]; dataprovider.fetchByKeys({keys: fetchKeys}).then(function(value) { // get the data for key 1001 console.log(value.results.get(1001).data); }); -
fetchByOffset(parameters) → {Promise.<oj.FetchByOffsetResults>}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Fetch rows by offset
A generic implementation of this method is available from oj.FetchByOffsetMixin. It is for convenience and may not provide the most efficient implementation for your data provider. Classes that implement the DataProvider interface are encouraged to provide a more efficient implementation.
Parameters:
Name Type Description parametersoj.FetchByOffsetParameters fetch by offset parameters - Since:
- 4.2.0
Returns:
Returns Promise which resolves to oj.FetchByOffsetResults.- Type
- Promise.<oj.FetchByOffsetResults>
Example
Fetch by offset 5 rows starting at index 2
dataprovider.fetchByOffset({size: 5, offset: 2}).then(function(value) { var results = result['results']; var data = results.map(function(value) { return value['data']; }); var keys = results.map(function(value) { return value['metadata']['key']; }); }); -
fetchFirst(params) → {AsyncIterable.<oj.FetchListResult>}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Get an asyncIterator which can be used to fetch a block of data.
Parameters:
Name Type Argument Description paramsoj.FetchListParameters <optional>
fetch parameters - Since:
- 4.2.0
- See:
-
- https://github.com/tc39/proposal-async-iteration for further information on AsyncIterable.
Returns:
AsyncIterable with oj.FetchListResult- Type
- AsyncIterable.<oj.FetchListResult>
Example
Get an asyncIterator and then fetch first block of data by executing next() on the iterator. Subsequent blocks can be fetched by executing next() again.
var asyncIterator = dataprovider.fetchFirst(options)[Symbol.asyncIterator](); asyncIterator.next().then(function(result) { var value = result.value; var data = value.data; var keys = value.metadata.map(function(val) { return val.key; }); -
getCapability(capabilityName) → {Object}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Determines whether this DataProvider supports a certain feature.
Parameters:
Name Type Description capabilityNamestring capability name. Supported capability names are: "fetchByKeys", "fetchByOffset", "sort", and "filter". - Since:
- 4.2.0
Returns:
capability information or null if unsupported- If capabilityName is "fetchByKeys", returns a oj.FetchByKeysCapability object.
- If capabilityName is "fetchByOffset", returns a oj.FetchByOffsetCapability object.
- If capabilityName is "sort", returns a oj.SortCapability object.
- If capabilityName is "filter", returns a oj.FilterCapability object.
- Type
- Object
Example
Check what kind of fetchByKeys is supported.
var capabilityInfo = dataprovider.getCapability('fetchByKeys'); if (capabilityInfo.implementation == 'iteration') { // the DataProvider supports iteration for fetchByKeys ... -
getTotalSize() → {Promise.<number>}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Return the total number of rows in this dataprovider
Returns:
Returns a Promise which resolves to the total number of rows. -1 is unknown row count.- Type
- Promise.<number>
Example
Get the total rows
dataprovider.getTotalSize().then(function(value) { if (value == -1) { // we don't know the total row count } else { // the total count console.log(value); }); -
isEmpty() → {"yes"|"no"|"unknown"}
PREVIEW: This is a preview API. Preview APIs are production quality, but can be changed on a major version without a deprecation path.
-
Returns a string that indicates if this data provider is empty. Valid values are:
- "yes": this data provider is empty.
- "no": this data provider is not empty.
- "unknown": it is not known if this data provider is empty until a fetch is made.
- Since:
- 4.2.0
Returns:
string that indicates if this data provider is empty- Type
- "yes" | "no" | "unknown"
Example
Check if empty
var isEmpty = dataprovider.isEmpty(); console.log('DataProvider is empty: ' + isEmpty);