Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(330)

Unified Diff: sdk/lib/indexed_db/dartium/indexed_db_dartium.dart

Issue 1473443003: Switch IDB Database.transaction to use a template to do the right type conversions (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart ('k') | tools/dom/scripts/htmlrenamer.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
diff --git a/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart b/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
index c75130a3944d338f9962cb6a29c0f72768ae7180..4ab3e302ca12281343676ee24b4d4b9992405912 100644
--- a/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
+++ b/sdk/lib/indexed_db/dartium/indexed_db_dartium.dart
@@ -292,6 +292,27 @@ class Database extends EventTarget {
return _createObjectStore(name, options);
}
+ Transaction transaction(storeName_OR_storeNames, String mode) {
+ if (mode != 'readonly' && mode != 'readwrite') {
+ throw new ArgumentError("Invalid transaction mode $mode");
+ }
+ var names;
+ if (storeName_OR_storeNames == null) {
+ throw new ArgumentError("stores may not be null in transaction");
+ } else if (storeName_OR_storeNames is String || storeName_OR_storeNames is DomStringList) {
+ names = unwrap_jso(storeName_OR_storeNames);
+ } else if (storeName_OR_storeNames is List<String>) {
+ names = convertDartToNative_List(storeName_OR_storeNames);
+ } else {
+ throw new ArgumentError("Invalid store(s) $store_Name_OR_storeNames");
+ }
+
+ return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), names, mode));
+ }
+
+ Transaction transactionList(List<String> storeNames, String mode) => transaction(storeNames, mode);
+ Transaction transactionStores(List<String> storeNames, String mode) => transaction(storeNames, mode);
+ Transaction transactionStore(String storeName, String mode) => transaction(storeName, mode);
// To suppress missing implicit constructor warnings.
factory Database._() { throw new UnsupportedError("Not supported"); }
@@ -379,49 +400,6 @@ class Database extends EventTarget {
@DocsEditable()
void deleteObjectStore(String name) => _blink.BlinkIDBDatabase.instance.deleteObjectStore_Callback_1_(unwrap_jso(this), name);
- Transaction transaction(storeName_OR_storeNames, [String mode]) {
- if ((storeName_OR_storeNames is String || storeName_OR_storeNames == null) && mode == null) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames)));
- }
- if ((mode is String || mode == null) && (storeName_OR_storeNames is String || storeName_OR_storeNames == null)) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames), mode));
- }
- if ((storeName_OR_storeNames is List<String> || storeName_OR_storeNames == null) && mode == null) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames)));
- }
- if ((mode is String || mode == null) && (storeName_OR_storeNames is List<String> || storeName_OR_storeNames == null)) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames), mode));
- }
- if ((storeName_OR_storeNames is DomStringList || storeName_OR_storeNames == null) && mode == null) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames)));
- }
- if ((mode is String || mode == null) && (storeName_OR_storeNames is DomStringList || storeName_OR_storeNames == null)) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeName_OR_storeNames), mode));
- }
- throw new ArgumentError("Incorrect number or type of arguments");
- }
-
- Transaction transactionList(List<String> storeNames, [String mode]) {
- if (mode != null) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), convertDartToNative_StringArray(storeNames), mode));
- }
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), convertDartToNative_StringArray(storeNames)));
- }
-
- Transaction transactionStore(String storeName, [String mode]) {
- if (mode != null) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), storeName, mode));
- }
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), storeName));
- }
-
- Transaction transactionStores(List<String> storeNames, [String mode]) {
- if (mode != null) {
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_2_(unwrap_jso(this), unwrap_jso(storeNames), mode));
- }
- return wrap_jso(_blink.BlinkIDBDatabase.instance.transaction_Callback_1_(unwrap_jso(this), unwrap_jso(storeNames)));
- }
-
/// Stream of `abort` events handled by this [Database].
@DomName('IDBDatabase.onabort')
@DocsEditable()
« no previous file with comments | « sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart ('k') | tools/dom/scripts/htmlrenamer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698