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

Side by Side Diff: pkg/dev_compiler/tool/input_sdk/lib/indexed_db/dart2js/indexed_db_dart2js.dart

Issue 2752163002: Format all dart dev compiler files (Closed)
Patch Set: Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
1 /** 1 /**
2 * A client-side key-value store with support for indexes. 2 * A client-side key-value store with support for indexes.
3 * 3 *
4 * Many browsers support IndexedDB—a web standard for 4 * Many browsers support IndexedDB—a web standard for
5 * an indexed database. 5 * an indexed database.
6 * By storing data on the client in an IndexedDB, 6 * By storing data on the client in an IndexedDB,
7 * a web app gets some advantages, such as faster performance and persistence. 7 * a web app gets some advantages, such as faster performance and persistence.
8 * To find out which browsers support IndexedDB, 8 * To find out which browsers support IndexedDB,
9 * refer to [Can I Use?](http://caniuse.com/#feat=indexeddb) 9 * refer to [Can I Use?](http://caniuse.com/#feat=indexeddb)
10 * 10 *
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 import 'dart:_foreign_helper' show JS; 81 import 'dart:_foreign_helper' show JS;
82 import 'dart:_interceptors' show Interceptor, JSExtendableArray; 82 import 'dart:_interceptors' show Interceptor, JSExtendableArray;
83 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 83 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
84 // for details. All rights reserved. Use of this source code is governed by a 84 // for details. All rights reserved. Use of this source code is governed by a
85 // BSD-style license that can be found in the LICENSE file. 85 // BSD-style license that can be found in the LICENSE file.
86 86
87 // DO NOT EDIT - unless you are editing documentation as per: 87 // DO NOT EDIT - unless you are editing documentation as per:
88 // https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation 88 // https://code.google.com/p/dart/wiki/ContributingHTMLDocumentation
89 // Auto-generated dart:svg library. 89 // Auto-generated dart:svg library.
90 90
91
92
93
94
95 class _KeyRangeFactoryProvider { 91 class _KeyRangeFactoryProvider {
96
97 static KeyRange createKeyRange_only(/*Key*/ value) => 92 static KeyRange createKeyRange_only(/*Key*/ value) =>
98 _only(_class(), _translateKey(value)); 93 _only(_class(), _translateKey(value));
99 94
100 static KeyRange createKeyRange_lowerBound( 95 static KeyRange createKeyRange_lowerBound(
101 /*Key*/ bound, [bool open = false]) => 96 /*Key*/ bound,
97 [bool open = false]) =>
102 _lowerBound(_class(), _translateKey(bound), open); 98 _lowerBound(_class(), _translateKey(bound), open);
103 99
104 static KeyRange createKeyRange_upperBound( 100 static KeyRange createKeyRange_upperBound(
105 /*Key*/ bound, [bool open = false]) => 101 /*Key*/ bound,
102 [bool open = false]) =>
106 _upperBound(_class(), _translateKey(bound), open); 103 _upperBound(_class(), _translateKey(bound), open);
107 104
108 static KeyRange createKeyRange_bound(/*Key*/ lower, /*Key*/ upper, 105 static KeyRange createKeyRange_bound(/*Key*/ lower, /*Key*/ upper,
109 [bool lowerOpen = false, bool upperOpen = false]) => 106 [bool lowerOpen = false, bool upperOpen = false]) =>
110 _bound(_class(), _translateKey(lower), _translateKey(upper), 107 _bound(_class(), _translateKey(lower), _translateKey(upper), lowerOpen,
111 lowerOpen, upperOpen); 108 upperOpen);
112 109
113 static var _cachedClass; 110 static var _cachedClass;
114 111
115 static _class() { 112 static _class() {
116 if (_cachedClass != null) return _cachedClass; 113 if (_cachedClass != null) return _cachedClass;
117 return _cachedClass = _uncachedClass(); 114 return _cachedClass = _uncachedClass();
118 } 115 }
119 116
120 static _uncachedClass() => 117 static _uncachedClass() => JS(
121 JS('var', 118 'var',
122 '''window.webkitIDBKeyRange || window.mozIDBKeyRange || 119 '''window.webkitIDBKeyRange || window.mozIDBKeyRange ||
123 window.msIDBKeyRange || window.IDBKeyRange'''); 120 window.msIDBKeyRange || window.IDBKeyRange''');
124 121
125 static _translateKey(idbkey) => idbkey; // TODO: fixme. 122 static _translateKey(idbkey) => idbkey; // TODO: fixme.
126 123
127 static KeyRange _only(cls, value) => 124 static KeyRange _only(cls, value) => JS('KeyRange', '#.only(#)', cls, value);
128 JS('KeyRange', '#.only(#)', cls, value);
129 125
130 static KeyRange _lowerBound(cls, bound, open) => 126 static KeyRange _lowerBound(cls, bound, open) =>
131 JS('KeyRange', '#.lowerBound(#, #)', cls, bound, open); 127 JS('KeyRange', '#.lowerBound(#, #)', cls, bound, open);
132 128
133 static KeyRange _upperBound(cls, bound, open) => 129 static KeyRange _upperBound(cls, bound, open) =>
134 JS('KeyRange', '#.upperBound(#, #)', cls, bound, open); 130 JS('KeyRange', '#.upperBound(#, #)', cls, bound, open);
135 131
136 static KeyRange _bound(cls, lower, upper, lowerOpen, upperOpen) => 132 static KeyRange _bound(cls, lower, upper, lowerOpen, upperOpen) => JS(
137 JS('KeyRange', '#.bound(#, #, #, #)', 133 'KeyRange',
138 cls, lower, upper, lowerOpen, upperOpen); 134 '#.bound(#, #, #, #)',
135 cls,
136 lower,
137 upper,
138 lowerOpen,
139 upperOpen);
139 } 140 }
140 141
141 // Conversions for IDBKey. 142 // Conversions for IDBKey.
142 // 143 //
143 // Per http://www.w3.org/TR/IndexedDB/#key-construct 144 // Per http://www.w3.org/TR/IndexedDB/#key-construct
144 // 145 //
145 // "A value is said to be a valid key if it is one of the following types: Array 146 // "A value is said to be a valid key if it is one of the following types: Array
146 // JavaScript objects [ECMA-262], DOMString [WEBIDL], Date [ECMA-262] or float 147 // JavaScript objects [ECMA-262], DOMString [WEBIDL], Date [ECMA-262] or float
147 // [WEBIDL]. However Arrays are only valid keys if every item in the array is 148 // [WEBIDL]. However Arrays are only valid keys if every item in the array is
148 // defined and is a valid key (i.e. sparse arrays can not be valid keys) and if 149 // defined and is a valid key (i.e. sparse arrays can not be valid keys) and if
149 // the Array doesn't directly or indirectly contain itself. Any non-numeric 150 // the Array doesn't directly or indirectly contain itself. Any non-numeric
150 // properties are ignored, and thus does not affect whether the Array is a valid 151 // properties are ignored, and thus does not affect whether the Array is a valid
151 // key. Additionally, if the value is of type float, it is only a valid key if 152 // key. Additionally, if the value is of type float, it is only a valid key if
152 // it is not NaN, and if the value is of type Date it is only a valid key if its 153 // it is not NaN, and if the value is of type Date it is only a valid key if its
153 // [[PrimitiveValue]] internal property, as defined by [ECMA-262], is not NaN." 154 // [[PrimitiveValue]] internal property, as defined by [ECMA-262], is not NaN."
154 155
155 // What is required is to ensure that an Lists in the key are actually 156 // What is required is to ensure that an Lists in the key are actually
156 // JavaScript arrays, and any Dates are JavaScript Dates. 157 // JavaScript arrays, and any Dates are JavaScript Dates.
157 158
158
159 /** 159 /**
160 * Converts a native IDBKey into a Dart object. 160 * Converts a native IDBKey into a Dart object.
161 * 161 *
162 * May return the original input. May mutate the original input (but will be 162 * May return the original input. May mutate the original input (but will be
163 * idempotent if mutation occurs). It is assumed that this conversion happens 163 * idempotent if mutation occurs). It is assumed that this conversion happens
164 * on native IDBKeys on all paths that return IDBKeys from native DOM calls. 164 * on native IDBKeys on all paths that return IDBKeys from native DOM calls.
165 * 165 *
166 * If necessary, JavaScript Dates are converted into Dart Dates. 166 * If necessary, JavaScript Dates are converted into Dart Dates.
167 */ 167 */
168 _convertNativeToDart_IDBKey(nativeKey) { 168 _convertNativeToDart_IDBKey(nativeKey) {
169 containsDate(object) { 169 containsDate(object) {
170 if (isJavaScriptDate(object)) return true; 170 if (isJavaScriptDate(object)) return true;
171 if (object is List) { 171 if (object is List) {
172 for (int i = 0; i < object.length; i++) { 172 for (int i = 0; i < object.length; i++) {
173 if (containsDate(object[i])) return true; 173 if (containsDate(object[i])) return true;
174 } 174 }
175 } 175 }
176 return false; // number, string. 176 return false; // number, string.
177 } 177 }
178
178 if (containsDate(nativeKey)) { 179 if (containsDate(nativeKey)) {
179 throw new UnimplementedError('Key containing DateTime'); 180 throw new UnimplementedError('Key containing DateTime');
180 } 181 }
181 // TODO: Cache conversion somewhere? 182 // TODO: Cache conversion somewhere?
182 return nativeKey; 183 return nativeKey;
183 } 184 }
184 185
185 /** 186 /**
186 * Converts a Dart object into a valid IDBKey. 187 * Converts a Dart object into a valid IDBKey.
187 * 188 *
188 * May return the original input. Does not mutate input. 189 * May return the original input. Does not mutate input.
189 * 190 *
190 * If necessary, [dartKey] may be copied to ensure all lists are converted into 191 * If necessary, [dartKey] may be copied to ensure all lists are converted into
191 * JavaScript Arrays and Dart Dates into JavaScript Dates. 192 * JavaScript Arrays and Dart Dates into JavaScript Dates.
192 */ 193 */
193 _convertDartToNative_IDBKey(dartKey) { 194 _convertDartToNative_IDBKey(dartKey) {
194 // TODO: Implement. 195 // TODO: Implement.
195 return dartKey; 196 return dartKey;
196 } 197 }
197 198
198
199
200 /// May modify original. If so, action is idempotent. 199 /// May modify original. If so, action is idempotent.
201 _convertNativeToDart_IDBAny(object) { 200 _convertNativeToDart_IDBAny(object) {
202 return convertNativeToDart_AcceptStructuredClone(object, mustCopy: false); 201 return convertNativeToDart_AcceptStructuredClone(object, mustCopy: false);
203 } 202 }
204 203
205 // TODO(sra): Add DateTime. 204 // TODO(sra): Add DateTime.
206 const String _idbKey = 'JSExtendableArray|=Object|num|String'; 205 const String _idbKey = 'JSExtendableArray|=Object|num|String';
207 const _annotation_Creates_IDBKey = const Creates(_idbKey); 206 const _annotation_Creates_IDBKey = const Creates(_idbKey);
208 const _annotation_Returns_IDBKey = const Returns(_idbKey); 207 const _annotation_Returns_IDBKey = const Returns(_idbKey);
209 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 208 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
210 // for details. All rights reserved. Use of this source code is governed by a 209 // for details. All rights reserved. Use of this source code is governed by a
211 // BSD-style license that can be found in the LICENSE file. 210 // BSD-style license that can be found in the LICENSE file.
212 211
213
214 @DomName('IDBCursor') 212 @DomName('IDBCursor')
215 @Unstable() 213 @Unstable()
216 @Native("IDBCursor") 214 @Native("IDBCursor")
217 class Cursor extends Interceptor { 215 class Cursor extends Interceptor {
218 @DomName('IDBCursor.delete') 216 @DomName('IDBCursor.delete')
219 Future delete() { 217 Future delete() {
220 try { 218 try {
221 return _completeRequest(_delete()); 219 return _completeRequest(_delete());
222 } catch (e, stacktrace) { 220 } catch (e, stacktrace) {
223 return new Future.error(e, stacktrace); 221 return new Future.error(e, stacktrace);
224 } 222 }
225 } 223 }
226 224
227 @DomName('IDBCursor.value') 225 @DomName('IDBCursor.value')
228 Future update(value) { 226 Future update(value) {
229 try { 227 try {
230 return _completeRequest(_update(value)); 228 return _completeRequest(_update(value));
231 } catch (e, stacktrace) { 229 } catch (e, stacktrace) {
232 return new Future.error(e, stacktrace); 230 return new Future.error(e, stacktrace);
233 } 231 }
234 } 232 }
235 233
236 @JSName('continue') 234 @JSName('continue')
237 @DomName('IDBCursor.continue') 235 @DomName('IDBCursor.continue')
238 void next([Object key]) { 236 void next([Object key]) {
239 if (key == null) { 237 if (key == null) {
240 JS('void', '#.continue()', this); 238 JS('void', '#.continue()', this);
241 } else { 239 } else {
242 JS('void', '#.continue(#)', this, key); 240 JS('void', '#.continue(#)', this, key);
243 } 241 }
244 } 242 }
245 // To suppress missing implicit constructor warnings. 243
246 factory Cursor._() { throw new UnsupportedError("Not supported"); } 244 // To suppress missing implicit constructor warnings.
245 factory Cursor._() {
246 throw new UnsupportedError("Not supported");
247 }
247 248
248 @DomName('IDBCursor.direction') 249 @DomName('IDBCursor.direction')
249 @DocsEditable() 250 @DocsEditable()
250 final String direction; 251 final String direction;
251 252
252 @DomName('IDBCursor.key') 253 @DomName('IDBCursor.key')
253 @DocsEditable() 254 @DocsEditable()
254 @_annotation_Creates_IDBKey 255 @_annotation_Creates_IDBKey
255 @_annotation_Returns_IDBKey 256 @_annotation_Returns_IDBKey
256 final Object key; 257 final Object key;
257 258
258 @DomName('IDBCursor.primaryKey') 259 @DomName('IDBCursor.primaryKey')
259 @DocsEditable() 260 @DocsEditable()
260 @_annotation_Creates_IDBKey 261 @_annotation_Creates_IDBKey
261 @_annotation_Returns_IDBKey 262 @_annotation_Returns_IDBKey
262 final Object primaryKey; 263 final Object primaryKey;
263 264
264 @DomName('IDBCursor.source') 265 @DomName('IDBCursor.source')
265 @DocsEditable() 266 @DocsEditable()
266 @Creates('Null') 267 @Creates('Null')
267 @Returns('ObjectStore|Index|Null') 268 @Returns('ObjectStore|Index|Null')
268 final Object source; 269 final Object source;
269 270
270 @DomName('IDBCursor.advance') 271 @DomName('IDBCursor.advance')
271 @DocsEditable() 272 @DocsEditable()
272 void advance(int count) native; 273 void advance(int count) native ;
273 274
274 @DomName('IDBCursor.continuePrimaryKey') 275 @DomName('IDBCursor.continuePrimaryKey')
275 @DocsEditable() 276 @DocsEditable()
276 @Experimental() // untriaged 277 @Experimental() // untriaged
277 void continuePrimaryKey(Object key, Object primaryKey) native; 278 void continuePrimaryKey(Object key, Object primaryKey) native ;
278 279
279 @JSName('delete') 280 @JSName('delete')
280 @DomName('IDBCursor.delete') 281 @DomName('IDBCursor.delete')
281 @DocsEditable() 282 @DocsEditable()
282 Request _delete() native; 283 Request _delete() native ;
283 284
284 @DomName('IDBCursor.update') 285 @DomName('IDBCursor.update')
285 @DocsEditable() 286 @DocsEditable()
286 Request _update(/*any*/ value) { 287 Request _update(/*any*/ value) {
287 var value_1 = convertDartToNative_SerializedScriptValue(value); 288 var value_1 = convertDartToNative_SerializedScriptValue(value);
288 return _update_1(value_1); 289 return _update_1(value_1);
289 } 290 }
291
290 @JSName('update') 292 @JSName('update')
291 @DomName('IDBCursor.update') 293 @DomName('IDBCursor.update')
292 @DocsEditable() 294 @DocsEditable()
293 Request _update_1(value) native; 295 Request _update_1(value) native ;
294
295 } 296 }
296 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 297 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
297 // for details. All rights reserved. Use of this source code is governed by a 298 // for details. All rights reserved. Use of this source code is governed by a
298 // BSD-style license that can be found in the LICENSE file. 299 // BSD-style license that can be found in the LICENSE file.
299 300
300
301 @DocsEditable() 301 @DocsEditable()
302 @DomName('IDBCursorWithValue') 302 @DomName('IDBCursorWithValue')
303 @Unstable() 303 @Unstable()
304 @Native("IDBCursorWithValue") 304 @Native("IDBCursorWithValue")
305 class CursorWithValue extends Cursor { 305 class CursorWithValue extends Cursor {
306 // To suppress missing implicit constructor warnings. 306 // To suppress missing implicit constructor warnings.
307 factory CursorWithValue._() { throw new UnsupportedError("Not supported"); } 307 factory CursorWithValue._() {
308 throw new UnsupportedError("Not supported");
309 }
308 310
309 @DomName('IDBCursorWithValue.value') 311 @DomName('IDBCursorWithValue.value')
310 @DocsEditable() 312 @DocsEditable()
311 dynamic get value => _convertNativeToDart_IDBAny(this._get_value); 313 dynamic get value => _convertNativeToDart_IDBAny(this._get_value);
312 @JSName('value') 314 @JSName('value')
313 @DomName('IDBCursorWithValue.value') 315 @DomName('IDBCursorWithValue.value')
314 @DocsEditable() 316 @DocsEditable()
315 @annotation_Creates_SerializedScriptValue 317 @annotation_Creates_SerializedScriptValue
316 @annotation_Returns_SerializedScriptValue 318 @annotation_Returns_SerializedScriptValue
317 final dynamic _get_value; 319 final dynamic _get_value;
318 } 320 }
319 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 321 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
320 // for details. All rights reserved. Use of this source code is governed by a 322 // for details. All rights reserved. Use of this source code is governed by a
321 // BSD-style license that can be found in the LICENSE file. 323 // BSD-style license that can be found in the LICENSE file.
322 324
323
324 @DocsEditable() 325 @DocsEditable()
325 /** 326 /**
326 * An indexed database object for storing client-side data 327 * An indexed database object for storing client-side data
327 * in web apps. 328 * in web apps.
328 */ 329 */
329 @DomName('IDBDatabase') 330 @DomName('IDBDatabase')
330 @SupportedBrowser(SupportedBrowser.CHROME) 331 @SupportedBrowser(SupportedBrowser.CHROME)
331 @SupportedBrowser(SupportedBrowser.FIREFOX, '15') 332 @SupportedBrowser(SupportedBrowser.FIREFOX, '15')
332 @SupportedBrowser(SupportedBrowser.IE, '10') 333 @SupportedBrowser(SupportedBrowser.IE, '10')
333 @Experimental() 334 @Experimental()
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 } 383 }
383 384
384 Transaction transactionStores(DomStringList storeNames, String mode) { 385 Transaction transactionStores(DomStringList storeNames, String mode) {
385 if (mode != 'readonly' && mode != 'readwrite') { 386 if (mode != 'readonly' && mode != 'readwrite') {
386 throw new ArgumentError(mode); 387 throw new ArgumentError(mode);
387 } 388 }
388 return _transaction(storeNames, mode); 389 return _transaction(storeNames, mode);
389 } 390 }
390 391
391 @JSName('transaction') 392 @JSName('transaction')
392 Transaction _transaction(stores, mode) native; 393 Transaction _transaction(stores, mode) native ;
393 394
394 // To suppress missing implicit constructor warnings. 395 // To suppress missing implicit constructor warnings.
395 factory Database._() { throw new UnsupportedError("Not supported"); } 396 factory Database._() {
397 throw new UnsupportedError("Not supported");
398 }
396 399
397 /** 400 /**
398 * Static factory designed to expose `abort` events to event 401 * Static factory designed to expose `abort` events to event
399 * handlers that are not necessarily instances of [Database]. 402 * handlers that are not necessarily instances of [Database].
400 * 403 *
401 * See [EventStreamProvider] for usage information. 404 * See [EventStreamProvider] for usage information.
402 */ 405 */
403 @DomName('IDBDatabase.abortEvent') 406 @DomName('IDBDatabase.abortEvent')
404 @DocsEditable() 407 @DocsEditable()
405 static const EventStreamProvider<Event> abortEvent = const EventStreamProvider <Event>('abort'); 408 static const EventStreamProvider<Event> abortEvent =
409 const EventStreamProvider<Event>('abort');
406 410
407 /** 411 /**
408 * Static factory designed to expose `close` events to event 412 * Static factory designed to expose `close` events to event
409 * handlers that are not necessarily instances of [Database]. 413 * handlers that are not necessarily instances of [Database].
410 * 414 *
411 * See [EventStreamProvider] for usage information. 415 * See [EventStreamProvider] for usage information.
412 */ 416 */
413 @DomName('IDBDatabase.closeEvent') 417 @DomName('IDBDatabase.closeEvent')
414 @DocsEditable() 418 @DocsEditable()
415 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540 419 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540
416 @Experimental() 420 @Experimental()
417 static const EventStreamProvider<Event> closeEvent = const EventStreamProvider <Event>('close'); 421 static const EventStreamProvider<Event> closeEvent =
422 const EventStreamProvider<Event>('close');
418 423
419 /** 424 /**
420 * Static factory designed to expose `error` events to event 425 * Static factory designed to expose `error` events to event
421 * handlers that are not necessarily instances of [Database]. 426 * handlers that are not necessarily instances of [Database].
422 * 427 *
423 * See [EventStreamProvider] for usage information. 428 * See [EventStreamProvider] for usage information.
424 */ 429 */
425 @DomName('IDBDatabase.errorEvent') 430 @DomName('IDBDatabase.errorEvent')
426 @DocsEditable() 431 @DocsEditable()
427 static const EventStreamProvider<Event> errorEvent = const EventStreamProvider <Event>('error'); 432 static const EventStreamProvider<Event> errorEvent =
433 const EventStreamProvider<Event>('error');
428 434
429 /** 435 /**
430 * Static factory designed to expose `versionchange` events to event 436 * Static factory designed to expose `versionchange` events to event
431 * handlers that are not necessarily instances of [Database]. 437 * handlers that are not necessarily instances of [Database].
432 * 438 *
433 * See [EventStreamProvider] for usage information. 439 * See [EventStreamProvider] for usage information.
434 */ 440 */
435 @DomName('IDBDatabase.versionchangeEvent') 441 @DomName('IDBDatabase.versionchangeEvent')
436 @DocsEditable() 442 @DocsEditable()
437 static const EventStreamProvider<VersionChangeEvent> versionChangeEvent = cons t EventStreamProvider<VersionChangeEvent>('versionchange'); 443 static const EventStreamProvider<VersionChangeEvent> versionChangeEvent =
444 const EventStreamProvider<VersionChangeEvent>('versionchange');
438 445
439 @DomName('IDBDatabase.name') 446 @DomName('IDBDatabase.name')
440 @DocsEditable() 447 @DocsEditable()
441 final String name; 448 final String name;
442 449
443 @DomName('IDBDatabase.objectStoreNames') 450 @DomName('IDBDatabase.objectStoreNames')
444 @DocsEditable() 451 @DocsEditable()
445 @Returns('DomStringList') 452 @Returns('DomStringList')
446 @Creates('DomStringList') 453 @Creates('DomStringList')
447 final List<String> objectStoreNames; 454 final List<String> objectStoreNames;
448 455
449 @DomName('IDBDatabase.version') 456 @DomName('IDBDatabase.version')
450 @DocsEditable() 457 @DocsEditable()
451 @Creates('int|String|Null') 458 @Creates('int|String|Null')
452 @Returns('int|String|Null') 459 @Returns('int|String|Null')
453 final Object version; 460 final Object version;
454 461
455 @DomName('IDBDatabase.close') 462 @DomName('IDBDatabase.close')
456 @DocsEditable() 463 @DocsEditable()
457 void close() native; 464 void close() native ;
458 465
459 @DomName('IDBDatabase.createObjectStore') 466 @DomName('IDBDatabase.createObjectStore')
460 @DocsEditable() 467 @DocsEditable()
461 ObjectStore _createObjectStore(String name, [Map options]) { 468 ObjectStore _createObjectStore(String name, [Map options]) {
462 if (options != null) { 469 if (options != null) {
463 var options_1 = convertDartToNative_Dictionary(options); 470 var options_1 = convertDartToNative_Dictionary(options);
464 return _createObjectStore_1(name, options_1); 471 return _createObjectStore_1(name, options_1);
465 } 472 }
466 return _createObjectStore_2(name); 473 return _createObjectStore_2(name);
467 } 474 }
475
468 @JSName('createObjectStore') 476 @JSName('createObjectStore')
469 @DomName('IDBDatabase.createObjectStore') 477 @DomName('IDBDatabase.createObjectStore')
470 @DocsEditable() 478 @DocsEditable()
471 ObjectStore _createObjectStore_1(name, options) native; 479 ObjectStore _createObjectStore_1(name, options) native ;
472 @JSName('createObjectStore') 480 @JSName('createObjectStore')
473 @DomName('IDBDatabase.createObjectStore') 481 @DomName('IDBDatabase.createObjectStore')
474 @DocsEditable() 482 @DocsEditable()
475 ObjectStore _createObjectStore_2(name) native; 483 ObjectStore _createObjectStore_2(name) native ;
476 484
477 @DomName('IDBDatabase.deleteObjectStore') 485 @DomName('IDBDatabase.deleteObjectStore')
478 @DocsEditable() 486 @DocsEditable()
479 void deleteObjectStore(String name) native; 487 void deleteObjectStore(String name) native ;
480 488
481 /// Stream of `abort` events handled by this [Database]. 489 /// Stream of `abort` events handled by this [Database].
482 @DomName('IDBDatabase.onabort') 490 @DomName('IDBDatabase.onabort')
483 @DocsEditable() 491 @DocsEditable()
484 Stream<Event> get onAbort => abortEvent.forTarget(this); 492 Stream<Event> get onAbort => abortEvent.forTarget(this);
485 493
486 /// Stream of `close` events handled by this [Database]. 494 /// Stream of `close` events handled by this [Database].
487 @DomName('IDBDatabase.onclose') 495 @DomName('IDBDatabase.onclose')
488 @DocsEditable() 496 @DocsEditable()
489 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540 497 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=22540
490 @Experimental() 498 @Experimental()
491 Stream<Event> get onClose => closeEvent.forTarget(this); 499 Stream<Event> get onClose => closeEvent.forTarget(this);
492 500
493 /// Stream of `error` events handled by this [Database]. 501 /// Stream of `error` events handled by this [Database].
494 @DomName('IDBDatabase.onerror') 502 @DomName('IDBDatabase.onerror')
495 @DocsEditable() 503 @DocsEditable()
496 Stream<Event> get onError => errorEvent.forTarget(this); 504 Stream<Event> get onError => errorEvent.forTarget(this);
497 505
498 /// Stream of `versionchange` events handled by this [Database]. 506 /// Stream of `versionchange` events handled by this [Database].
499 @DomName('IDBDatabase.onversionchange') 507 @DomName('IDBDatabase.onversionchange')
500 @DocsEditable() 508 @DocsEditable()
501 Stream<VersionChangeEvent> get onVersionChange => versionChangeEvent.forTarget (this); 509 Stream<VersionChangeEvent> get onVersionChange =>
510 versionChangeEvent.forTarget(this);
502 } 511 }
503 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 512 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
504 // for details. All rights reserved. Use of this source code is governed by a 513 // for details. All rights reserved. Use of this source code is governed by a
505 // BSD-style license that can be found in the LICENSE file. 514 // BSD-style license that can be found in the LICENSE file.
506 515
507
508 @DomName('IDBFactory') 516 @DomName('IDBFactory')
509 @SupportedBrowser(SupportedBrowser.CHROME) 517 @SupportedBrowser(SupportedBrowser.CHROME)
510 @SupportedBrowser(SupportedBrowser.FIREFOX, '15') 518 @SupportedBrowser(SupportedBrowser.FIREFOX, '15')
511 @SupportedBrowser(SupportedBrowser.IE, '10') 519 @SupportedBrowser(SupportedBrowser.IE, '10')
512 @Experimental() 520 @Experimental()
513 @Unstable() 521 @Unstable()
514 @Native("IDBFactory") 522 @Native("IDBFactory")
515 class IdbFactory extends Interceptor { 523 class IdbFactory extends Interceptor {
516 /** 524 /**
517 * Checks to see if Indexed DB is supported on the current platform. 525 * Checks to see if Indexed DB is supported on the current platform.
518 */ 526 */
519 static bool get supported { 527 static bool get supported {
520 return JS('bool', 528 return JS(
529 'bool',
521 '!!(window.indexedDB || ' 530 '!!(window.indexedDB || '
522 'window.webkitIndexedDB || ' 531 'window.webkitIndexedDB || '
523 'window.mozIndexedDB)'); 532 'window.mozIndexedDB)');
524 } 533 }
525 534
526 @DomName('IDBFactory.open') 535 @DomName('IDBFactory.open')
527 Future<Database> open(String name, 536 Future<Database> open(String name,
528 {int version, void onUpgradeNeeded(VersionChangeEvent), 537 {int version,
538 void onUpgradeNeeded(VersionChangeEvent),
529 void onBlocked(Event)}) { 539 void onBlocked(Event)}) {
530 if ((version == null) != (onUpgradeNeeded == null)) { 540 if ((version == null) != (onUpgradeNeeded == null)) {
531 return new Future.error(new ArgumentError( 541 return new Future.error(new ArgumentError(
532 'version and onUpgradeNeeded must be specified together')); 542 'version and onUpgradeNeeded must be specified together'));
533 } 543 }
534 try { 544 try {
535 var request; 545 var request;
536 if (version != null) { 546 if (version != null) {
537 request = _open(name, version); 547 request = _open(name, version);
538 } else { 548 } else {
539 request = _open(name); 549 request = _open(name);
540 } 550 }
541 551
542 if (onUpgradeNeeded != null) { 552 if (onUpgradeNeeded != null) {
543 request.onUpgradeNeeded.listen(onUpgradeNeeded); 553 request.onUpgradeNeeded.listen(onUpgradeNeeded);
544 } 554 }
545 if (onBlocked != null) { 555 if (onBlocked != null) {
546 request.onBlocked.listen(onBlocked); 556 request.onBlocked.listen(onBlocked);
547 } 557 }
548 return _completeRequest(request); 558 return _completeRequest(request);
549 } catch (e, stacktrace) { 559 } catch (e, stacktrace) {
550 return new Future.error(e, stacktrace); 560 return new Future.error(e, stacktrace);
551 } 561 }
552 } 562 }
553 563
554 @DomName('IDBFactory.deleteDatabase') 564 @DomName('IDBFactory.deleteDatabase')
555 Future<IdbFactory> deleteDatabase(String name, 565 Future<IdbFactory> deleteDatabase(String name, {void onBlocked(Event e)}) {
556 {void onBlocked(Event e)}) {
557 try { 566 try {
558 var request = _deleteDatabase(name); 567 var request = _deleteDatabase(name);
559 568
560 if (onBlocked != null) { 569 if (onBlocked != null) {
561 request.onBlocked.listen(onBlocked); 570 request.onBlocked.listen(onBlocked);
562 } 571 }
563 var completer = new Completer<IdbFactory>.sync(); 572 var completer = new Completer<IdbFactory>.sync();
564 request.onSuccess.listen((e) { 573 request.onSuccess.listen((e) {
565 completer.complete(this); 574 completer.complete(this);
566 }); 575 });
(...skipping 14 matching lines...) Expand all
581 return _completeRequest(request); 590 return _completeRequest(request);
582 } catch (e, stacktrace) { 591 } catch (e, stacktrace) {
583 return new Future.error(e, stacktrace); 592 return new Future.error(e, stacktrace);
584 } 593 }
585 } 594 }
586 595
587 /** 596 /**
588 * Checks to see if getDatabaseNames is supported by the current platform. 597 * Checks to see if getDatabaseNames is supported by the current platform.
589 */ 598 */
590 bool get supportsDatabaseNames { 599 bool get supportsDatabaseNames {
591 return supported && JS('bool', 600 return supported &&
592 '!!(#.getDatabaseNames || #.webkitGetDatabaseNames)', this, this); 601 JS('bool', '!!(#.getDatabaseNames || #.webkitGetDatabaseNames)', this,
602 this);
593 } 603 }
594 604
595 // To suppress missing implicit constructor warnings. 605 // To suppress missing implicit constructor warnings.
596 factory IdbFactory._() { throw new UnsupportedError("Not supported"); } 606 factory IdbFactory._() {
607 throw new UnsupportedError("Not supported");
608 }
597 609
598 @DomName('IDBFactory.cmp') 610 @DomName('IDBFactory.cmp')
599 @DocsEditable() 611 @DocsEditable()
600 int cmp(Object first, Object second) native; 612 int cmp(Object first, Object second) native ;
601 613
602 @JSName('deleteDatabase') 614 @JSName('deleteDatabase')
603 @DomName('IDBFactory.deleteDatabase') 615 @DomName('IDBFactory.deleteDatabase')
604 @DocsEditable() 616 @DocsEditable()
605 OpenDBRequest _deleteDatabase(String name) native; 617 OpenDBRequest _deleteDatabase(String name) native ;
606 618
607 @JSName('open') 619 @JSName('open')
608 @DomName('IDBFactory.open') 620 @DomName('IDBFactory.open')
609 @DocsEditable() 621 @DocsEditable()
610 @Returns('Request') 622 @Returns('Request')
611 @Creates('Request') 623 @Creates('Request')
612 @Creates('Database') 624 @Creates('Database')
613 OpenDBRequest _open(String name, [int version]) native; 625 OpenDBRequest _open(String name, [int version]) native ;
614 626
615 @JSName('webkitGetDatabaseNames') 627 @JSName('webkitGetDatabaseNames')
616 @DomName('IDBFactory.webkitGetDatabaseNames') 628 @DomName('IDBFactory.webkitGetDatabaseNames')
617 @DocsEditable() 629 @DocsEditable()
618 @SupportedBrowser(SupportedBrowser.CHROME) 630 @SupportedBrowser(SupportedBrowser.CHROME)
619 @SupportedBrowser(SupportedBrowser.SAFARI) 631 @SupportedBrowser(SupportedBrowser.SAFARI)
620 @Experimental() 632 @Experimental()
621 @Returns('Request') 633 @Returns('Request')
622 @Creates('Request') 634 @Creates('Request')
623 @Creates('DomStringList') 635 @Creates('DomStringList')
624 Request _webkitGetDatabaseNames() native; 636 Request _webkitGetDatabaseNames() native ;
625
626 } 637 }
627 638
628
629 /** 639 /**
630 * Ties a request to a completer, so the completer is completed when it succeeds 640 * Ties a request to a completer, so the completer is completed when it succeeds
631 * and errors out when the request errors. 641 * and errors out when the request errors.
632 */ 642 */
633 Future/*<T>*/ _completeRequest/*<T>*/(Request request) { 643 Future/*<T>*/ _completeRequest/*<T>*/(Request request) {
634 var completer = new Completer/*<T>*/.sync(); 644 var completer = new Completer/*<T>*/ .sync();
635 // TODO: make sure that completer.complete is synchronous as transactions 645 // TODO: make sure that completer.complete is synchronous as transactions
636 // may be committed if the result is not processed immediately. 646 // may be committed if the result is not processed immediately.
637 request.onSuccess.listen((e) { 647 request.onSuccess.listen((e) {
638 var result = _cast/*<T>*/(request.result); 648 var result = _cast/*<T>*/(request.result);
639 completer.complete(result); 649 completer.complete(result);
640 }); 650 });
641 request.onError.listen(completer.completeError); 651 request.onError.listen(completer.completeError);
642 return completer.future; 652 return completer.future;
643 } 653 }
644 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 654 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
645 // for details. All rights reserved. Use of this source code is governed by a 655 // for details. All rights reserved. Use of this source code is governed by a
646 // BSD-style license that can be found in the LICENSE file. 656 // BSD-style license that can be found in the LICENSE file.
647 657
648
649 @DomName('IDBIndex') 658 @DomName('IDBIndex')
650 @Unstable() 659 @Unstable()
651 @Native("IDBIndex") 660 @Native("IDBIndex")
652 class Index extends Interceptor { 661 class Index extends Interceptor {
653 @DomName('IDBIndex.count') 662 @DomName('IDBIndex.count')
654 Future<int> count([key_OR_range]) { 663 Future<int> count([key_OR_range]) {
655 try { 664 try {
656 var request = _count(key_OR_range); 665 var request = _count(key_OR_range);
657 return _completeRequest(request); 666 return _completeRequest(request);
658 } catch (e, stacktrace) { 667 } catch (e, stacktrace) {
659 return new Future.error(e, stacktrace); 668 return new Future.error(e, stacktrace);
660 } 669 }
661 } 670 }
662 671
663 @DomName('IDBIndex.get') 672 @DomName('IDBIndex.get')
664 Future get(key) { 673 Future get(key) {
665 try { 674 try {
(...skipping 16 matching lines...) Expand all
682 } 691 }
683 } 692 }
684 693
685 /** 694 /**
686 * Creates a stream of cursors over the records in this object store. 695 * Creates a stream of cursors over the records in this object store.
687 * 696 *
688 * See also: 697 * See also:
689 * 698 *
690 * * [ObjectStore.openCursor] 699 * * [ObjectStore.openCursor]
691 */ 700 */
692 Stream<CursorWithValue> openCursor({key, KeyRange range, String direction, 701 Stream<CursorWithValue> openCursor(
693 bool autoAdvance}) { 702 {key, KeyRange range, String direction, bool autoAdvance}) {
694 var key_OR_range = null; 703 var key_OR_range = null;
695 if (key != null) { 704 if (key != null) {
696 if (range != null) { 705 if (range != null) {
697 throw new ArgumentError('Cannot specify both key and range.'); 706 throw new ArgumentError('Cannot specify both key and range.');
698 } 707 }
699 key_OR_range = key; 708 key_OR_range = key;
700 } else { 709 } else {
701 key_OR_range = range; 710 key_OR_range = range;
702 } 711 }
703 var request; 712 var request;
704 if (direction == null) { 713 if (direction == null) {
705 // FIXME: Passing in "next" should be unnecessary. 714 // FIXME: Passing in "next" should be unnecessary.
706 request = _openCursor(key_OR_range, "next"); 715 request = _openCursor(key_OR_range, "next");
707 } else { 716 } else {
708 request = _openCursor(key_OR_range, direction); 717 request = _openCursor(key_OR_range, direction);
709 } 718 }
710 return ObjectStore._cursorStreamFromResult(request, autoAdvance); 719 return ObjectStore._cursorStreamFromResult(request, autoAdvance);
711 } 720 }
712 721
713 /** 722 /**
714 * Creates a stream of cursors over the records in this object store. 723 * Creates a stream of cursors over the records in this object store.
715 * 724 *
716 * See also: 725 * See also:
717 * 726 *
718 * * [ObjectStore.openCursor] 727 * * [ObjectStore.openCursor]
719 */ 728 */
720 Stream<Cursor> openKeyCursor({key, KeyRange range, String direction, 729 Stream<Cursor> openKeyCursor(
721 bool autoAdvance}) { 730 {key, KeyRange range, String direction, bool autoAdvance}) {
722 var key_OR_range = null; 731 var key_OR_range = null;
723 if (key != null) { 732 if (key != null) {
724 if (range != null) { 733 if (range != null) {
725 throw new ArgumentError('Cannot specify both key and range.'); 734 throw new ArgumentError('Cannot specify both key and range.');
726 } 735 }
727 key_OR_range = key; 736 key_OR_range = key;
728 } else { 737 } else {
729 key_OR_range = range; 738 key_OR_range = range;
730 } 739 }
731 var request; 740 var request;
732 if (direction == null) { 741 if (direction == null) {
733 // FIXME: Passing in "next" should be unnecessary. 742 // FIXME: Passing in "next" should be unnecessary.
734 request = _openKeyCursor(key_OR_range, "next"); 743 request = _openKeyCursor(key_OR_range, "next");
735 } else { 744 } else {
736 request = _openKeyCursor(key_OR_range, direction); 745 request = _openKeyCursor(key_OR_range, direction);
737 } 746 }
738 return ObjectStore._cursorStreamFromResult(request, autoAdvance); 747 return ObjectStore._cursorStreamFromResult(request, autoAdvance);
739 } 748 }
740 749
741 // To suppress missing implicit constructor warnings. 750 // To suppress missing implicit constructor warnings.
742 factory Index._() { throw new UnsupportedError("Not supported"); } 751 factory Index._() {
752 throw new UnsupportedError("Not supported");
753 }
743 754
744 @DomName('IDBIndex.keyPath') 755 @DomName('IDBIndex.keyPath')
745 @DocsEditable() 756 @DocsEditable()
746 @annotation_Creates_SerializedScriptValue 757 @annotation_Creates_SerializedScriptValue
747 final Object keyPath; 758 final Object keyPath;
748 759
749 @DomName('IDBIndex.multiEntry') 760 @DomName('IDBIndex.multiEntry')
750 @DocsEditable() 761 @DocsEditable()
751 final bool multiEntry; 762 final bool multiEntry;
752 763
753 @DomName('IDBIndex.name') 764 @DomName('IDBIndex.name')
754 @DocsEditable() 765 @DocsEditable()
755 final String name; 766 final String name;
756 767
757 @DomName('IDBIndex.objectStore') 768 @DomName('IDBIndex.objectStore')
758 @DocsEditable() 769 @DocsEditable()
759 final ObjectStore objectStore; 770 final ObjectStore objectStore;
760 771
761 @DomName('IDBIndex.unique') 772 @DomName('IDBIndex.unique')
762 @DocsEditable() 773 @DocsEditable()
763 final bool unique; 774 final bool unique;
764 775
765 @JSName('count') 776 @JSName('count')
766 @DomName('IDBIndex.count') 777 @DomName('IDBIndex.count')
767 @DocsEditable() 778 @DocsEditable()
768 Request _count(Object key) native; 779 Request _count(Object key) native ;
769 780
770 @JSName('get') 781 @JSName('get')
771 @DomName('IDBIndex.get') 782 @DomName('IDBIndex.get')
772 @DocsEditable() 783 @DocsEditable()
773 @Returns('Request') 784 @Returns('Request')
774 @Creates('Request') 785 @Creates('Request')
775 @annotation_Creates_SerializedScriptValue 786 @annotation_Creates_SerializedScriptValue
776 Request _get(Object key) native; 787 Request _get(Object key) native ;
777 788
778 @DomName('IDBIndex.getAll') 789 @DomName('IDBIndex.getAll')
779 @DocsEditable() 790 @DocsEditable()
780 @Experimental() // untriaged 791 @Experimental() // untriaged
781 Request getAll(Object range, [int maxCount]) native; 792 Request getAll(Object range, [int maxCount]) native ;
782 793
783 @DomName('IDBIndex.getAllKeys') 794 @DomName('IDBIndex.getAllKeys')
784 @DocsEditable() 795 @DocsEditable()
785 @Experimental() // untriaged 796 @Experimental() // untriaged
786 Request getAllKeys(Object range, [int maxCount]) native; 797 Request getAllKeys(Object range, [int maxCount]) native ;
787 798
788 @JSName('getKey') 799 @JSName('getKey')
789 @DomName('IDBIndex.getKey') 800 @DomName('IDBIndex.getKey')
790 @DocsEditable() 801 @DocsEditable()
791 @Returns('Request') 802 @Returns('Request')
792 @Creates('Request') 803 @Creates('Request')
793 @annotation_Creates_SerializedScriptValue 804 @annotation_Creates_SerializedScriptValue
794 @Creates('ObjectStore') 805 @Creates('ObjectStore')
795 Request _getKey(Object key) native; 806 Request _getKey(Object key) native ;
796 807
797 @JSName('openCursor') 808 @JSName('openCursor')
798 @DomName('IDBIndex.openCursor') 809 @DomName('IDBIndex.openCursor')
799 @DocsEditable() 810 @DocsEditable()
800 @Returns('Request') 811 @Returns('Request')
801 @Creates('Request') 812 @Creates('Request')
802 @Creates('Cursor') 813 @Creates('Cursor')
803 Request _openCursor(Object range, [String direction]) native; 814 Request _openCursor(Object range, [String direction]) native ;
804 815
805 @JSName('openKeyCursor') 816 @JSName('openKeyCursor')
806 @DomName('IDBIndex.openKeyCursor') 817 @DomName('IDBIndex.openKeyCursor')
807 @DocsEditable() 818 @DocsEditable()
808 @Returns('Request') 819 @Returns('Request')
809 @Creates('Request') 820 @Creates('Request')
810 @Creates('Cursor') 821 @Creates('Cursor')
811 Request _openKeyCursor(Object range, [String direction]) native; 822 Request _openKeyCursor(Object range, [String direction]) native ;
812
813 } 823 }
814 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 824 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
815 // for details. All rights reserved. Use of this source code is governed by a 825 // for details. All rights reserved. Use of this source code is governed by a
816 // BSD-style license that can be found in the LICENSE file. 826 // BSD-style license that can be found in the LICENSE file.
817 827
818
819 @DomName('IDBKeyRange') 828 @DomName('IDBKeyRange')
820 @Unstable() 829 @Unstable()
821 @Native("IDBKeyRange") 830 @Native("IDBKeyRange")
822 class KeyRange extends Interceptor { 831 class KeyRange extends Interceptor {
823 @DomName('IDBKeyRange.only') 832 @DomName('IDBKeyRange.only')
824 factory KeyRange.only(/*Key*/ value) => 833 factory KeyRange.only(/*Key*/ value) =>
825 _KeyRangeFactoryProvider.createKeyRange_only(value); 834 _KeyRangeFactoryProvider.createKeyRange_only(value);
826 835
827 @DomName('IDBKeyRange.lowerBound') 836 @DomName('IDBKeyRange.lowerBound')
828 factory KeyRange.lowerBound(/*Key*/ bound, [bool open = false]) => 837 factory KeyRange.lowerBound(/*Key*/ bound, [bool open = false]) =>
829 _KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open); 838 _KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open);
830 839
831 @DomName('IDBKeyRange.upperBound') 840 @DomName('IDBKeyRange.upperBound')
832 factory KeyRange.upperBound(/*Key*/ bound, [bool open = false]) => 841 factory KeyRange.upperBound(/*Key*/ bound, [bool open = false]) =>
833 _KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open); 842 _KeyRangeFactoryProvider.createKeyRange_upperBound(bound, open);
834 843
835 @DomName('KeyRange.bound') 844 @DomName('KeyRange.bound')
836 factory KeyRange.bound(/*Key*/ lower, /*Key*/ upper, 845 factory KeyRange.bound(/*Key*/ lower, /*Key*/ upper,
837 [bool lowerOpen = false, bool upperOpen = false]) => 846 [bool lowerOpen = false, bool upperOpen = false]) =>
838 _KeyRangeFactoryProvider.createKeyRange_bound( 847 _KeyRangeFactoryProvider.createKeyRange_bound(
839 lower, upper, lowerOpen, upperOpen); 848 lower, upper, lowerOpen, upperOpen);
840 849
841 // To suppress missing implicit constructor warnings. 850 // To suppress missing implicit constructor warnings.
842 factory KeyRange._() { throw new UnsupportedError("Not supported"); } 851 factory KeyRange._() {
852 throw new UnsupportedError("Not supported");
853 }
843 854
844 @DomName('IDBKeyRange.lower') 855 @DomName('IDBKeyRange.lower')
845 @DocsEditable() 856 @DocsEditable()
846 @annotation_Creates_SerializedScriptValue 857 @annotation_Creates_SerializedScriptValue
847 final Object lower; 858 final Object lower;
848 859
849 @DomName('IDBKeyRange.lowerOpen') 860 @DomName('IDBKeyRange.lowerOpen')
850 @DocsEditable() 861 @DocsEditable()
851 final bool lowerOpen; 862 final bool lowerOpen;
852 863
853 @DomName('IDBKeyRange.upper') 864 @DomName('IDBKeyRange.upper')
854 @DocsEditable() 865 @DocsEditable()
855 @annotation_Creates_SerializedScriptValue 866 @annotation_Creates_SerializedScriptValue
856 final Object upper; 867 final Object upper;
857 868
858 @DomName('IDBKeyRange.upperOpen') 869 @DomName('IDBKeyRange.upperOpen')
859 @DocsEditable() 870 @DocsEditable()
860 final bool upperOpen; 871 final bool upperOpen;
861 872
862 @JSName('bound') 873 @JSName('bound')
863 @DomName('IDBKeyRange.bound') 874 @DomName('IDBKeyRange.bound')
864 @DocsEditable() 875 @DocsEditable()
865 static KeyRange bound_(Object lower, Object upper, [bool lowerOpen, bool upper Open]) native; 876 static KeyRange bound_(Object lower, Object upper,
877 [bool lowerOpen, bool upperOpen]) native ;
866 878
867 @JSName('lowerBound') 879 @JSName('lowerBound')
868 @DomName('IDBKeyRange.lowerBound') 880 @DomName('IDBKeyRange.lowerBound')
869 @DocsEditable() 881 @DocsEditable()
870 static KeyRange lowerBound_(Object bound, [bool open]) native; 882 static KeyRange lowerBound_(Object bound, [bool open]) native ;
871 883
872 @JSName('only') 884 @JSName('only')
873 @DomName('IDBKeyRange.only') 885 @DomName('IDBKeyRange.only')
874 @DocsEditable() 886 @DocsEditable()
875 static KeyRange only_(Object value) native; 887 static KeyRange only_(Object value) native ;
876 888
877 @JSName('upperBound') 889 @JSName('upperBound')
878 @DomName('IDBKeyRange.upperBound') 890 @DomName('IDBKeyRange.upperBound')
879 @DocsEditable() 891 @DocsEditable()
880 static KeyRange upperBound_(Object bound, [bool open]) native; 892 static KeyRange upperBound_(Object bound, [bool open]) native ;
881
882 } 893 }
883 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 894 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
884 // for details. All rights reserved. Use of this source code is governed by a 895 // for details. All rights reserved. Use of this source code is governed by a
885 // BSD-style license that can be found in the LICENSE file. 896 // BSD-style license that can be found in the LICENSE file.
886 897
887
888 @DomName('IDBObjectStore') 898 @DomName('IDBObjectStore')
889 @Unstable() 899 @Unstable()
890 @Native("IDBObjectStore") 900 @Native("IDBObjectStore")
891 class ObjectStore extends Interceptor { 901 class ObjectStore extends Interceptor {
892
893 @DomName('IDBObjectStore.add') 902 @DomName('IDBObjectStore.add')
894 Future add(value, [key]) { 903 Future add(value, [key]) {
895 try { 904 try {
896 var request; 905 var request;
897 if (key != null) { 906 if (key != null) {
898 request = _add(value, key); 907 request = _add(value, key);
899 } else { 908 } else {
900 request = _add(value); 909 request = _add(value);
901 } 910 }
902 return _completeRequest(request); 911 return _completeRequest(request);
903 } catch (e, stacktrace) { 912 } catch (e, stacktrace) {
904 return new Future.error(e, stacktrace); 913 return new Future.error(e, stacktrace);
905 } 914 }
906 } 915 }
907 916
908 @DomName('IDBObjectStore.clear') 917 @DomName('IDBObjectStore.clear')
909 Future clear() { 918 Future clear() {
910 try { 919 try {
911 return _completeRequest(_clear()); 920 return _completeRequest(_clear());
912 } catch (e, stacktrace) { 921 } catch (e, stacktrace) {
913 return new Future.error(e, stacktrace); 922 return new Future.error(e, stacktrace);
914 } 923 }
915 } 924 }
916 925
917 @DomName('IDBObjectStore.delete') 926 @DomName('IDBObjectStore.delete')
918 Future delete(key_OR_keyRange){ 927 Future delete(key_OR_keyRange) {
919 try { 928 try {
920 return _completeRequest(_delete(key_OR_keyRange)); 929 return _completeRequest(_delete(key_OR_keyRange));
921 } catch (e, stacktrace) { 930 } catch (e, stacktrace) {
922 return new Future.error(e, stacktrace); 931 return new Future.error(e, stacktrace);
923 } 932 }
924 } 933 }
925 934
926 @DomName('IDBObjectStore.count') 935 @DomName('IDBObjectStore.count')
927 Future<int> count([key_OR_range]) { 936 Future<int> count([key_OR_range]) {
928 try { 937 try {
929 var request = _count(key_OR_range); 938 var request = _count(key_OR_range);
930 return _completeRequest(request); 939 return _completeRequest(request);
931 } catch (e, stacktrace) { 940 } catch (e, stacktrace) {
932 return new Future.error(e, stacktrace); 941 return new Future.error(e, stacktrace);
933 } 942 }
934 } 943 }
935 944
936 @DomName('IDBObjectStore.put') 945 @DomName('IDBObjectStore.put')
937 Future put(value, [key]) { 946 Future put(value, [key]) {
938 try { 947 try {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 * // called when there are no more cursors. 983 * // called when there are no more cursors.
975 * print('all done!'); 984 * print('all done!');
976 * }); 985 * });
977 * 986 *
978 * Asynchronous operations which are not related to the current transaction 987 * Asynchronous operations which are not related to the current transaction
979 * will cause the transaction to automatically be committed-- all processing 988 * will cause the transaction to automatically be committed-- all processing
980 * must be done synchronously unless they are additional async requests to 989 * must be done synchronously unless they are additional async requests to
981 * the current transaction. 990 * the current transaction.
982 */ 991 */
983 @DomName('IDBObjectStore.openCursor') 992 @DomName('IDBObjectStore.openCursor')
984 Stream<CursorWithValue> openCursor({key, KeyRange range, String direction, 993 Stream<CursorWithValue> openCursor(
985 bool autoAdvance}) { 994 {key, KeyRange range, String direction, bool autoAdvance}) {
986 var key_OR_range = null; 995 var key_OR_range = null;
987 if (key != null) { 996 if (key != null) {
988 if (range != null) { 997 if (range != null) {
989 throw new ArgumentError('Cannot specify both key and range.'); 998 throw new ArgumentError('Cannot specify both key and range.');
990 } 999 }
991 key_OR_range = key; 1000 key_OR_range = key;
992 } else { 1001 } else {
993 key_OR_range = range; 1002 key_OR_range = range;
994 } 1003 }
995 1004
(...skipping 14 matching lines...) Expand all
1010 options['unique'] = unique; 1019 options['unique'] = unique;
1011 } 1020 }
1012 if (multiEntry != null) { 1021 if (multiEntry != null) {
1013 options['multiEntry'] = multiEntry; 1022 options['multiEntry'] = multiEntry;
1014 } 1023 }
1015 1024
1016 return _createIndex(name, keyPath, options); 1025 return _createIndex(name, keyPath, options);
1017 } 1026 }
1018 1027
1019 // To suppress missing implicit constructor warnings. 1028 // To suppress missing implicit constructor warnings.
1020 factory ObjectStore._() { throw new UnsupportedError("Not supported"); } 1029 factory ObjectStore._() {
1030 throw new UnsupportedError("Not supported");
1031 }
1021 1032
1022 @DomName('IDBObjectStore.autoIncrement') 1033 @DomName('IDBObjectStore.autoIncrement')
1023 @DocsEditable() 1034 @DocsEditable()
1024 final bool autoIncrement; 1035 final bool autoIncrement;
1025 1036
1026 @DomName('IDBObjectStore.indexNames') 1037 @DomName('IDBObjectStore.indexNames')
1027 @DocsEditable() 1038 @DocsEditable()
1028 @Returns('DomStringList') 1039 @Returns('DomStringList')
1029 @Creates('DomStringList') 1040 @Creates('DomStringList')
1030 final List<String> indexNames; 1041 final List<String> indexNames;
(...skipping 18 matching lines...) Expand all
1049 @_annotation_Creates_IDBKey 1060 @_annotation_Creates_IDBKey
1050 Request _add(/*any*/ value, [/*any*/ key]) { 1061 Request _add(/*any*/ value, [/*any*/ key]) {
1051 if (key != null) { 1062 if (key != null) {
1052 var value_1 = convertDartToNative_SerializedScriptValue(value); 1063 var value_1 = convertDartToNative_SerializedScriptValue(value);
1053 var key_2 = convertDartToNative_SerializedScriptValue(key); 1064 var key_2 = convertDartToNative_SerializedScriptValue(key);
1054 return _add_1(value_1, key_2); 1065 return _add_1(value_1, key_2);
1055 } 1066 }
1056 var value_1 = convertDartToNative_SerializedScriptValue(value); 1067 var value_1 = convertDartToNative_SerializedScriptValue(value);
1057 return _add_2(value_1); 1068 return _add_2(value_1);
1058 } 1069 }
1070
1059 @JSName('add') 1071 @JSName('add')
1060 @DomName('IDBObjectStore.add') 1072 @DomName('IDBObjectStore.add')
1061 @DocsEditable() 1073 @DocsEditable()
1062 @Returns('Request') 1074 @Returns('Request')
1063 @Creates('Request') 1075 @Creates('Request')
1064 @_annotation_Creates_IDBKey 1076 @_annotation_Creates_IDBKey
1065 Request _add_1(value, key) native; 1077 Request _add_1(value, key) native ;
1066 @JSName('add') 1078 @JSName('add')
1067 @DomName('IDBObjectStore.add') 1079 @DomName('IDBObjectStore.add')
1068 @DocsEditable() 1080 @DocsEditable()
1069 @Returns('Request') 1081 @Returns('Request')
1070 @Creates('Request') 1082 @Creates('Request')
1071 @_annotation_Creates_IDBKey 1083 @_annotation_Creates_IDBKey
1072 Request _add_2(value) native; 1084 Request _add_2(value) native ;
1073 1085
1074 @JSName('clear') 1086 @JSName('clear')
1075 @DomName('IDBObjectStore.clear') 1087 @DomName('IDBObjectStore.clear')
1076 @DocsEditable() 1088 @DocsEditable()
1077 Request _clear() native; 1089 Request _clear() native ;
1078 1090
1079 @JSName('count') 1091 @JSName('count')
1080 @DomName('IDBObjectStore.count') 1092 @DomName('IDBObjectStore.count')
1081 @DocsEditable() 1093 @DocsEditable()
1082 Request _count(Object key) native; 1094 Request _count(Object key) native ;
1083 1095
1084 @DomName('IDBObjectStore.createIndex') 1096 @DomName('IDBObjectStore.createIndex')
1085 @DocsEditable() 1097 @DocsEditable()
1086 Index _createIndex(String name, Object keyPath, [Map options]) { 1098 Index _createIndex(String name, Object keyPath, [Map options]) {
1087 if (options != null) { 1099 if (options != null) {
1088 var options_1 = convertDartToNative_Dictionary(options); 1100 var options_1 = convertDartToNative_Dictionary(options);
1089 return _createIndex_1(name, keyPath, options_1); 1101 return _createIndex_1(name, keyPath, options_1);
1090 } 1102 }
1091 return _createIndex_2(name, keyPath); 1103 return _createIndex_2(name, keyPath);
1092 } 1104 }
1105
1093 @JSName('createIndex') 1106 @JSName('createIndex')
1094 @DomName('IDBObjectStore.createIndex') 1107 @DomName('IDBObjectStore.createIndex')
1095 @DocsEditable() 1108 @DocsEditable()
1096 Index _createIndex_1(name, keyPath, options) native; 1109 Index _createIndex_1(name, keyPath, options) native ;
1097 @JSName('createIndex') 1110 @JSName('createIndex')
1098 @DomName('IDBObjectStore.createIndex') 1111 @DomName('IDBObjectStore.createIndex')
1099 @DocsEditable() 1112 @DocsEditable()
1100 Index _createIndex_2(name, keyPath) native; 1113 Index _createIndex_2(name, keyPath) native ;
1101 1114
1102 @JSName('delete') 1115 @JSName('delete')
1103 @DomName('IDBObjectStore.delete') 1116 @DomName('IDBObjectStore.delete')
1104 @DocsEditable() 1117 @DocsEditable()
1105 Request _delete(Object key) native; 1118 Request _delete(Object key) native ;
1106 1119
1107 @DomName('IDBObjectStore.deleteIndex') 1120 @DomName('IDBObjectStore.deleteIndex')
1108 @DocsEditable() 1121 @DocsEditable()
1109 void deleteIndex(String name) native; 1122 void deleteIndex(String name) native ;
1110 1123
1111 @JSName('get') 1124 @JSName('get')
1112 @DomName('IDBObjectStore.get') 1125 @DomName('IDBObjectStore.get')
1113 @DocsEditable() 1126 @DocsEditable()
1114 @Returns('Request') 1127 @Returns('Request')
1115 @Creates('Request') 1128 @Creates('Request')
1116 @annotation_Creates_SerializedScriptValue 1129 @annotation_Creates_SerializedScriptValue
1117 Request _get(Object key) native; 1130 Request _get(Object key) native ;
1118 1131
1119 @DomName('IDBObjectStore.getAll') 1132 @DomName('IDBObjectStore.getAll')
1120 @DocsEditable() 1133 @DocsEditable()
1121 @Experimental() // untriaged 1134 @Experimental() // untriaged
1122 Request getAll(Object range, [int maxCount]) native; 1135 Request getAll(Object range, [int maxCount]) native ;
1123 1136
1124 @DomName('IDBObjectStore.getAllKeys') 1137 @DomName('IDBObjectStore.getAllKeys')
1125 @DocsEditable() 1138 @DocsEditable()
1126 @Experimental() // untriaged 1139 @Experimental() // untriaged
1127 Request getAllKeys(Object range, [int maxCount]) native; 1140 Request getAllKeys(Object range, [int maxCount]) native ;
1128 1141
1129 @DomName('IDBObjectStore.index') 1142 @DomName('IDBObjectStore.index')
1130 @DocsEditable() 1143 @DocsEditable()
1131 Index index(String name) native; 1144 Index index(String name) native ;
1132 1145
1133 @JSName('openCursor') 1146 @JSName('openCursor')
1134 @DomName('IDBObjectStore.openCursor') 1147 @DomName('IDBObjectStore.openCursor')
1135 @DocsEditable() 1148 @DocsEditable()
1136 @Returns('Request') 1149 @Returns('Request')
1137 @Creates('Request') 1150 @Creates('Request')
1138 @Creates('Cursor') 1151 @Creates('Cursor')
1139 Request _openCursor(Object range, [String direction]) native; 1152 Request _openCursor(Object range, [String direction]) native ;
1140 1153
1141 @DomName('IDBObjectStore.openKeyCursor') 1154 @DomName('IDBObjectStore.openKeyCursor')
1142 @DocsEditable() 1155 @DocsEditable()
1143 @Experimental() // untriaged 1156 @Experimental() // untriaged
1144 Request openKeyCursor(Object range, [String direction]) native; 1157 Request openKeyCursor(Object range, [String direction]) native ;
1145 1158
1146 @DomName('IDBObjectStore.put') 1159 @DomName('IDBObjectStore.put')
1147 @DocsEditable() 1160 @DocsEditable()
1148 @Returns('Request') 1161 @Returns('Request')
1149 @Creates('Request') 1162 @Creates('Request')
1150 @_annotation_Creates_IDBKey 1163 @_annotation_Creates_IDBKey
1151 Request _put(/*any*/ value, [/*any*/ key]) { 1164 Request _put(/*any*/ value, [/*any*/ key]) {
1152 if (key != null) { 1165 if (key != null) {
1153 var value_1 = convertDartToNative_SerializedScriptValue(value); 1166 var value_1 = convertDartToNative_SerializedScriptValue(value);
1154 var key_2 = convertDartToNative_SerializedScriptValue(key); 1167 var key_2 = convertDartToNative_SerializedScriptValue(key);
1155 return _put_1(value_1, key_2); 1168 return _put_1(value_1, key_2);
1156 } 1169 }
1157 var value_1 = convertDartToNative_SerializedScriptValue(value); 1170 var value_1 = convertDartToNative_SerializedScriptValue(value);
1158 return _put_2(value_1); 1171 return _put_2(value_1);
1159 } 1172 }
1173
1160 @JSName('put') 1174 @JSName('put')
1161 @DomName('IDBObjectStore.put') 1175 @DomName('IDBObjectStore.put')
1162 @DocsEditable() 1176 @DocsEditable()
1163 @Returns('Request') 1177 @Returns('Request')
1164 @Creates('Request') 1178 @Creates('Request')
1165 @_annotation_Creates_IDBKey 1179 @_annotation_Creates_IDBKey
1166 Request _put_1(value, key) native; 1180 Request _put_1(value, key) native ;
1167 @JSName('put') 1181 @JSName('put')
1168 @DomName('IDBObjectStore.put') 1182 @DomName('IDBObjectStore.put')
1169 @DocsEditable() 1183 @DocsEditable()
1170 @Returns('Request') 1184 @Returns('Request')
1171 @Creates('Request') 1185 @Creates('Request')
1172 @_annotation_Creates_IDBKey 1186 @_annotation_Creates_IDBKey
1173 Request _put_2(value) native; 1187 Request _put_2(value) native ;
1174
1175 1188
1176 /** 1189 /**
1177 * Helper for iterating over cursors in a request. 1190 * Helper for iterating over cursors in a request.
1178 */ 1191 */
1179 static Stream/*<T>*/ _cursorStreamFromResult/*<T extends Cursor>*/(Request req uest, 1192 static Stream/*<T>*/ _cursorStreamFromResult/*<T extends Cursor>*/(
1180 bool autoAdvance) { 1193 Request request, bool autoAdvance) {
1181 // TODO: need to guarantee that the controller provides the values 1194 // TODO: need to guarantee that the controller provides the values
1182 // immediately as waiting until the next tick will cause the transaction to 1195 // immediately as waiting until the next tick will cause the transaction to
1183 // close. 1196 // close.
1184 var controller = new StreamController/*<T>*/(sync: true); 1197 var controller = new StreamController/*<T>*/(sync: true);
1185 1198
1186 //TODO: Report stacktrace once issue 4061 is resolved. 1199 //TODO: Report stacktrace once issue 4061 is resolved.
1187 request.onError.listen(controller.addError); 1200 request.onError.listen(controller.addError);
1188 1201
1189 request.onSuccess.listen((e) { 1202 request.onSuccess.listen((e) {
1190 var cursor = _cast/*<T>*/(request.result); 1203 var cursor = _cast/*<T>*/(request.result);
1191 if (cursor == null) { 1204 if (cursor == null) {
1192 controller.close(); 1205 controller.close();
1193 } else { 1206 } else {
1194 controller.add(cursor); 1207 controller.add(cursor);
1195 if (autoAdvance == true && controller.hasListener) { 1208 if (autoAdvance == true && controller.hasListener) {
1196 cursor.next(); 1209 cursor.next();
1197 } 1210 }
1198 } 1211 }
1199 }); 1212 });
1200 return controller.stream; 1213 return controller.stream;
1201 } 1214 }
1202 } 1215 }
1203 1216
1204 // ignore: STRONG_MODE_DOWN_CAST_COMPOSITE 1217 // ignore: STRONG_MODE_DOWN_CAST_COMPOSITE
1205 /*=To*/ _cast/*<To>*/(dynamic x) => x; 1218 /*=To*/ _cast/*<To>*/(dynamic x) => x;
1206 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1219 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
1207 // for details. All rights reserved. Use of this source code is governed by a 1220 // for details. All rights reserved. Use of this source code is governed by a
1208 // BSD-style license that can be found in the LICENSE file. 1221 // BSD-style license that can be found in the LICENSE file.
1209 1222
1210
1211 @DocsEditable() 1223 @DocsEditable()
1212 @DomName('IDBOpenDBRequest') 1224 @DomName('IDBOpenDBRequest')
1213 @Unstable() 1225 @Unstable()
1214 @Native("IDBOpenDBRequest,IDBVersionChangeRequest") 1226 @Native("IDBOpenDBRequest,IDBVersionChangeRequest")
1215 class OpenDBRequest extends Request { 1227 class OpenDBRequest extends Request {
1216 // To suppress missing implicit constructor warnings. 1228 // To suppress missing implicit constructor warnings.
1217 factory OpenDBRequest._() { throw new UnsupportedError("Not supported"); } 1229 factory OpenDBRequest._() {
1230 throw new UnsupportedError("Not supported");
1231 }
1218 1232
1219 /** 1233 /**
1220 * Static factory designed to expose `blocked` events to event 1234 * Static factory designed to expose `blocked` events to event
1221 * handlers that are not necessarily instances of [OpenDBRequest]. 1235 * handlers that are not necessarily instances of [OpenDBRequest].
1222 * 1236 *
1223 * See [EventStreamProvider] for usage information. 1237 * See [EventStreamProvider] for usage information.
1224 */ 1238 */
1225 @DomName('IDBOpenDBRequest.blockedEvent') 1239 @DomName('IDBOpenDBRequest.blockedEvent')
1226 @DocsEditable() 1240 @DocsEditable()
1227 static const EventStreamProvider<Event> blockedEvent = const EventStreamProvid er<Event>('blocked'); 1241 static const EventStreamProvider<Event> blockedEvent =
1242 const EventStreamProvider<Event>('blocked');
1228 1243
1229 /** 1244 /**
1230 * Static factory designed to expose `upgradeneeded` events to event 1245 * Static factory designed to expose `upgradeneeded` events to event
1231 * handlers that are not necessarily instances of [OpenDBRequest]. 1246 * handlers that are not necessarily instances of [OpenDBRequest].
1232 * 1247 *
1233 * See [EventStreamProvider] for usage information. 1248 * See [EventStreamProvider] for usage information.
1234 */ 1249 */
1235 @DomName('IDBOpenDBRequest.upgradeneededEvent') 1250 @DomName('IDBOpenDBRequest.upgradeneededEvent')
1236 @DocsEditable() 1251 @DocsEditable()
1237 static const EventStreamProvider<VersionChangeEvent> upgradeNeededEvent = cons t EventStreamProvider<VersionChangeEvent>('upgradeneeded'); 1252 static const EventStreamProvider<VersionChangeEvent> upgradeNeededEvent =
1253 const EventStreamProvider<VersionChangeEvent>('upgradeneeded');
1238 1254
1239 /// Stream of `blocked` events handled by this [OpenDBRequest]. 1255 /// Stream of `blocked` events handled by this [OpenDBRequest].
1240 @DomName('IDBOpenDBRequest.onblocked') 1256 @DomName('IDBOpenDBRequest.onblocked')
1241 @DocsEditable() 1257 @DocsEditable()
1242 Stream<Event> get onBlocked => blockedEvent.forTarget(this); 1258 Stream<Event> get onBlocked => blockedEvent.forTarget(this);
1243 1259
1244 /// Stream of `upgradeneeded` events handled by this [OpenDBRequest]. 1260 /// Stream of `upgradeneeded` events handled by this [OpenDBRequest].
1245 @DomName('IDBOpenDBRequest.onupgradeneeded') 1261 @DomName('IDBOpenDBRequest.onupgradeneeded')
1246 @DocsEditable() 1262 @DocsEditable()
1247 Stream<VersionChangeEvent> get onUpgradeNeeded => upgradeNeededEvent.forTarget (this); 1263 Stream<VersionChangeEvent> get onUpgradeNeeded =>
1264 upgradeNeededEvent.forTarget(this);
1248 } 1265 }
1249 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1266 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
1250 // for details. All rights reserved. Use of this source code is governed by a 1267 // for details. All rights reserved. Use of this source code is governed by a
1251 // BSD-style license that can be found in the LICENSE file. 1268 // BSD-style license that can be found in the LICENSE file.
1252 1269
1253
1254 @DocsEditable() 1270 @DocsEditable()
1255 @DomName('IDBRequest') 1271 @DomName('IDBRequest')
1256 @Unstable() 1272 @Unstable()
1257 @Native("IDBRequest") 1273 @Native("IDBRequest")
1258 class Request extends EventTarget { 1274 class Request extends EventTarget {
1259 // To suppress missing implicit constructor warnings. 1275 // To suppress missing implicit constructor warnings.
1260 factory Request._() { throw new UnsupportedError("Not supported"); } 1276 factory Request._() {
1277 throw new UnsupportedError("Not supported");
1278 }
1261 1279
1262 /** 1280 /**
1263 * Static factory designed to expose `error` events to event 1281 * Static factory designed to expose `error` events to event
1264 * handlers that are not necessarily instances of [Request]. 1282 * handlers that are not necessarily instances of [Request].
1265 * 1283 *
1266 * See [EventStreamProvider] for usage information. 1284 * See [EventStreamProvider] for usage information.
1267 */ 1285 */
1268 @DomName('IDBRequest.errorEvent') 1286 @DomName('IDBRequest.errorEvent')
1269 @DocsEditable() 1287 @DocsEditable()
1270 static const EventStreamProvider<Event> errorEvent = const EventStreamProvider <Event>('error'); 1288 static const EventStreamProvider<Event> errorEvent =
1289 const EventStreamProvider<Event>('error');
1271 1290
1272 /** 1291 /**
1273 * Static factory designed to expose `success` events to event 1292 * Static factory designed to expose `success` events to event
1274 * handlers that are not necessarily instances of [Request]. 1293 * handlers that are not necessarily instances of [Request].
1275 * 1294 *
1276 * See [EventStreamProvider] for usage information. 1295 * See [EventStreamProvider] for usage information.
1277 */ 1296 */
1278 @DomName('IDBRequest.successEvent') 1297 @DomName('IDBRequest.successEvent')
1279 @DocsEditable() 1298 @DocsEditable()
1280 static const EventStreamProvider<Event> successEvent = const EventStreamProvid er<Event>('success'); 1299 static const EventStreamProvider<Event> successEvent =
1300 const EventStreamProvider<Event>('success');
1281 1301
1282 @DomName('IDBRequest.error') 1302 @DomName('IDBRequest.error')
1283 @DocsEditable() 1303 @DocsEditable()
1284 final DomError error; 1304 final DomError error;
1285 1305
1286 @DomName('IDBRequest.readyState') 1306 @DomName('IDBRequest.readyState')
1287 @DocsEditable() 1307 @DocsEditable()
1288 final String readyState; 1308 final String readyState;
1289 1309
1290 @DomName('IDBRequest.result') 1310 @DomName('IDBRequest.result')
(...skipping 21 matching lines...) Expand all
1312 1332
1313 /// Stream of `success` events handled by this [Request]. 1333 /// Stream of `success` events handled by this [Request].
1314 @DomName('IDBRequest.onsuccess') 1334 @DomName('IDBRequest.onsuccess')
1315 @DocsEditable() 1335 @DocsEditable()
1316 Stream<Event> get onSuccess => successEvent.forTarget(this); 1336 Stream<Event> get onSuccess => successEvent.forTarget(this);
1317 } 1337 }
1318 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1338 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
1319 // for details. All rights reserved. Use of this source code is governed by a 1339 // for details. All rights reserved. Use of this source code is governed by a
1320 // BSD-style license that can be found in the LICENSE file. 1340 // BSD-style license that can be found in the LICENSE file.
1321 1341
1322
1323 @DomName('IDBTransaction') 1342 @DomName('IDBTransaction')
1324 @Unstable() 1343 @Unstable()
1325 @Native("IDBTransaction") 1344 @Native("IDBTransaction")
1326 class Transaction extends EventTarget { 1345 class Transaction extends EventTarget {
1327
1328 /** 1346 /**
1329 * Provides a Future which will be completed once the transaction has 1347 * Provides a Future which will be completed once the transaction has
1330 * completed. 1348 * completed.
1331 * 1349 *
1332 * The future will error if an error occurrs on the transaction or if the 1350 * The future will error if an error occurrs on the transaction or if the
1333 * transaction is aborted. 1351 * transaction is aborted.
1334 */ 1352 */
1335 Future<Database> get completed { 1353 Future<Database> get completed {
1336 var completer = new Completer<Database>(); 1354 var completer = new Completer<Database>();
1337 1355
1338 this.onComplete.first.then((_) { 1356 this.onComplete.first.then((_) {
1339 completer.complete(db); 1357 completer.complete(db);
1340 }); 1358 });
1341 1359
1342 this.onError.first.then((e) { 1360 this.onError.first.then((e) {
1343 completer.completeError(e); 1361 completer.completeError(e);
1344 }); 1362 });
1345 1363
1346 this.onAbort.first.then((e) { 1364 this.onAbort.first.then((e) {
1347 // Avoid completing twice if an error occurs. 1365 // Avoid completing twice if an error occurs.
1348 if (!completer.isCompleted) { 1366 if (!completer.isCompleted) {
1349 completer.completeError(e); 1367 completer.completeError(e);
1350 } 1368 }
1351 }); 1369 });
1352 1370
1353 return completer.future; 1371 return completer.future;
1354 } 1372 }
1355 1373
1356 // To suppress missing implicit constructor warnings. 1374 // To suppress missing implicit constructor warnings.
1357 factory Transaction._() { throw new UnsupportedError("Not supported"); } 1375 factory Transaction._() {
1376 throw new UnsupportedError("Not supported");
1377 }
1358 1378
1359 /** 1379 /**
1360 * Static factory designed to expose `abort` events to event 1380 * Static factory designed to expose `abort` events to event
1361 * handlers that are not necessarily instances of [Transaction]. 1381 * handlers that are not necessarily instances of [Transaction].
1362 * 1382 *
1363 * See [EventStreamProvider] for usage information. 1383 * See [EventStreamProvider] for usage information.
1364 */ 1384 */
1365 @DomName('IDBTransaction.abortEvent') 1385 @DomName('IDBTransaction.abortEvent')
1366 @DocsEditable() 1386 @DocsEditable()
1367 static const EventStreamProvider<Event> abortEvent = const EventStreamProvider <Event>('abort'); 1387 static const EventStreamProvider<Event> abortEvent =
1388 const EventStreamProvider<Event>('abort');
1368 1389
1369 /** 1390 /**
1370 * Static factory designed to expose `complete` events to event 1391 * Static factory designed to expose `complete` events to event
1371 * handlers that are not necessarily instances of [Transaction]. 1392 * handlers that are not necessarily instances of [Transaction].
1372 * 1393 *
1373 * See [EventStreamProvider] for usage information. 1394 * See [EventStreamProvider] for usage information.
1374 */ 1395 */
1375 @DomName('IDBTransaction.completeEvent') 1396 @DomName('IDBTransaction.completeEvent')
1376 @DocsEditable() 1397 @DocsEditable()
1377 static const EventStreamProvider<Event> completeEvent = const EventStreamProvi der<Event>('complete'); 1398 static const EventStreamProvider<Event> completeEvent =
1399 const EventStreamProvider<Event>('complete');
1378 1400
1379 /** 1401 /**
1380 * Static factory designed to expose `error` events to event 1402 * Static factory designed to expose `error` events to event
1381 * handlers that are not necessarily instances of [Transaction]. 1403 * handlers that are not necessarily instances of [Transaction].
1382 * 1404 *
1383 * See [EventStreamProvider] for usage information. 1405 * See [EventStreamProvider] for usage information.
1384 */ 1406 */
1385 @DomName('IDBTransaction.errorEvent') 1407 @DomName('IDBTransaction.errorEvent')
1386 @DocsEditable() 1408 @DocsEditable()
1387 static const EventStreamProvider<Event> errorEvent = const EventStreamProvider <Event>('error'); 1409 static const EventStreamProvider<Event> errorEvent =
1410 const EventStreamProvider<Event>('error');
1388 1411
1389 @DomName('IDBTransaction.db') 1412 @DomName('IDBTransaction.db')
1390 @DocsEditable() 1413 @DocsEditable()
1391 final Database db; 1414 final Database db;
1392 1415
1393 @DomName('IDBTransaction.error') 1416 @DomName('IDBTransaction.error')
1394 @DocsEditable() 1417 @DocsEditable()
1395 final DomError error; 1418 final DomError error;
1396 1419
1397 @DomName('IDBTransaction.mode') 1420 @DomName('IDBTransaction.mode')
1398 @DocsEditable() 1421 @DocsEditable()
1399 final String mode; 1422 final String mode;
1400 1423
1401 @DomName('IDBTransaction.objectStoreNames') 1424 @DomName('IDBTransaction.objectStoreNames')
1402 @DocsEditable() 1425 @DocsEditable()
1403 @Experimental() // untriaged 1426 @Experimental() // untriaged
1404 @Returns('DomStringList') 1427 @Returns('DomStringList')
1405 @Creates('DomStringList') 1428 @Creates('DomStringList')
1406 final List<String> objectStoreNames; 1429 final List<String> objectStoreNames;
1407 1430
1408 @DomName('IDBTransaction.abort') 1431 @DomName('IDBTransaction.abort')
1409 @DocsEditable() 1432 @DocsEditable()
1410 void abort() native; 1433 void abort() native ;
1411 1434
1412 @DomName('IDBTransaction.objectStore') 1435 @DomName('IDBTransaction.objectStore')
1413 @DocsEditable() 1436 @DocsEditable()
1414 ObjectStore objectStore(String name) native; 1437 ObjectStore objectStore(String name) native ;
1415 1438
1416 /// Stream of `abort` events handled by this [Transaction]. 1439 /// Stream of `abort` events handled by this [Transaction].
1417 @DomName('IDBTransaction.onabort') 1440 @DomName('IDBTransaction.onabort')
1418 @DocsEditable() 1441 @DocsEditable()
1419 Stream<Event> get onAbort => abortEvent.forTarget(this); 1442 Stream<Event> get onAbort => abortEvent.forTarget(this);
1420 1443
1421 /// Stream of `complete` events handled by this [Transaction]. 1444 /// Stream of `complete` events handled by this [Transaction].
1422 @DomName('IDBTransaction.oncomplete') 1445 @DomName('IDBTransaction.oncomplete')
1423 @DocsEditable() 1446 @DocsEditable()
1424 Stream<Event> get onComplete => completeEvent.forTarget(this); 1447 Stream<Event> get onComplete => completeEvent.forTarget(this);
1425 1448
1426 /// Stream of `error` events handled by this [Transaction]. 1449 /// Stream of `error` events handled by this [Transaction].
1427 @DomName('IDBTransaction.onerror') 1450 @DomName('IDBTransaction.onerror')
1428 @DocsEditable() 1451 @DocsEditable()
1429 Stream<Event> get onError => errorEvent.forTarget(this); 1452 Stream<Event> get onError => errorEvent.forTarget(this);
1430
1431 } 1453 }
1432 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1454 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
1433 // for details. All rights reserved. Use of this source code is governed by a 1455 // for details. All rights reserved. Use of this source code is governed by a
1434 // BSD-style license that can be found in the LICENSE file. 1456 // BSD-style license that can be found in the LICENSE file.
1435 1457
1436
1437 @DocsEditable() 1458 @DocsEditable()
1438 @DomName('IDBVersionChangeEvent') 1459 @DomName('IDBVersionChangeEvent')
1439 @Unstable() 1460 @Unstable()
1440 @Native("IDBVersionChangeEvent") 1461 @Native("IDBVersionChangeEvent")
1441 class VersionChangeEvent extends Event { 1462 class VersionChangeEvent extends Event {
1442 // To suppress missing implicit constructor warnings. 1463 // To suppress missing implicit constructor warnings.
1443 factory VersionChangeEvent._() { throw new UnsupportedError("Not supported"); } 1464 factory VersionChangeEvent._() {
1465 throw new UnsupportedError("Not supported");
1466 }
1444 1467
1445 @DomName('IDBVersionChangeEvent.IDBVersionChangeEvent') 1468 @DomName('IDBVersionChangeEvent.IDBVersionChangeEvent')
1446 @DocsEditable() 1469 @DocsEditable()
1447 factory VersionChangeEvent(String type, [Map eventInitDict]) { 1470 factory VersionChangeEvent(String type, [Map eventInitDict]) {
1448 if (eventInitDict != null) { 1471 if (eventInitDict != null) {
1449 var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict); 1472 var eventInitDict_1 = convertDartToNative_Dictionary(eventInitDict);
1450 return VersionChangeEvent._create_1(type, eventInitDict_1); 1473 return VersionChangeEvent._create_1(type, eventInitDict_1);
1451 } 1474 }
1452 return VersionChangeEvent._create_2(type); 1475 return VersionChangeEvent._create_2(type);
1453 } 1476 }
1454 static VersionChangeEvent _create_1(type, eventInitDict) => JS('VersionChangeE vent', 'new IDBVersionChangeEvent(#,#)', type, eventInitDict); 1477 static VersionChangeEvent _create_1(type, eventInitDict) => JS(
1455 static VersionChangeEvent _create_2(type) => JS('VersionChangeEvent', 'new IDB VersionChangeEvent(#)', type); 1478 'VersionChangeEvent',
1479 'new IDBVersionChangeEvent(#,#)',
1480 type,
1481 eventInitDict);
1482 static VersionChangeEvent _create_2(type) =>
1483 JS('VersionChangeEvent', 'new IDBVersionChangeEvent(#)', type);
1456 1484
1457 @DomName('IDBVersionChangeEvent.dataLoss') 1485 @DomName('IDBVersionChangeEvent.dataLoss')
1458 @DocsEditable() 1486 @DocsEditable()
1459 @Experimental() // untriaged 1487 @Experimental() // untriaged
1460 final String dataLoss; 1488 final String dataLoss;
1461 1489
1462 @DomName('IDBVersionChangeEvent.dataLossMessage') 1490 @DomName('IDBVersionChangeEvent.dataLossMessage')
1463 @DocsEditable() 1491 @DocsEditable()
1464 @Experimental() // untriaged 1492 @Experimental() // untriaged
1465 final String dataLossMessage; 1493 final String dataLossMessage;
1466 1494
1467 @DomName('IDBVersionChangeEvent.newVersion') 1495 @DomName('IDBVersionChangeEvent.newVersion')
1468 @DocsEditable() 1496 @DocsEditable()
1469 @Creates('int|String|Null') 1497 @Creates('int|String|Null')
1470 @Returns('int|String|Null') 1498 @Returns('int|String|Null')
1471 final int newVersion; 1499 final int newVersion;
1472 1500
1473 @DomName('IDBVersionChangeEvent.oldVersion') 1501 @DomName('IDBVersionChangeEvent.oldVersion')
1474 @DocsEditable() 1502 @DocsEditable()
1475 @Creates('int|String|Null') 1503 @Creates('int|String|Null')
1476 @Returns('int|String|Null') 1504 @Returns('int|String|Null')
1477 final int oldVersion; 1505 final int oldVersion;
1478 } 1506 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698