OLD | NEW |
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 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 * [IndexedDB reference](http://docs.webplatform.org/wiki/apis/indexeddb) | 70 * [IndexedDB reference](http://docs.webplatform.org/wiki/apis/indexeddb) |
71 * provides wiki-style docs about indexedDB | 71 * provides wiki-style docs about indexedDB |
72 */ | 72 */ |
73 library dart.dom.indexed_db; | 73 library dart.dom.indexed_db; |
74 | 74 |
75 import 'dart:async'; | 75 import 'dart:async'; |
76 import 'dart:html'; | 76 import 'dart:html'; |
77 import 'dart:html_common'; | 77 import 'dart:html_common'; |
78 import 'dart:_native_typed_data'; | 78 import 'dart:_native_typed_data'; |
79 import 'dart:typed_data'; | 79 import 'dart:typed_data'; |
80 import 'dart:_js_helper' show Creates, Returns, JSName, Null; | 80 import 'dart:_js_helper' show Creates, Returns, JSName, Native, Null; |
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 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 const String _idbKey = 'JSExtendableArray|=Object|num|String'; | 206 const String _idbKey = 'JSExtendableArray|=Object|num|String'; |
207 const _annotation_Creates_IDBKey = const Creates(_idbKey); | 207 const _annotation_Creates_IDBKey = const Creates(_idbKey); |
208 const _annotation_Returns_IDBKey = const Returns(_idbKey); | 208 const _annotation_Returns_IDBKey = const Returns(_idbKey); |
209 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 209 // 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 | 210 // 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. | 211 // BSD-style license that can be found in the LICENSE file. |
212 | 212 |
213 | 213 |
214 @DomName('IDBCursor') | 214 @DomName('IDBCursor') |
215 @Unstable() | 215 @Unstable() |
216 class Cursor extends Interceptor native "IDBCursor" { | 216 @Native("IDBCursor") |
| 217 class Cursor extends Interceptor { |
217 @DomName('IDBCursor.delete') | 218 @DomName('IDBCursor.delete') |
218 Future delete() { | 219 Future delete() { |
219 try { | 220 try { |
220 return _completeRequest(_delete()); | 221 return _completeRequest(_delete()); |
221 } catch (e, stacktrace) { | 222 } catch (e, stacktrace) { |
222 return new Future.error(e, stacktrace); | 223 return new Future.error(e, stacktrace); |
223 } | 224 } |
224 } | 225 } |
225 | 226 |
226 @DomName('IDBCursor.value') | 227 @DomName('IDBCursor.value') |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
293 | 294 |
294 } | 295 } |
295 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 296 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
296 // for details. All rights reserved. Use of this source code is governed by a | 297 // for details. All rights reserved. Use of this source code is governed by a |
297 // BSD-style license that can be found in the LICENSE file. | 298 // BSD-style license that can be found in the LICENSE file. |
298 | 299 |
299 | 300 |
300 @DocsEditable() | 301 @DocsEditable() |
301 @DomName('IDBCursorWithValue') | 302 @DomName('IDBCursorWithValue') |
302 @Unstable() | 303 @Unstable() |
303 class CursorWithValue extends Cursor native "IDBCursorWithValue" { | 304 @Native("IDBCursorWithValue") |
| 305 class CursorWithValue extends Cursor { |
304 // To suppress missing implicit constructor warnings. | 306 // To suppress missing implicit constructor warnings. |
305 factory CursorWithValue._() { throw new UnsupportedError("Not supported"); } | 307 factory CursorWithValue._() { throw new UnsupportedError("Not supported"); } |
306 | 308 |
307 @DomName('IDBCursorWithValue.value') | 309 @DomName('IDBCursorWithValue.value') |
308 @DocsEditable() | 310 @DocsEditable() |
309 dynamic get value => _convertNativeToDart_IDBAny(this._get_value); | 311 dynamic get value => _convertNativeToDart_IDBAny(this._get_value); |
310 @JSName('value') | 312 @JSName('value') |
311 @DomName('IDBCursorWithValue.value') | 313 @DomName('IDBCursorWithValue.value') |
312 @DocsEditable() | 314 @DocsEditable() |
313 @annotation_Creates_SerializedScriptValue | 315 @annotation_Creates_SerializedScriptValue |
314 @annotation_Returns_SerializedScriptValue | 316 @annotation_Returns_SerializedScriptValue |
315 final dynamic _get_value; | 317 final dynamic _get_value; |
316 } | 318 } |
317 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 319 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
318 // for details. All rights reserved. Use of this source code is governed by a | 320 // for details. All rights reserved. Use of this source code is governed by a |
319 // BSD-style license that can be found in the LICENSE file. | 321 // BSD-style license that can be found in the LICENSE file. |
320 | 322 |
321 | 323 |
322 @DocsEditable() | 324 @DocsEditable() |
323 /** | 325 /** |
324 * An indexed database object for storing client-side data | 326 * An indexed database object for storing client-side data |
325 * in web apps. | 327 * in web apps. |
326 */ | 328 */ |
327 @DomName('IDBDatabase') | 329 @DomName('IDBDatabase') |
328 @SupportedBrowser(SupportedBrowser.CHROME) | 330 @SupportedBrowser(SupportedBrowser.CHROME) |
329 @SupportedBrowser(SupportedBrowser.FIREFOX, '15') | 331 @SupportedBrowser(SupportedBrowser.FIREFOX, '15') |
330 @SupportedBrowser(SupportedBrowser.IE, '10') | 332 @SupportedBrowser(SupportedBrowser.IE, '10') |
331 @Experimental() | 333 @Experimental() |
332 @Unstable() | 334 @Unstable() |
333 class Database extends EventTarget native "IDBDatabase" { | 335 @Native("IDBDatabase") |
| 336 class Database extends EventTarget { |
334 @DomName('IDBDatabase.createObjectStore') | 337 @DomName('IDBDatabase.createObjectStore') |
335 @DocsEditable() | 338 @DocsEditable() |
336 ObjectStore createObjectStore(String name, | 339 ObjectStore createObjectStore(String name, |
337 {String keyPath, bool autoIncrement}) { | 340 {String keyPath, bool autoIncrement}) { |
338 var options = {}; | 341 var options = {}; |
339 if (keyPath != null) { | 342 if (keyPath != null) { |
340 options['keyPath'] = keyPath; | 343 options['keyPath'] = keyPath; |
341 } | 344 } |
342 if (autoIncrement != null) { | 345 if (autoIncrement != null) { |
343 options['autoIncrement'] = autoIncrement; | 346 options['autoIncrement'] = autoIncrement; |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
501 // for details. All rights reserved. Use of this source code is governed by a | 504 // for details. All rights reserved. Use of this source code is governed by a |
502 // BSD-style license that can be found in the LICENSE file. | 505 // BSD-style license that can be found in the LICENSE file. |
503 | 506 |
504 | 507 |
505 @DomName('IDBFactory') | 508 @DomName('IDBFactory') |
506 @SupportedBrowser(SupportedBrowser.CHROME) | 509 @SupportedBrowser(SupportedBrowser.CHROME) |
507 @SupportedBrowser(SupportedBrowser.FIREFOX, '15') | 510 @SupportedBrowser(SupportedBrowser.FIREFOX, '15') |
508 @SupportedBrowser(SupportedBrowser.IE, '10') | 511 @SupportedBrowser(SupportedBrowser.IE, '10') |
509 @Experimental() | 512 @Experimental() |
510 @Unstable() | 513 @Unstable() |
511 class IdbFactory extends Interceptor native "IDBFactory" { | 514 @Native("IDBFactory") |
| 515 class IdbFactory extends Interceptor { |
512 /** | 516 /** |
513 * Checks to see if Indexed DB is supported on the current platform. | 517 * Checks to see if Indexed DB is supported on the current platform. |
514 */ | 518 */ |
515 static bool get supported { | 519 static bool get supported { |
516 return JS('bool', | 520 return JS('bool', |
517 '!!(window.indexedDB || ' | 521 '!!(window.indexedDB || ' |
518 'window.webkitIndexedDB || ' | 522 'window.webkitIndexedDB || ' |
519 'window.mozIndexedDB)'); | 523 'window.mozIndexedDB)'); |
520 } | 524 } |
521 | 525 |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 request.onError.listen(completer.completeError); | 640 request.onError.listen(completer.completeError); |
637 return completer.future; | 641 return completer.future; |
638 } | 642 } |
639 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 643 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
640 // for details. All rights reserved. Use of this source code is governed by a | 644 // for details. All rights reserved. Use of this source code is governed by a |
641 // BSD-style license that can be found in the LICENSE file. | 645 // BSD-style license that can be found in the LICENSE file. |
642 | 646 |
643 | 647 |
644 @DomName('IDBIndex') | 648 @DomName('IDBIndex') |
645 @Unstable() | 649 @Unstable() |
646 class Index extends Interceptor native "IDBIndex" { | 650 @Native("IDBIndex") |
| 651 class Index extends Interceptor { |
647 @DomName('IDBIndex.count') | 652 @DomName('IDBIndex.count') |
648 Future<int> count([key_OR_range]) { | 653 Future<int> count([key_OR_range]) { |
649 try { | 654 try { |
650 var request = _count(key_OR_range); | 655 var request = _count(key_OR_range); |
651 return _completeRequest(request); | 656 return _completeRequest(request); |
652 } catch (e, stacktrace) { | 657 } catch (e, stacktrace) { |
653 return new Future.error(e, stacktrace); | 658 return new Future.error(e, stacktrace); |
654 } | 659 } |
655 } | 660 } |
656 | 661 |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 Request _openKeyCursor(Object key, [String direction]) native; | 798 Request _openKeyCursor(Object key, [String direction]) native; |
794 | 799 |
795 } | 800 } |
796 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 801 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
797 // for details. All rights reserved. Use of this source code is governed by a | 802 // for details. All rights reserved. Use of this source code is governed by a |
798 // BSD-style license that can be found in the LICENSE file. | 803 // BSD-style license that can be found in the LICENSE file. |
799 | 804 |
800 | 805 |
801 @DomName('IDBKeyRange') | 806 @DomName('IDBKeyRange') |
802 @Unstable() | 807 @Unstable() |
803 class KeyRange extends Interceptor native "IDBKeyRange" { | 808 @Native("IDBKeyRange") |
| 809 class KeyRange extends Interceptor { |
804 @DomName('IDBKeyRange.only') | 810 @DomName('IDBKeyRange.only') |
805 factory KeyRange.only(/*Key*/ value) => | 811 factory KeyRange.only(/*Key*/ value) => |
806 _KeyRangeFactoryProvider.createKeyRange_only(value); | 812 _KeyRangeFactoryProvider.createKeyRange_only(value); |
807 | 813 |
808 @DomName('IDBKeyRange.lowerBound') | 814 @DomName('IDBKeyRange.lowerBound') |
809 factory KeyRange.lowerBound(/*Key*/ bound, [bool open = false]) => | 815 factory KeyRange.lowerBound(/*Key*/ bound, [bool open = false]) => |
810 _KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open); | 816 _KeyRangeFactoryProvider.createKeyRange_lowerBound(bound, open); |
811 | 817 |
812 @DomName('IDBKeyRange.upperBound') | 818 @DomName('IDBKeyRange.upperBound') |
813 factory KeyRange.upperBound(/*Key*/ bound, [bool open = false]) => | 819 factory KeyRange.upperBound(/*Key*/ bound, [bool open = false]) => |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
861 static KeyRange upperBound_(Object bound, [bool open]) native; | 867 static KeyRange upperBound_(Object bound, [bool open]) native; |
862 | 868 |
863 } | 869 } |
864 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 870 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
865 // for details. All rights reserved. Use of this source code is governed by a | 871 // for details. All rights reserved. Use of this source code is governed by a |
866 // BSD-style license that can be found in the LICENSE file. | 872 // BSD-style license that can be found in the LICENSE file. |
867 | 873 |
868 | 874 |
869 @DomName('IDBObjectStore') | 875 @DomName('IDBObjectStore') |
870 @Unstable() | 876 @Unstable() |
871 class ObjectStore extends Interceptor native "IDBObjectStore" { | 877 @Native("IDBObjectStore") |
| 878 class ObjectStore extends Interceptor { |
872 | 879 |
873 @DomName('IDBObjectStore.add') | 880 @DomName('IDBObjectStore.add') |
874 Future add(value, [key]) { | 881 Future add(value, [key]) { |
875 try { | 882 try { |
876 var request; | 883 var request; |
877 if (key != null) { | 884 if (key != null) { |
878 request = _add(value, key); | 885 request = _add(value, key); |
879 } else { | 886 } else { |
880 request = _add(value); | 887 request = _add(value); |
881 } | 888 } |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1191 } | 1198 } |
1192 } | 1199 } |
1193 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1200 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
1194 // for details. All rights reserved. Use of this source code is governed by a | 1201 // for details. All rights reserved. Use of this source code is governed by a |
1195 // BSD-style license that can be found in the LICENSE file. | 1202 // BSD-style license that can be found in the LICENSE file. |
1196 | 1203 |
1197 | 1204 |
1198 @DocsEditable() | 1205 @DocsEditable() |
1199 @DomName('IDBOpenDBRequest') | 1206 @DomName('IDBOpenDBRequest') |
1200 @Unstable() | 1207 @Unstable() |
1201 class OpenDBRequest extends Request native "IDBOpenDBRequest,IDBVersionChangeReq
uest" { | 1208 @Native("IDBOpenDBRequest,IDBVersionChangeRequest") |
| 1209 class OpenDBRequest extends Request { |
1202 // To suppress missing implicit constructor warnings. | 1210 // To suppress missing implicit constructor warnings. |
1203 factory OpenDBRequest._() { throw new UnsupportedError("Not supported"); } | 1211 factory OpenDBRequest._() { throw new UnsupportedError("Not supported"); } |
1204 | 1212 |
1205 /** | 1213 /** |
1206 * Static factory designed to expose `blocked` events to event | 1214 * Static factory designed to expose `blocked` events to event |
1207 * handlers that are not necessarily instances of [OpenDBRequest]. | 1215 * handlers that are not necessarily instances of [OpenDBRequest]. |
1208 * | 1216 * |
1209 * See [EventStreamProvider] for usage information. | 1217 * See [EventStreamProvider] for usage information. |
1210 */ | 1218 */ |
1211 @DomName('IDBOpenDBRequest.blockedEvent') | 1219 @DomName('IDBOpenDBRequest.blockedEvent') |
(...skipping 21 matching lines...) Expand all Loading... |
1233 Stream<VersionChangeEvent> get onUpgradeNeeded => upgradeNeededEvent.forTarget
(this); | 1241 Stream<VersionChangeEvent> get onUpgradeNeeded => upgradeNeededEvent.forTarget
(this); |
1234 } | 1242 } |
1235 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1243 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
1236 // for details. All rights reserved. Use of this source code is governed by a | 1244 // for details. All rights reserved. Use of this source code is governed by a |
1237 // BSD-style license that can be found in the LICENSE file. | 1245 // BSD-style license that can be found in the LICENSE file. |
1238 | 1246 |
1239 | 1247 |
1240 @DocsEditable() | 1248 @DocsEditable() |
1241 @DomName('IDBRequest') | 1249 @DomName('IDBRequest') |
1242 @Unstable() | 1250 @Unstable() |
1243 class Request extends EventTarget native "IDBRequest" { | 1251 @Native("IDBRequest") |
| 1252 class Request extends EventTarget { |
1244 // To suppress missing implicit constructor warnings. | 1253 // To suppress missing implicit constructor warnings. |
1245 factory Request._() { throw new UnsupportedError("Not supported"); } | 1254 factory Request._() { throw new UnsupportedError("Not supported"); } |
1246 | 1255 |
1247 /** | 1256 /** |
1248 * Static factory designed to expose `error` events to event | 1257 * Static factory designed to expose `error` events to event |
1249 * handlers that are not necessarily instances of [Request]. | 1258 * handlers that are not necessarily instances of [Request]. |
1250 * | 1259 * |
1251 * See [EventStreamProvider] for usage information. | 1260 * See [EventStreamProvider] for usage information. |
1252 */ | 1261 */ |
1253 @DomName('IDBRequest.errorEvent') | 1262 @DomName('IDBRequest.errorEvent') |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1300 @DocsEditable() | 1309 @DocsEditable() |
1301 Stream<Event> get onSuccess => successEvent.forTarget(this); | 1310 Stream<Event> get onSuccess => successEvent.forTarget(this); |
1302 } | 1311 } |
1303 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1312 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
1304 // for details. All rights reserved. Use of this source code is governed by a | 1313 // for details. All rights reserved. Use of this source code is governed by a |
1305 // BSD-style license that can be found in the LICENSE file. | 1314 // BSD-style license that can be found in the LICENSE file. |
1306 | 1315 |
1307 | 1316 |
1308 @DomName('IDBTransaction') | 1317 @DomName('IDBTransaction') |
1309 @Unstable() | 1318 @Unstable() |
1310 class Transaction extends EventTarget native "IDBTransaction" { | 1319 @Native("IDBTransaction") |
| 1320 class Transaction extends EventTarget { |
1311 | 1321 |
1312 /** | 1322 /** |
1313 * Provides a Future which will be completed once the transaction has | 1323 * Provides a Future which will be completed once the transaction has |
1314 * completed. | 1324 * completed. |
1315 * | 1325 * |
1316 * The future will error if an error occurrs on the transaction or if the | 1326 * The future will error if an error occurrs on the transaction or if the |
1317 * transaction is aborted. | 1327 * transaction is aborted. |
1318 */ | 1328 */ |
1319 Future<Database> get completed { | 1329 Future<Database> get completed { |
1320 var completer = new Completer<Database>(); | 1330 var completer = new Completer<Database>(); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1407 | 1417 |
1408 } | 1418 } |
1409 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1419 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
1410 // for details. All rights reserved. Use of this source code is governed by a | 1420 // for details. All rights reserved. Use of this source code is governed by a |
1411 // BSD-style license that can be found in the LICENSE file. | 1421 // BSD-style license that can be found in the LICENSE file. |
1412 | 1422 |
1413 | 1423 |
1414 @DocsEditable() | 1424 @DocsEditable() |
1415 @DomName('IDBVersionChangeEvent') | 1425 @DomName('IDBVersionChangeEvent') |
1416 @Unstable() | 1426 @Unstable() |
1417 class VersionChangeEvent extends Event native "IDBVersionChangeEvent" { | 1427 @Native("IDBVersionChangeEvent") |
| 1428 class VersionChangeEvent extends Event { |
1418 // To suppress missing implicit constructor warnings. | 1429 // To suppress missing implicit constructor warnings. |
1419 factory VersionChangeEvent._() { throw new UnsupportedError("Not supported");
} | 1430 factory VersionChangeEvent._() { throw new UnsupportedError("Not supported");
} |
1420 | 1431 |
1421 @DomName('IDBVersionChangeEvent.dataLoss') | 1432 @DomName('IDBVersionChangeEvent.dataLoss') |
1422 @DocsEditable() | 1433 @DocsEditable() |
1423 @Experimental() // untriaged | 1434 @Experimental() // untriaged |
1424 final String dataLoss; | 1435 final String dataLoss; |
1425 | 1436 |
1426 @DomName('IDBVersionChangeEvent.dataLossMessage') | 1437 @DomName('IDBVersionChangeEvent.dataLossMessage') |
1427 @DocsEditable() | 1438 @DocsEditable() |
1428 @Experimental() // untriaged | 1439 @Experimental() // untriaged |
1429 final String dataLossMessage; | 1440 final String dataLossMessage; |
1430 | 1441 |
1431 @DomName('IDBVersionChangeEvent.newVersion') | 1442 @DomName('IDBVersionChangeEvent.newVersion') |
1432 @DocsEditable() | 1443 @DocsEditable() |
1433 @Creates('int|String|Null') | 1444 @Creates('int|String|Null') |
1434 @Returns('int|String|Null') | 1445 @Returns('int|String|Null') |
1435 final Object newVersion; | 1446 final Object newVersion; |
1436 | 1447 |
1437 @DomName('IDBVersionChangeEvent.oldVersion') | 1448 @DomName('IDBVersionChangeEvent.oldVersion') |
1438 @DocsEditable() | 1449 @DocsEditable() |
1439 @Creates('int|String|Null') | 1450 @Creates('int|String|Null') |
1440 @Returns('int|String|Null') | 1451 @Returns('int|String|Null') |
1441 final Object oldVersion; | 1452 final Object oldVersion; |
1442 } | 1453 } |
OLD | NEW |