Qore DataProvider Module Reference
1.0.2
|
The AbstractDataProvider class. More...
Public Member Methods | |
checkCreate () | |
Ensures that the data provider supports record creation. More... | |
checkDelete () | |
Ensures that the data provider supports record deletion. More... | |
checkRead () | |
Ensures that the data provider supports read operations. More... | |
checkRequest () | |
Ensures that the data provider supports the request API. More... | |
checkUpdate () | |
Ensures that the data provider supports record upserts. More... | |
checkUpsert () | |
Ensures that the data provider supports record upserts. More... | |
commit () | |
Commits data written to the data provider. More... | |
*hash< auto > | createRecord (hash< auto > rec, *hash< auto > create_options) |
Creates the given record in the data provider. More... | |
int | deleteRecords (*hash< auto > where_cond, *hash< auto > search_options) |
Deletes zero or more records. More... | |
auto | doRequest (auto req, *hash< auto > request_options) |
Makes a request and returns the response. More... | |
AbstractDataProviderBulkOperation | getBulkInserter () |
Returns a bulk insert operation object for the data provider. More... | |
AbstractDataProviderBulkRecordInterface | getBulkRecordInterface (int block_size=1000, *hash< auto > search_options) |
Returns an iterator iterating all records with the bulk read API. More... | |
AbstractDataProviderBulkOperation | getBulkUpserter () |
Returns a bulk upsert operation object for the data provider. More... | |
*AbstractDataProvider | getChildProvider (string name) |
Returns the given child provider or NOTHING if the given child is unknown. More... | |
AbstractDataProvider | getChildProviderEx (string name) |
Returns the given child provider or throws an exception if the given child is unknown. More... | |
*list< string > | getChildProviderNames () |
Returns a list of child data provider names, if any. More... | |
AbstractDataProvider | getChildProviderPath (string path) |
Returns the given child provider from a "/" separated path string; throws an exception if any element in the path is unknown. More... | |
*hash< string, hash< DataProviderOptionInfo > > | getCreateOptions () |
Returns options that can be used for creating records. More... | |
AbstractDataProviderType | getErrorResponseType (string error_code) |
Returns the type for the given error code. More... | |
*hash< string, AbstractDataProviderType > | getErrorResponseTypes () |
Returns a hash of error responses, if any. More... | |
hash< DataProviderInfo > | getInfo () |
Returns data provider info. | |
hash< auto > | getInfoAsData () |
Returns static provider information as data; no objects are returned. More... | |
*hash< string, hash< MapperRuntimeKeyInfo > > | getMapperRuntimeKeys () |
Returns custom data mapper runtime keys. More... | |
abstract string | getName () |
Returns the data provider name. | |
*hash< string, AbstractDataField > | getOrNothingRecordType (*hash< auto > search_options) |
Returns the description of the record type with "or nothing" types, if any. | |
AbstractDataProviderRecordIterator | getRecordIterator (*hash< auto > search_options) |
Returns an iterator iterating all records. More... | |
*hash< string, AbstractDataField > | getRecordType (*hash< auto > search_options) |
Returns the description of the record type, if any. More... | |
*hash< string, hash< DataProviderOptionInfo > > | getRequestOptions () |
Returns options that can be used for requests. More... | |
*AbstractDataProviderType | getRequestType () |
Returns the description of a successful request message, if any. More... | |
*AbstractDataProviderType | getResponseType () |
Returns the description of a response message, if this object represents a response message. More... | |
*hash< string, hash< DataProviderOptionInfo > > | getSearchOptions () |
Returns options that can be used for searching. More... | |
*hash< string, AbstractDataField > | getSoftRecordType (*hash< auto > search_options) |
Returns the description of the record type with soft types, if any. | |
*hash< string, hash< DataProviderOptionInfo > > | getUpsertOptions () |
Returns options that can be used for upserting records. More... | |
bool | hasRecord () |
Returns True if the data provider has a record type. More... | |
bool | recordRequiresSearchOptions () |
Returns True if the data provider requires search options to retrieve the record type. | |
AbstractDataProviderRecordIterator | requestSearchRecords (auto req, *hash< auto > where_cond, *hash< auto > search_options) |
Returns an iterator for zero or more records matching the search options according to an API request. More... | |
bool | requiresTransactionManagement () |
Returns True if the data provider supports transaction management. More... | |
rollback () | |
Rolls back data written to the data provider. More... | |
*hash< auto > | searchFirstRecord (hash< auto > where_cond, *hash< auto > search_options) |
Returns the first record matching the search options. More... | |
AbstractDataProviderRecordIterator | searchRecords (*hash< auto > where_cond, *hash< auto > search_options) |
Returns an iterator for zero or more records matching the search options. More... | |
AbstractDataProviderBulkRecordInterface | searchRecordsBulk (int block_size=1000, *hash< auto > where_cond, *hash< auto > search_options) |
Returns an iterator for zero or more records matching the search options. More... | |
*hash< auto > | searchSingleRecord (hash< auto > where_cond, *hash< auto > search_options) |
Returns a single record matching the search options. More... | |
bool | supportsBulkCreate () |
Returns True if the data provider supports bulk creation output. | |
bool | supportsBulkRead () |
Returns True if the data provider supports native bulk reading. | |
bool | supportsBulkUpsert () |
Returns True if the data provider supports bulk upserts. | |
bool | supportsCreate () |
Returns True if the data provider supports the record creation API. | |
bool | supportsDelete () |
Returns True if the data provider supports the record deletion API. | |
bool | supportsNativeSearch () |
Returns True if the data provider supports the record search API natively. | |
bool | supportsRead () |
Returns True if the data provider supports reading. | |
bool | supportsRequest () |
Returns True if the data provider supports requests. | |
bool | supportsUpdate () |
Returns True if the data provider supports the record update API. | |
bool | supportsUpsert () |
Returns True if the data provider supports the record upsert API. | |
int | updateRecords (hash< auto > set, *hash< auto > where_cond, *hash< auto > search_options) |
Updates zero or more records matching the search options. More... | |
bool | updateSingleRecord (hash< auto > set, hash< auto > where_cond, *hash< auto > search_options) |
Updates a single record matching the search options. More... | |
string | upsertRecord (hash< auto > rec, *hash< auto > upsert_options) |
Upserts the given record in the data provider. More... | |
Static Public Member Methods | |
static bool | setDynamicValueCallbacks () |
Ensures that no callbacks can be set for dynamic URI resolution. More... | |
static bool | setDynamicValueCallbacks (code value_needs_resolution, code resolve_value) |
Set callbacks for dynamic URI resolution to allow for variable URI path elements to be resolved at runtime. More... | |
Private Member Methods | |
*hash< auto > | checkOptions (string err, *hash< string, hash< DataProviderOptionInfo >> option_desc, *hash< auto > options) |
verifies options according to the option | |
*hash< auto > | createRecordImpl (hash< auto > rec, *hash< auto > create_options) |
Creates the given record to the data provider. More... | |
int | deleteRecordsImpl (*hash< auto > where_cond, *hash< auto > search_options) |
Deletes zero or more records. More... | |
auto | doRequestImpl (auto req, *hash< auto > request_options) |
Makes a request and returns the response. More... | |
error (string err, string fmt) | |
thrown an exception | |
*AbstractDataProvider | getChildProviderImpl (string name) |
Returns the given child provider or NOTHING if the given child is unknown. More... | |
*list< string > | getChildProviderNamesImpl () |
Returns a list of child data provider names, if any. More... | |
AbstractDataProviderType | getErrorResponseTypeImpl (string error_code) |
Returns the type for the given error code. More... | |
*hash< string, AbstractDataProviderType > | getErrorResponseTypesImpl () |
Returns a hash of error responses, if any. More... | |
*hash< string, AbstractDataField > | getRecordTypeImpl (*hash< auto > search_options) |
Returns the description of the record type, if any. More... | |
*AbstractDataProviderType | getRequestTypeImpl () |
Returns the description of a successful request message, if any. More... | |
*AbstractDataProviderType | getResponseTypeImpl () |
Returns the description of a response message, if this object represents a response message. More... | |
abstract hash< DataProviderInfo > | getStaticInfoImpl () |
Returns data provider static info. | |
processConstructorOptions (*hash< string, hash< DataProviderOptionInfo >> option_desc, *hash< auto > options) | |
processes options passed to the constructor | |
*hash< auto > | processFieldValues (*hash< auto > h, *hash< auto > search_options) |
processes search or set values to convert types if necessary More... | |
AbstractDataProviderRecordIterator | requestSearchRecordsImpl (auto req, *hash< auto > where_cond, *hash< auto > search_options) |
Returns an iterator for zero or more records matching the search options according to an API request. More... | |
*hash< auto > | searchFirstRecordImpl (hash< auto > where_cond, *hash< auto > search_options) |
Returns the first record matching the search options. More... | |
AbstractDataProviderBulkRecordInterface | searchRecordsBulkImpl (int block_size=1000, *hash< auto > where_cond, *hash< auto > search_options) |
Returns an iterator for zero or more records matching the search options. More... | |
AbstractDataProviderRecordIterator | searchRecordsImpl (*hash< auto > where_cond, *hash< auto > search_options) |
Returns an iterator for zero or more records matching the search options. More... | |
*hash< auto > | searchSingleRecordImpl (hash< auto > where_cond, *hash< auto > search_options) |
Returns a single record matching the search options. More... | |
throwUnimplementedException () | |
Throws an INVALID-OPERATION exception. More... | |
int | updateRecordsImpl (hash< auto > set, hash< auto > where_cond, *hash< auto > search_options) |
Updates zero or more records matching the search options. More... | |
bool | updateSingleRecordImpl (hash< auto > set, hash< auto > where_cond, *hash< auto > search_options) |
Updates a single record matching the search options. More... | |
string | upsertRecordImpl (hash< auto > rec, *hash< auto > upsert_options) |
Upserts the given record to the data provider. More... | |
*hash< auto > | validateCreateOptions (*hash< auto > create_options) |
validates create options More... | |
*hash< auto > | validateRequestOptions (*hash< auto > request_options) |
validates request options More... | |
*hash< auto > | validateSearchOptions (*hash< auto > search_options) |
validates search options More... | |
*hash< auto > | validateUpsertOptions (*hash< auto > upsert_options) |
validates upsert options More... | |
Static Private Member Methods | |
static bool | checkCallbacks () |
Checks if callbacks have already been set or locked. | |
Static Private Attributes | |
static bool | callbacks_locked = False |
flag if callbacks are locked | |
static code | cb_resolve_value |
static callback for dynamic value resolution | |
static code | cb_value_needs_resolution |
static callback the returns a bool if the value needs dynamic resolution | |
The AbstractDataProvider class.
DataProvider::AbstractDataProvider::checkCreate | ( | ) |
Ensures that the data provider supports record creation.
INVALID-OPERATION | the data provider does not support record creation |
DataProvider::AbstractDataProvider::checkDelete | ( | ) |
Ensures that the data provider supports record deletion.
INVALID-OPERATION | the data provider does not support record deletion |
DataProvider::AbstractDataProvider::checkRead | ( | ) |
Ensures that the data provider supports read operations.
INVALID-OPERATION | the data provider does not support read operations |
DataProvider::AbstractDataProvider::checkRequest | ( | ) |
Ensures that the data provider supports the request API.
INVALID-OPERATION | the data provider does not support the request API |
DataProvider::AbstractDataProvider::checkUpdate | ( | ) |
Ensures that the data provider supports record upserts.
INVALID-OPERATION | the data provider does not support record updating |
DataProvider::AbstractDataProvider::checkUpsert | ( | ) |
Ensures that the data provider supports record upserts.
INVALID-OPERATION | the data provider does not support upsert operations |
DataProvider::AbstractDataProvider::commit | ( | ) |
Commits data written to the data provider.
Has no effect if the data provider does not support transaction management
*hash<auto> DataProvider::AbstractDataProvider::createRecord | ( | hash< auto > | rec, |
*hash< auto > | create_options | ||
) |
Creates the given record in the data provider.
rec | a hash representing a single input record |
create_options | the create options; will be processed by validateCreateOptions() |
INVALID-OPERATION | the data provider does not support record creation |
DUPLICATE-RECORD | this exception should be thrown if the provider fails due to an attempt to create a duplicate record |
|
private |
Creates the given record to the data provider.
rec | a hash representing a single input record |
create_options | the create options after processing by validateCreateOptions() |
DUPLICATE-RECORD | this exception should be thrown if the provider fails due to an attempt to create a duplicate record |
int DataProvider::AbstractDataProvider::deleteRecords | ( | *hash< auto > | where_cond, |
*hash< auto > | search_options | ||
) |
Deletes zero or more records.
where_cond | a hash for identifying the record(s) to be deleted |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support record deletion |
|
private |
Deletes zero or more records.
where_cond | a hash for identifying the record(s) to be deleted |
search_options | the delete options after processing by validateSearchOptions() |
auto DataProvider::AbstractDataProvider::doRequest | ( | auto | req, |
*hash< auto > | request_options | ||
) |
Makes a request and returns the response.
req | the request to serialize and make according to the request type |
request_options | the request options; will be processed by validateRequestOptions() |
INVALID-OPERATION | the data provider does not support the request API |
INVALID-REQUEST | the request argument provided do not match the expected request type |
|
private |
Makes a request and returns the response.
req | the request to serialize and make according to the request type |
request_options | the request options; will be processed by validateRequestOptions() |
AbstractDataProviderBulkOperation DataProvider::AbstractDataProvider::getBulkInserter | ( | ) |
Returns a bulk insert operation object for the data provider.
INVALID-OPERATION | the data provider does not support create operations |
AbstractDataProviderBulkRecordInterface DataProvider::AbstractDataProvider::getBulkRecordInterface | ( | int | block_size = 1000 , |
*hash< auto > | search_options | ||
) |
Returns an iterator iterating all records with the bulk read API.
block_size | the number of records in a read block; must be a positive number |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-BLOCK-SIZE | the block size must be a positive number |
INVALID-OPERATION | the data provider does not support reading |
AbstractDataProviderBulkOperation DataProvider::AbstractDataProvider::getBulkUpserter | ( | ) |
Returns a bulk upsert operation object for the data provider.
INVALID-OPERATION | the data provider does not support upsert operations |
*AbstractDataProvider DataProvider::AbstractDataProvider::getChildProvider | ( | string | name | ) |
Returns the given child provider or NOTHING if the given child is unknown.
INVALID-CHILD-PROVIDER | unknown child provider |
AbstractDataProvider DataProvider::AbstractDataProvider::getChildProviderEx | ( | string | name | ) |
Returns the given child provider or throws an exception if the given child is unknown.
INVALID-CHILD-PROVIDER | unknown child provider |
|
private |
Returns a list of child data provider names, if any.
Returns a list of child data provider names, if any.
This base class method returns NOTHING
AbstractDataProvider DataProvider::AbstractDataProvider::getChildProviderPath | ( | string | path | ) |
Returns the given child provider from a "/"
separated path string; throws an exception if any element in the path is unknown.
path | a string giving a path to the target provider where child elements are separated by "/" characters |
INVALID-CHILD-PROVIDER | unknown child provider |
*hash<string, hash<DataProviderOptionInfo> > DataProvider::AbstractDataProvider::getCreateOptions | ( | ) |
Returns options that can be used for creating records.
AbstractDataProviderType DataProvider::AbstractDataProvider::getErrorResponseType | ( | string | error_code | ) |
Returns the type for the given error code.
error_code | the error code for the response; must be a known error code, or an UNKNOWN-ERROR-RESPONSE exception is thrown |
INVALID-OPERATION | the data provider does not support the request API |
UNKNOWN-ERROR-RESPONSE | the error response given is not known |
|
private |
Returns the type for the given error code.
error_code | the error code for the response; must be a known error code, or an UNKNOWN-ERROR-RESPONSE exception is thrown |
UNKNOWN-ERROR-RESPONSE | the error response given is not known |
*hash<string, AbstractDataProviderType> DataProvider::AbstractDataProvider::getErrorResponseTypes | ( | ) |
Returns a hash of error responses, if any.
INVALID-OPERATION | the data provider does not support the request API |
|
private |
Returns a hash of error responses, if any.
hash<auto> DataProvider::AbstractDataProvider::getInfoAsData | ( | ) |
Returns static provider information as data; no objects are returned.
name
and children
attributes are not returned as they are dynamic attributes *hash<string, hash<MapperRuntimeKeyInfo> > DataProvider::AbstractDataProvider::getMapperRuntimeKeys | ( | ) |
Returns custom data mapper runtime keys.
This base method returns NOTHING; reimplment in child classes to return a value
AbstractDataProviderRecordIterator DataProvider::AbstractDataProvider::getRecordIterator | ( | *hash< auto > | search_options | ) |
Returns an iterator iterating all records.
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support reading |
*hash<string, AbstractDataField> DataProvider::AbstractDataProvider::getRecordType | ( | *hash< auto > | search_options | ) |
Returns the description of the record type, if any.
search_options | to be included and processed by validateSearchOptions() if recordRequiresSearchOptions() is True for this provider, otherwise any value provided in this argument is ignored |
|
private |
Returns the description of the record type, if any.
search_options | to be included and processed by validateSearchOptions() if recordRequiresSearchOptions() is True for this provider, otherwise any value provided in this argument is ignored |
*hash<string, hash<DataProviderOptionInfo> > DataProvider::AbstractDataProvider::getRequestOptions | ( | ) |
Returns options that can be used for requests.
*AbstractDataProviderType DataProvider::AbstractDataProvider::getRequestType | ( | ) |
Returns the description of a successful request message, if any.
INVALID-OPERATION | the data provider does not support the request API |
|
private |
Returns the description of a successful request message, if any.
*AbstractDataProviderType DataProvider::AbstractDataProvider::getResponseType | ( | ) |
Returns the description of a response message, if this object represents a response message.
INVALID-OPERATION | the data provider does not support the request API |
|
private |
Returns the description of a response message, if this object represents a response message.
*hash<string, hash<DataProviderOptionInfo> > DataProvider::AbstractDataProvider::getSearchOptions | ( | ) |
Returns options that can be used for searching.
*hash<string, hash<DataProviderOptionInfo> > DataProvider::AbstractDataProvider::getUpsertOptions | ( | ) |
Returns options that can be used for upserting records.
bool DataProvider::AbstractDataProvider::hasRecord | ( | ) |
|
private |
processes search or set values to convert types if necessary
h | the hash of field values to process |
search_options | the search options after processing by validateSearchOptions() |
AbstractDataProviderRecordIterator DataProvider::AbstractDataProvider::requestSearchRecords | ( | auto | req, |
*hash< auto > | where_cond, | ||
*hash< auto > | search_options | ||
) |
Returns an iterator for zero or more records matching the search options according to an API request.
req | the request to serialize and make according to the request type |
where_cond | the search criteria; will be processed by processFieldValues() |
search_options | the search options after processing by validateSearchOptions() |
This will execute the request and perform a default search on any record(s) returned
INVALID-OPERATION | the data provider does not support reading records or the request / response API |
|
private |
Returns an iterator for zero or more records matching the search options according to an API request.
req | the request to serialize and make according to the request type |
where_cond | the search criteria; after processing by processFieldValues() |
search_options | the search options after processing by validateSearchOptions() |
This will execute the request and perform a default search on any record(s) returned
bool DataProvider::AbstractDataProvider::requiresTransactionManagement | ( | ) |
Returns True if the data provider supports transaction management.
DataProvider::AbstractDataProvider::rollback | ( | ) |
Rolls back data written to the data provider.
Has no effect if the data provider does not support transaction management
*hash<auto> DataProvider::AbstractDataProvider::searchFirstRecord | ( | hash< auto > | where_cond, |
*hash< auto > | search_options | ||
) |
Returns the first record matching the search options.
where_cond | the search criteria; will be processed by processFieldValues() |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support reading |
|
private |
Returns the first record matching the search options.
where_cond | the search criteria |
search_options | the search options after processing by validateSearchOptions() |
AbstractDataProviderRecordIterator DataProvider::AbstractDataProvider::searchRecords | ( | *hash< auto > | where_cond, |
*hash< auto > | search_options | ||
) |
Returns an iterator for zero or more records matching the search options.
where_cond | the search criteria; will be processed by processFieldValues() |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support reading |
AbstractDataProviderBulkRecordInterface DataProvider::AbstractDataProvider::searchRecordsBulk | ( | int | block_size = 1000 , |
*hash< auto > | where_cond, | ||
*hash< auto > | search_options | ||
) |
Returns an iterator for zero or more records matching the search options.
block_size | the number of records in a read block; must be a positive number |
where_cond | the search criteria; will be processed by processFieldValues() |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-BLOCK-SIZE | the block size must be a positive number |
INVALID-OPERATION | the data provider does not support reading |
|
private |
Returns an iterator for zero or more records matching the search options.
block_size | the number of records in a read block; must be a positive number |
where_cond | the search criteria; after processing by processFieldValues() |
search_options | the search options after processing by validateSearchOptions() |
INVALID-BLOCK-SIZE | the block size must be a positive number |
INVALID-OPERATION | the data provider does not support reading |
|
private |
Returns an iterator for zero or more records matching the search options.
where_cond | the search criteria |
search_options | the search options after processing by validateSearchOptions() |
*hash<auto> DataProvider::AbstractDataProvider::searchSingleRecord | ( | hash< auto > | where_cond, |
*hash< auto > | search_options | ||
) |
Returns a single record matching the search options.
where_cond | the search criteria; will be processed by processFieldValues() |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support reading |
MULTIPLE-RECORDS-ERROR | multiple records found |
|
private |
Returns a single record matching the search options.
where_cond | the search criteria |
search_options | the search options after processing by validateSearchOptions() |
MULTIPLE-RECORDS-ERROR | multiple records found |
|
static |
Ensures that no callbacks can be set for dynamic URI resolution.
|
static |
Set callbacks for dynamic URI resolution to allow for variable URI path elements to be resolved at runtime.
value_needs_resolution | signature bool sub (string value) { ... } ; this callback will be used to check if a URI path needs dynamic resolution |
resolve_value | signature auto sub (auto value) { ... } ; if value_needs_resolution returns True on a URI path, then this callback will be called at runtime for each request to resolve the URI path to the final path |
|
private |
Throws an INVALID-OPERATION
exception.
INVALID-OPERATION | this exception is thrown unconditionally by this method |
int DataProvider::AbstractDataProvider::updateRecords | ( | hash< auto > | set, |
*hash< auto > | where_cond, | ||
*hash< auto > | search_options | ||
) |
Updates zero or more records matching the search options.
set | the hash of field data to set |
where_cond | a hash for identifying the record(s) to be updated |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support record updating |
|
private |
Updates zero or more records matching the search options.
set | the hash of field data to set |
where_cond | a hash for identifying the record(s) to be updated |
search_options | the update options after processing by validateSearchOptions() |
bool DataProvider::AbstractDataProvider::updateSingleRecord | ( | hash< auto > | set, |
hash< auto > | where_cond, | ||
*hash< auto > | search_options | ||
) |
Updates a single record matching the search options.
set | the hash of field data to set; will be processed by processFieldValues() |
where_cond | the search criteria; will be processed by processFieldValues() |
search_options | the search options; will be processed by validateSearchOptions() |
INVALID-OPERATION | the data provider does not support record updating |
|
private |
Updates a single record matching the search options.
set | the hash of field data to set |
where_cond | the search criteria |
search_options | the search options after processing by validateSearchOptions() |
string DataProvider::AbstractDataProvider::upsertRecord | ( | hash< auto > | rec, |
*hash< auto > | upsert_options | ||
) |
Upserts the given record in the data provider.
rec | a hash representing a single input record |
upsert_options | the upsert options; will be processed by validateUpsertOptions() |
INVALID-OPERATION | the data provider does not support upsert operations |
|
private |
Upserts the given record to the data provider.
rec | a hash representing a single input record |
upsert_options | the create options after processing by validateUpsertOptions() |
|
private |
validates create options
CREATE-OPTION-ERROR | invalid or unsupported create option |
|
private |
validates request options
REQUEST-OPTION-ERROR | invalid or unsupported request option |
|
private |
validates search options
SEARCH-OPTION-ERROR | invalid or unsupported search option |