Index: lib/dom/src/frog_IDBKeyRangeFactoryProvider.dart |
diff --git a/lib/dom/src/frog_IDBKeyRangeFactoryProvider.dart b/lib/dom/src/frog_IDBKeyRangeFactoryProvider.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dfe16304c711f13f050b8aa7e3405b64475d74e8 |
--- /dev/null |
+++ b/lib/dom/src/frog_IDBKeyRangeFactoryProvider.dart |
@@ -0,0 +1,47 @@ |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+class _IDBKeyRangeFactoryProvider { |
+ |
+ factory IDBKeyRange.only(/*IDBKey*/ value) => |
+ _only(_class(), _translateKey(value)); |
+ |
+ factory IDBKeyRange.lowerBound(/*IDBKey*/ bound, [bool open = false]) => |
+ _lowerBound(_class(), _translateKey(bound), open); |
+ |
+ factory IDBKeyRange.upperBound(/*IDBKey*/ bound, [bool open = false]) => |
+ _upperBound(_class(), _translateKey(bound), open); |
+ |
+ factory IDBKeyRange.bound(/*IDBKey*/ lower, /*IDBKey*/ upper, |
+ [bool lowerOpen = false, bool upperOpen = false]) => |
+ _bound(_class(), _translateKey(lower), _translateKey(upper), |
+ lowerOpen, upperOpen); |
+ |
+ static var _cachedClass; |
+ |
+ static _class() { |
+ if (_cachedClass != null) return _cachedClass; |
+ return _cachedClass = _uncachedClass(); |
+ } |
+ |
+ static _uncachedClass() native ''' |
+ return window.webkitIDBKeyRange || window.mozIDBKeyRange || |
+ window.msIDBKeyRange || window.IDBKeyRange; |
+ '''; |
+ |
+ static _translateKey(idbkey) => idbkey; // TODO: fixme. |
+ |
+ static _IDBKeyRangeJs _only(cls, value) native |
+ '''return cls.only(value);'''; |
+ |
+ static _IDBKeyRangeJs _lowerBound(cls, bound, open) native |
+ '''return cls.lowerBound(bound, open);'''; |
+ |
+ static _IDBKeyRangeJs _upperBound(cls, bound, open) native |
+ '''return cls.upperBound(bound, open);'''; |
+ |
+ static _IDBKeyRangeJs _bound(cls, lower, upper, lowerOpen, upperOpen) native |
+ '''return cls.bound(lower, upper, lowerOpen, upperOpen);'''; |
+ |
+} |