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

Side by Side Diff: pkg/serialization/lib/serialization.dart

Issue 11613005: Duplicate of https://chromiumcodereview.appspot.com/11567018/ (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix from review comment Created 8 years 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | pkg/serialization/lib/src/basic_rule.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * This provides a general-purpose serialization facility for Dart objects. A 6 * This provides a general-purpose serialization facility for Dart objects. A
7 * [Serialization] is defined in terms of [SerializationRule]s and supports 7 * [Serialization] is defined in terms of [SerializationRule]s and supports
8 * reading and writing to different formats. 8 * reading and writing to different formats.
9 * 9 *
10 * Setup 10 * Setup
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 * or as an additional parameter to the reading methods. 141 * or as an additional parameter to the reading methods.
142 * 142 *
143 * new Serialization() 143 * new Serialization()
144 * ..addRuleFor(new Person(), constructorFields: ["name"]) 144 * ..addRuleFor(new Person(), constructorFields: ["name"])
145 * ..externalObjects['Person'] = reflect(new Person()).type; 145 * ..externalObjects['Person'] = reflect(new Person()).type;
146 */ 146 */
147 library serialization; 147 library serialization;
148 148
149 import 'src/mirrors_helpers.dart'; 149 import 'src/mirrors_helpers.dart';
150 import 'src/serialization_helpers.dart'; 150 import 'src/serialization_helpers.dart';
151 import 'src/polyfill_identity_set.dart';
152 import 'dart:json' show JSON; 151 import 'dart:json' show JSON;
153 152
154 part 'src/reader_writer.dart'; 153 part 'src/reader_writer.dart';
155 part 'src/serialization_rule.dart'; 154 part 'src/serialization_rule.dart';
156 part 'src/basic_rule.dart'; 155 part 'src/basic_rule.dart';
157 156
158 /** 157 /**
159 * This class defines a particular serialization scheme, in terms of 158 * This class defines a particular serialization scheme, in terms of
160 * [SerializationRule] instances, and supports reading and writing them. 159 * [SerializationRule] instances, and supports reading and writing them.
161 * See library comment for examples of usage. 160 * See library comment for examples of usage.
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 // Make some bogus rule instances so we have something to feed rule creation 392 // Make some bogus rule instances so we have something to feed rule creation
394 // and get their types. If only we had class literals implemented... 393 // and get their types. If only we had class literals implemented...
395 var basicRule = new BasicRule(reflect(null).type, '', [], [], []); 394 var basicRule = new BasicRule(reflect(null).type, '', [], [], []);
396 395
397 var meta = new Serialization() 396 var meta = new Serialization()
398 ..selfDescribing = false 397 ..selfDescribing = false
399 ..addRuleFor(new ListRule()) 398 ..addRuleFor(new ListRule())
400 ..addRuleFor(new PrimitiveRule()) 399 ..addRuleFor(new PrimitiveRule())
401 ..addRuleFor(new ListRuleEssential()) 400 ..addRuleFor(new ListRuleEssential())
402 ..addRuleFor(basicRule, 401 ..addRuleFor(basicRule,
403 constructorFields: ['typeWrapped', 402 constructorFields: ['type',
404 'constructorName', 403 'constructorName',
405 'constructorFields', 'regularFields', []], 404 'constructorFields', 'regularFields', []],
406 fields: []) 405 fields: [])
407 ..addRule(new NamedObjectRule()) 406 ..addRule(new NamedObjectRule())
408 ..addRule(new MirrorRule()); 407 ..addRule(new MirrorRule());
409 meta.namedObjects = namedObjects; 408 meta.namedObjects = namedObjects;
410 return meta; 409 return meta;
411 } 410 }
412 411
413 /** Return true if our [namedObjects] collection has an entry for [object].*/ 412 /** Return true if our [namedObjects] collection has an entry for [object].*/
(...skipping 14 matching lines...) Expand all
428 } 427 }
429 } 428 }
430 429
431 /** 430 /**
432 * An exception class for errors during serialization. 431 * An exception class for errors during serialization.
433 */ 432 */
434 class SerializationException implements Exception { 433 class SerializationException implements Exception {
435 final String message; 434 final String message;
436 const SerializationException([this.message]); 435 const SerializationException([this.message]);
437 } 436 }
OLDNEW
« no previous file with comments | « no previous file | pkg/serialization/lib/src/basic_rule.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698