Qore DataProvider Module Reference  2.0
AbstractDataProvider.qc.dox.h
1 // -*- mode: c++; indent-tabs-mode: nil -*-
3 
27 namespace DataProvider {
33 const UpsertResultInserted = "inserted";
34 
36 const UpsertResultUpdated = "updated";
37 
39 const UpsertResultVerified = "verified";
40 
42 const UpsertResultUnchanged = "unchanged";
43 
45 const UpsertResultDeleted = "deleted";
47 
49 public struct DataProviderOptionInfo {
51  softlist<AbstractDataProviderType> type;
52 
54  bool required = False;
55 
57  string desc;
58 };
59 
61 public struct DataProviderInfo {
63 
65  string name;
66 
68 
70  string type;
71 
73 
76 
78 
81 
83 
86 
88 
91 
93 
96 
98 
101 
103 
109 
111 
117 
119 
125 
127 
130 
132 
135 
137 
140 
142 
145 
147 
150 
152 
157 
159 
164 
166 
171 
173 
178 
180 
185 
187 
189  *hash<string, hash<DataProviderOptionInfo>> constructor_options;
190 
192 
194  *hash<string, hash<DataProviderOptionInfo>> create_options;
195 
197 
199  *hash<string, hash<DataProviderOptionInfo>> upsert_options;
200 
202 
204  *hash<string, hash<DataProviderOptionInfo>> search_options;
205 
207 
209  *hash<string, hash<DataProviderOptionInfo>> request_options;
210 
212 
216  *hash<string, hash<DataProviderOptionInfo>> child_create_options;
217 
219 
223  *hash<string, hash<DataProviderOptionInfo>> child_delete_options;
224 
226 
230  *hash<string, hash<DataProviderOptionInfo>> add_field_options;
231 
233 
237  *hash<string, hash<DataProviderOptionInfo>> update_field_options;
238 
240 
244  *hash<string, hash<DataProviderOptionInfo>> delete_field_options;
245 
247 
251  hash<string, hash<MapperRuntimeKeyInfo>> mapper_keys = Mapper::MapperKeyInfo;
252 
254 
256  *list<string> children;
257 };
258 
261 
262 public:
263 
264 protected:
266  Logger logger;
267 
269  static bool callbacks_locked = False;
270 
273 
275  static code cb_resolve_value;
276 
277 public:
278 
281 
282 
285 
286 
288  setLogger(Logger logger);
289 
290 
292 
296  hash<auto> getInfoAsData(*bool with_type_info);
297 
298 
300  hash<DataProviderInfo> getInfo();
301 
302 
304 
314  *hash<auto> createRecord(hash<auto> rec, *hash<auto> create_options);
315 
316 
318 
325  string upsertRecord(hash<auto> rec, *hash<auto> upsert_options);
326 
327 
329 
334  *hash<auto> searchFirstRecord(hash<auto> where_cond, *hash<auto> search_options);
335 
336 
338 
344  *hash<auto> searchSingleRecord(hash<auto> where_cond, *hash<auto> search_options);
345 
346 
348 
353 
354 
356 
364 AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size = 1000, *hash<auto> search_options);
365 
366 
368 
377 AbstractDataProviderBulkRecordInterface searchRecordsBulk(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
378 
379 
381 
386  AbstractDataProviderRecordIterator searchRecords(*hash<auto> where_cond, *hash<auto> search_options);
387 
388 
390 
398 AbstractDataProviderRecordIterator requestSearchRecords(auto req, *hash<auto> where_cond, *hash<auto> search_options);
399 
400 
402 
411  bool updateSingleRecord(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
412 
413 
415 
424  int updateRecords(hash<auto> set, *hash<auto> where_cond, *hash<auto> search_options);
425 
426 
428 
437  int deleteRecords(*hash<auto> where_cond, *hash<auto> search_options);
438 
439 
441 
449  auto doRequest(auto req, *hash<auto> request_options);
450 
451 
453 
464 AbstractDataProvider createChildProvider(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
465 
466 
468 
476  deleteChildProvider(string name, *hash<auto> child_delete_options);
477 
478 
480 
489  addField(AbstractDataField field, *hash<auto> field_add_options);
490 
491 
493 
502  updateField(string name, AbstractDataField field, *hash<auto> field_update_options);
503 
504 
506 
514  deleteField(string name, *hash<auto> field_delete_options);
515 
516 
518 
523 
524 
526 
531 
532 
534 
538  *hash<string, AbstractDataProviderType> getErrorResponseTypes();
539 
540 
542 
550 
551 
553 
555  *list<string> getChildProviderNames();
556 
557 
559 
566 
567 
569 
576 
577 
579 
588 
589 
591 
595 
596 
598 
607 
608 
610 
617 
618 
620 
627 
628 
630 
635 
636 
638 
643 
644 
646 
650  *hash<string, hash<MapperRuntimeKeyInfo>> getMapperRuntimeKeys();
651 
652 
654 
658 
659 
661 
665 
666 
668 
672 
673 
675 
679 
680 
682 
686 
687 
689 
693 
694 
696 
702 
703 
705 
711 
712 
714 
720 
721 
723 
729 
730 
732 
738 
739 
741 
746 
748 
758  static bool setDynamicValueCallbacks(code value_needs_resolution, code resolve_value);
759 
761 protected:
762  static bool checkCallbacks();
763 public:
764 
765 
767 
769 protected:
770  *hash<auto> validateCreateOptions(*hash<auto> create_options);
771 public:
772 
773 
775 
777 protected:
778  *hash<auto> validateUpsertOptions(*hash<auto> upsert_options);
779 public:
780 
781 
783 
785 protected:
786  *hash<auto> validateSearchOptions(*hash<auto> search_options);
787 public:
788 
789 
791 
793 protected:
794  *hash<auto> validateRequestOptions(*hash<auto> request_options);
795 public:
796 
797 
799 
803 protected:
804  *hash<auto> validateChildCreateOptions(*hash<auto> child_create_options);
805 public:
806 
807 
809 
813 protected:
814  *hash<auto> validateChildDeleteOptions(*hash<auto> child_delete_options);
815 public:
816 
817 
819 
823 protected:
824  *hash<auto> validateFieldAddOptions(*hash<auto> field_add_options);
825 public:
826 
827 
829 
833 protected:
834  *hash<auto> validateFieldUpdateOptions(*hash<auto> field_update_options);
835 public:
836 
837 
839 
843 protected:
844  *hash<auto> validateFieldDeleteOptions(*hash<auto> field_delete_options);
845 public:
846 
847 
849 protected:
850  processConstructorOptions(*hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options);
851 public:
852 
853 
855 protected:
856  *hash<auto> checkOptions(string err, *hash<string, hash<DataProviderOptionInfo>> option_desc, *hash<auto> options);
857 public:
858 
859 
861 
868 protected:
869  *hash<auto> processFieldValues(*hash<auto> h, *hash<auto> search_options);
870 public:
871 
872 
874 protected:
875  error(string err, string fmt);
876 public:
877 
878 
880 
885 protected:
886  *hash<auto> searchFirstRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
887 public:
888 
889 
891 
898 protected:
899  *hash<auto> searchSingleRecordImpl(hash<auto> where_cond, *hash<auto> search_options);
900 public:
901 
902 
904 
908 protected:
909  *list<string> getChildProviderNamesImpl();
910 public:
911 
912 
914 
916 protected:
918 public:
919 
920 
922 
928  *hash<string, AbstractDataField> getRecordType(*hash<auto> search_options);
929 
930 
932  *hash<string, AbstractDataField> getSoftRecordType(*hash<auto> search_options);
933 
934 
936  *hash<string, AbstractDataField> getOrNothingRecordType(*hash<auto> search_options);
937 
938 
940 
943  *hash<string, hash<DataProviderOptionInfo>> getSearchOptions();
944 
945 
947 
950  *hash<string, hash<DataProviderOptionInfo>> getCreateOptions();
951 
952 
954 
957  *hash<string, hash<DataProviderOptionInfo>> getUpsertOptions();
958 
959 
961 
964  *hash<string, hash<DataProviderOptionInfo>> getRequestOptions();
965 
966 
968 
974  *hash<string, hash<DataProviderOptionInfo>> getChildCreateOptions();
975 
976 
978 
984  *hash<string, hash<DataProviderOptionInfo>> getChildDeleteOptions();
985 
986 
988 
994  *hash<string, hash<DataProviderOptionInfo>> getFieldAddOptions();
995 
996 
998 
1004  *hash<string, hash<DataProviderOptionInfo>> getFieldUpdateOptions();
1005 
1006 
1008 
1014  *hash<string, hash<DataProviderOptionInfo>> getFieldDeleteOptions();
1015 
1016 
1018 
1021 
1022 
1024 
1027 
1028 
1030 
1033 
1034 
1036 
1039 
1040 
1042 
1045 
1046 
1048 
1051 
1052 
1054 
1057 
1058 
1060 
1063 
1064 
1066 
1069 
1070 
1072 
1075 
1076 
1078 
1081 
1082 
1084 
1086  bool hasRecord();
1087 
1088 
1090 
1093 
1094 
1096 
1099 
1100 
1102 
1105 
1106 
1108 
1111 
1112 
1114 
1117 
1118 
1120 
1124 protected:
1125  *hash<string, AbstractDataField> getRecordTypeImpl(*hash<auto> search_options);
1126 public:
1127 
1128 
1130 
1137 protected:
1138  AbstractDataProviderBulkRecordInterface searchRecordsBulkImpl(int block_size = 1000, *hash<auto> where_cond, *hash<auto> search_options);
1139 public:
1140 
1141 
1143 
1148 protected:
1149  AbstractDataProviderRecordIterator searchRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
1150 public:
1151 
1152 
1154 
1162 protected:
1163  AbstractDataProviderRecordIterator requestSearchRecordsImpl(auto req, *hash<auto> where_cond, *hash<auto> search_options);
1164 public:
1165 
1166 
1168 
1176 protected:
1177  *hash<auto> createRecordImpl(hash<auto> rec, *hash<auto> create_options);
1178 public:
1179 
1180 
1182 
1187 protected:
1188  string upsertRecordImpl(hash<auto> rec, *hash<auto> upsert_options);
1189 public:
1190 
1191 
1193 
1197 protected:
1198  bool updateSingleRecordImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
1199 public:
1200 
1201 
1203 
1209 protected:
1210  int updateRecordsImpl(hash<auto> set, hash<auto> where_cond, *hash<auto> search_options);
1211 public:
1212 
1213 
1215 
1221 protected:
1222  int deleteRecordsImpl(*hash<auto> where_cond, *hash<auto> search_options);
1223 public:
1224 
1225 
1227 
1232 protected:
1233  auto doRequestImpl(auto req, *hash<auto> request_options);
1234 public:
1235 
1236 
1238 
1246 protected:
1247  AbstractDataProvider createChildProviderImpl(string name, hash<string, AbstractDataField> fields, *hash<auto> child_create_options);
1248 public:
1249 
1250 
1252 
1257 protected:
1258  deleteChildProviderImpl(string name, *hash<auto> child_delete_options);
1259 public:
1260 
1261 
1263 
1269 protected:
1270  addFieldImpl(AbstractDataField field, *hash<auto> field_add_options);
1271 public:
1272 
1273 
1275 
1281 protected:
1282  updateFieldImpl(string name, AbstractDataField field, *hash<auto> field_update_options);
1283 public:
1284 
1285 
1287 
1292 protected:
1293  deleteFieldImpl(string name, *hash<auto> field_delete_options);
1294 public:
1295 
1296 
1298 
1302 protected:
1304 public:
1305 
1306 
1308 
1312 protected:
1314 public:
1315 
1316 
1318 
1322 protected:
1323  *hash<string, AbstractDataProviderType> getErrorResponseTypesImpl();
1324 public:
1325 
1326 
1328 
1334 protected:
1336 public:
1337 
1338 
1340 
1342 protected:
1344 public:
1345 
1346 
1348  abstract string getName();
1349 
1351 protected:
1352  abstract hash<DataProviderInfo> getStaticInfoImpl();
1353 public:
1354 };
1355 };
describes a data type based on a hashdecl
Definition: AbstractDataField.qc.dox.h:44
Abstract bulk data operation class.
Definition: AbstractDataProviderBulkOperation.qc.dox.h:33
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition: AbstractDataProviderBulkRecordInterface.qc.dox.h:33
The AbstractDataProvider class.
Definition: AbstractDataProvider.qc.dox.h:260
static code cb_resolve_value
static callback for dynamic value resolution
Definition: AbstractDataProvider.qc.dox.h:275
error(string err, string fmt)
thrown an exception
*hash< string, hash< MapperRuntimeKeyInfo > > getMapperRuntimeKeys()
Returns custom data mapper runtime keys.
checkDeleteChild()
Ensures that the data provider supports deleting children.
*hash< auto > searchFirstRecordImpl(hash< auto > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
deleteChildProvider(string name, *hash< auto > child_delete_options)
Deletes a child data provider.
bool supportsCreate()
Returns True if the data provider supports the record creation API.
*hash< string, hash< DataProviderOptionInfo > > getChildDeleteOptions()
Returns options that can be used for deleting child data providers.
beginTransaction()
Begins a transaction with a data provider.
Logger logger
Logger for logging.
Definition: AbstractDataProvider.qc.dox.h:266
*hash< string, AbstractDataProviderType > getErrorResponseTypes()
Returns a hash of error responses, if any.
*list< string > getChildProviderNamesImpl()
Returns a list of child data provider names, if any.
*AbstractDataProviderType getRequestType()
Returns the description of a successful request message, if any.
bool supportsDelete()
Returns True if the data provider supports the record deletion API.
checkUpdate()
Ensures that the data provider supports record upserts.
*hash< string, AbstractDataField > getRecordTypeImpl(*hash< auto > search_options)
Returns the description of the record type, if any.
*hash< string, AbstractDataField > getSoftRecordType(*hash< auto > search_options)
Returns the description of the record type with soft types, if any.
AbstractDataProviderBulkOperation getBulkUpserter()
Returns a bulk upsert operation object for the data provider.
deleteFieldImpl(string name, *hash< auto > field_delete_options)
Deletes an existing field.
hash< auto > getInfoAsData(*bool with_type_info)
Returns static provider information as data; no objects are returned.
bool updateSingleRecordImpl(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
processConstructorOptions(*hash< string, hash< DataProviderOptionInfo >> option_desc, *hash< auto > options)
processes options passed to the constructor
*hash< string, AbstractDataField > getRecordType(*hash< auto > search_options)
Returns the description of the record type, if any.
updateFieldImpl(string name, AbstractDataField field, *hash< auto > field_update_options)
Updates an existing field.
checkUpdateField()
Ensures that the data provider supports updating fields.
bool supportsDeleteField()
Returns True if the data provider supports deleting existing fields.
*hash< auto > validateChildCreateOptions(*hash< auto > child_create_options)
validates child create options
bool supportsRequest()
Returns True if the data provider supports requests.
bool supportsUpdateField()
Returns True if the data provider supports updating existing fields.
*AbstractDataProvider getChildProvider(string name)
Returns the given child provider or NOTHING if the given child is unknown.
hash< DataProviderInfo > getInfo()
Returns data provider info.
int deleteRecordsImpl(*hash< auto > where_cond, *hash< auto > search_options)
Deletes zero or more records.
*hash< string, hash< DataProviderOptionInfo > > getRequestOptions()
Returns options that can be used for requests.
*hash< auto > validateFieldUpdateOptions(*hash< auto > field_update_options)
validates field update options
throwUnimplementedException()
Throws an INVALID-OPERATION exception.
commit()
Commits data written to the data provider.
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 requiresTransactionManagement()
Returns True if the data provider supports transaction management.
AbstractDataProviderRecordIterator getRecordIterator(*hash< auto > search_options)
Returns an iterator iterating all records.
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.
bool supportsDeleteChild()
Returns True if the data provider supports creating deleting child data providers.
*hash< string, AbstractDataProviderType > getErrorResponseTypesImpl()
Returns a hash of error responses, if any.
constructor()
Creates the data provider.
*hash< auto > createRecord(hash< auto > rec, *hash< auto > create_options)
Creates the given record in the data provider.
setLogger(Logger logger)
Sets or replaces the logger.
deleteField(string name, *hash< auto > field_delete_options)
Deletes an existing field.
*hash< auto > validateCreateOptions(*hash< auto > create_options)
validates create options
bool supportsAddField()
Returns True if the data provider supports creating adding new fields.
*hash< auto > validateFieldDeleteOptions(*hash< auto > field_delete_options)
validates field delete options
*hash< string, hash< DataProviderOptionInfo > > getChildCreateOptions()
Returns options that can be used for creating child data providers.
*hash< auto > validateFieldAddOptions(*hash< auto > field_add_options)
validates field add options
int updateRecordsImpl(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
*hash< auto > validateSearchOptions(*hash< auto > search_options)
validates search options
*hash< auto > validateChildDeleteOptions(*hash< auto > child_delete_options)
validates child delete options
string upsertRecordImpl(hash< auto > rec, *hash< auto > upsert_options)
Upserts the given record to the data provider.
rollback()
Rolls back data written to the data provider.
*AbstractDataProviderType getResponseType()
Returns the description of a response message, if this object represents a response message.
*hash< auto > processFieldValues(*hash< auto > h, *hash< auto > search_options)
processes search or set values to convert types if necessary
*AbstractDataProviderType getResponseTypeImpl()
Returns the description of a response message, if this object represents a response message.
abstract hash< DataProviderInfo > getStaticInfoImpl()
Returns data provider static info.
bool recordRequiresSearchOptions()
Returns True if the data provider requires search options to retrieve the record type.
static bool callbacks_locked
flag if callbacks are locked
Definition: AbstractDataProvider.qc.dox.h:269
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.
AbstractDataProviderBulkOperation getBulkInserter()
Returns a bulk insert operation object for the data provider.
AbstractDataProviderRecordIterator searchRecordsImpl(*hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
bool supportsBulkUpsert()
Returns True if the data provider supports bulk upserts.
*AbstractDataProviderType getRequestTypeImpl()
Returns the description of a successful request message, if any.
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.
static bool setDynamicValueCallbacks()
Ensures that no callbacks can be set for dynamic URI resolution.
bool updateSingleRecord(hash< auto > set, hash< auto > where_cond, *hash< auto > search_options)
Updates a single record matching the search options.
addFieldImpl(AbstractDataField field, *hash< auto > field_add_options)
Creates a new field.
auto doRequest(auto req, *hash< auto > request_options)
Makes a request and returns the response.
*hash< string, hash< DataProviderOptionInfo > > getFieldAddOptions()
Returns options that can be used for adding new fields to the data provider.
static code cb_value_needs_resolution
static callback the returns a bool if the value needs dynamic resolution
Definition: AbstractDataProvider.qc.dox.h:272
*hash< string, AbstractDataField > getOrNothingRecordType(*hash< auto > search_options)
Returns the description of the record type with "or nothing" types, if any.
checkCreate()
Ensures that the data provider supports record creation.
*hash< string, hash< DataProviderOptionInfo > > getFieldUpdateOptions()
Returns options that can be used for updating fields of the data provider.
*hash< string, hash< DataProviderOptionInfo > > getUpsertOptions()
Returns options that can be used for upserting records.
checkRead()
Ensures that the data provider supports read operations.
*hash< auto > searchFirstRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns the first record matching the search options.
*hash< string, hash< DataProviderOptionInfo > > getSearchOptions()
Returns options that can be used for searching.
AbstractDataProviderBulkRecordInterface getBulkRecordInterface(int block_size=1000, *hash< auto > search_options)
Returns an iterator iterating all records with the bulk read API.
*AbstractDataProvider getChildProviderImpl(string name)
Returns the given child provider or NOTHING if the given child is unknown.
int updateRecords(hash< auto > set, *hash< auto > where_cond, *hash< auto > search_options)
Updates zero or more records matching the search options.
*hash< auto > searchSingleRecord(hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
auto doRequestImpl(auto req, *hash< auto > request_options)
Makes a request and returns the response.
AbstractDataProviderRecordIterator searchRecords(*hash< auto > where_cond, *hash< auto > search_options)
Returns an iterator for zero or more records matching the search options.
checkDelete()
Ensures that the data provider supports record deletion.
AbstractDataProviderType getErrorResponseType(string error_code)
Returns the type for the given error code.
bool supportsBulkRead()
Returns True if the data provider supports native bulk reading.
checkDeleteField()
Ensures that the data provider supports deleting fields.
AbstractDataProvider getChildProviderPath(string path)
Returns the given child provider from a "/" separated path string.
constructor(Logger logger)
Creates the data provider with the given Logger.
*list< string > getChildProviderNames()
Returns a list of child data provider names, if any.
addField(AbstractDataField field, *hash< auto > field_add_options)
Creates a new field.
AbstractDataProvider createChildProvider(string name, hash< string, AbstractDataField > fields, *hash< auto > child_create_options)
Creates a new child data provider and returns it after adding as a child.
string upsertRecord(hash< auto > rec, *hash< auto > upsert_options)
Upserts the given record in the data provider.
*hash< auto > searchSingleRecordImpl(hash< auto > where_cond, *hash< auto > search_options)
Returns a single record matching the search options.
updateField(string name, AbstractDataField field, *hash< auto > field_update_options)
Updates an existing field.
AbstractDataProviderType getErrorResponseTypeImpl(string error_code)
Returns the type for the given error code.
deleteChildProviderImpl(string name, *hash< auto > child_delete_options)
Deletes a child data provider.
abstract string getName()
Returns the data provider name.
AbstractDataProvider createChildProviderImpl(string name, hash< string, AbstractDataField > fields, *hash< auto > child_create_options)
Creates a new child data provider and returns it after adding as a child.
bool hasRecord()
Returns True if the data provider has a record type.
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 ru...
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.
*hash< auto > createRecordImpl(hash< auto > rec, *hash< auto > create_options)
Creates the given record to the data provider.
checkRequest()
Ensures that the data provider supports the request API.
*hash< auto > validateUpsertOptions(*hash< auto > upsert_options)
validates upsert options
bool supportsUpsert()
Returns True if the data provider supports the record upsert API.
AbstractDataProvider getChildProviderEx(string name)
Returns the given child provider or throws an exception if the given child is unknown.
static bool checkCallbacks()
Checks if callbacks have already been set or locked.
checkAddField()
Ensures that the data provider supports adding fields.
checkCreateChild()
Ensures that the data provider supports creating children.
*hash< string, hash< DataProviderOptionInfo > > getFieldDeleteOptions()
Returns options that can be used for deleting fields from the data provider.
*hash< auto > checkOptions(string err, *hash< string, hash< DataProviderOptionInfo >> option_desc, *hash< auto > options)
verifies options according to the option
bool supportsUpdate()
Returns True if the data provider supports the record update API.
int deleteRecords(*hash< auto > where_cond, *hash< auto > search_options)
Deletes zero or more records.
checkUpsert()
Ensures that the data provider supports record upserts.
bool supportsBulkCreate()
Returns True if the data provider supports bulk creation output.
bool supportsCreateChild()
Returns True if the data provider supports creating new child data providers.
*hash< auto > validateRequestOptions(*hash< auto > request_options)
validates request options
*hash< string, hash< DataProviderOptionInfo > > getCreateOptions()
Returns options that can be used for creating records.
Defines the abstract class for data provider iterators; the destructor releases the iterator.
Definition: AbstractDataProviderRecordIterator.qc.dox.h:33
describes a data type
Definition: AbstractDataProviderType.qc.dox.h:91
const False
hash< auto > hash(object obj)
Qore AbstractDataField class definition.
Definition: AbstractDataField.qc.dox.h:27
const UpsertResultUnchanged
Indicates that the record was left unchanged.
Definition: AbstractDataProvider.qc.dox.h:42
const UpsertResultDeleted
Indicates that the record was deleted.
Definition: AbstractDataProvider.qc.dox.h:45
const UpsertResultInserted
Indicates that the record was inserted.
Definition: AbstractDataProvider.qc.dox.h:33
const UpsertResultVerified
Indicates that the record was verified as already in the target state.
Definition: AbstractDataProvider.qc.dox.h:39
const UpsertResultUpdated
Indicates that the record was updated.
Definition: AbstractDataProvider.qc.dox.h:36
Data provider info.
Definition: AbstractDataProvider.qc.dox.h:61
bool supports_delete
Does the data provider support record deletion?
Definition: AbstractDataProvider.qc.dox.h:95
bool supports_bulk_read
Does the data provider support native / optimized bulk reads?
Definition: AbstractDataProvider.qc.dox.h:108
*hash< string, hash< DataProviderOptionInfo > > add_field_options
Add field options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:230
bool transaction_management
Does the data provider require transaction management?
Definition: AbstractDataProvider.qc.dox.h:139
bool supports_child_delete
Does the data provider support deleting new child providers?
Definition: AbstractDataProvider.qc.dox.h:163
string type
The name of the provider type.
Definition: AbstractDataProvider.qc.dox.h:70
bool supports_delete_field
Does the data provider support deleting fields?
Definition: AbstractDataProvider.qc.dox.h:184
bool supports_child_create
Does the data provider support creating new child providers?
Definition: AbstractDataProvider.qc.dox.h:156
*hash< string, hash< DataProviderOptionInfo > > child_delete_options
Child deletion options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:223
bool supports_native_search
Does the data provider support native record searching?
Definition: AbstractDataProvider.qc.dox.h:100
*hash< string, hash< DataProviderOptionInfo > > request_options
Request options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:209
*hash< string, hash< DataProviderOptionInfo > > search_options
Search options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:204
string name
Data provider name.
Definition: AbstractDataProvider.qc.dox.h:65
bool supports_add_field
Does the data provider support adding new fields?
Definition: AbstractDataProvider.qc.dox.h:170
bool supports_bulk_upsert
Does the data provider support native / optimized bulk upserts?
Definition: AbstractDataProvider.qc.dox.h:124
*hash< string, hash< DataProviderOptionInfo > > child_create_options
Child creation options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:216
hash< string, hash< MapperRuntimeKeyInfo > > mapper_keys
A hash of mapper key information.
Definition: AbstractDataProvider.qc.dox.h:251
bool supports_read
Does the data provider support reading.
Definition: AbstractDataProvider.qc.dox.h:75
bool record_requires_search_options
Do we require search options to retrieve the record type?
Definition: AbstractDataProvider.qc.dox.h:149
bool supports_update
Does the data provider support record updates?
Definition: AbstractDataProvider.qc.dox.h:85
*hash< string, hash< DataProviderOptionInfo > > upsert_options
Upsert options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:199
bool supports_update_field
Does the data provider support updating existing fields?
Definition: AbstractDataProvider.qc.dox.h:177
bool supports_request
Does the data provider support the request API?
Definition: AbstractDataProvider.qc.dox.h:129
*hash< string, hash< DataProviderOptionInfo > > constructor_options
Constructor options supported by the data provider for the constructor variant taking a hash.
Definition: AbstractDataProvider.qc.dox.h:189
*hash< string, hash< DataProviderOptionInfo > > create_options
Create options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:194
bool supports_create
Does the data provider support record creation?
Definition: AbstractDataProvider.qc.dox.h:80
*list< string > children
A list of child data providers in this data provider.
Definition: AbstractDataProvider.qc.dox.h:256
bool supports_upsert
Does the data provider support record upserts (create or update)?
Definition: AbstractDataProvider.qc.dox.h:90
bool supports_bulk_create
Does the data provider support native / optimized bulk creation?
Definition: AbstractDataProvider.qc.dox.h:116
*hash< string, hash< DataProviderOptionInfo > > delete_field_options
Delete field options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:244
bool supports_children
Does the data provider support children?
Definition: AbstractDataProvider.qc.dox.h:134
*hash< string, hash< DataProviderOptionInfo > > update_field_options
Update field options supported by the data provider.
Definition: AbstractDataProvider.qc.dox.h:237
bool has_record
Does the data provider provide a record?
Definition: AbstractDataProvider.qc.dox.h:144
Data provider option info.
Definition: AbstractDataProvider.qc.dox.h:49
softlist< AbstractDataProviderType > type
The option value type or types.
Definition: AbstractDataProvider.qc.dox.h:51
string desc
The option description.
Definition: AbstractDataProvider.qc.dox.h:57
bool required
Required flag.
Definition: AbstractDataProvider.qc.dox.h:54