| OLD | NEW |
| 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 part of serialization; | 5 part of serialization; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * This writes out the state of the objects to an external format. It holds | 8 * This writes out the state of the objects to an external format. It holds |
| 9 * all of the intermediate state needed. The primary API for it is the | 9 * all of the intermediate state needed. The primary API for it is the |
| 10 * [write] method. | 10 * [write] method. |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 */ | 190 */ |
| 191 int _objectNumberFor(object) { | 191 int _objectNumberFor(object) { |
| 192 var reference = references[object]; | 192 var reference = references[object]; |
| 193 return (reference == null) ? -1 : reference.objectNumber; | 193 return (reference == null) ? -1 : reference.objectNumber; |
| 194 } | 194 } |
| 195 | 195 |
| 196 /** | 196 /** |
| 197 * Return a list of [Reference] objects pointing to our roots. This will be | 197 * Return a list of [Reference] objects pointing to our roots. This will be |
| 198 * stored in the output under "roots" in the default format. | 198 * stored in the output under "roots" in the default format. |
| 199 */ | 199 */ |
| 200 _rootReferences() => trace.roots.map(_referenceFor).toList(); | 200 _rootReferences() => trace.roots.mappedBy(_referenceFor).toList(); |
| 201 | 201 |
| 202 /** | 202 /** |
| 203 * Given an object, return a reference for it if one exists. If there's | 203 * Given an object, return a reference for it if one exists. If there's |
| 204 * no reference, return the object itself. Once we have finished the tracing | 204 * no reference, return the object itself. Once we have finished the tracing |
| 205 * step, all objects that should have a reference (roughly speaking, | 205 * step, all objects that should have a reference (roughly speaking, |
| 206 * non-primitives) can be relied on to have a reference. | 206 * non-primitives) can be relied on to have a reference. |
| 207 */ | 207 */ |
| 208 _referenceFor(object) { | 208 _referenceFor(object) { |
| 209 var result = references[object]; | 209 var result = references[object]; |
| 210 return (result == null) ? object : result; | 210 return (result == null) ? object : result; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 324 */ | 324 */ |
| 325 List<SerializationRule> get rules => serialization._rules; | 325 List<SerializationRule> get rules => serialization._rules; |
| 326 | 326 |
| 327 /** | 327 /** |
| 328 * Internal use only, for testing purposes. Set the data for this reader | 328 * Internal use only, for testing purposes. Set the data for this reader |
| 329 * to a List of Lists whose size must match the number of rules. | 329 * to a List of Lists whose size must match the number of rules. |
| 330 */ | 330 */ |
| 331 // When we set the data, initialize the object storage to a matching size. | 331 // When we set the data, initialize the object storage to a matching size. |
| 332 void set data(List<List> newData) { | 332 void set data(List<List> newData) { |
| 333 _data = newData; | 333 _data = newData; |
| 334 objects = _data.map((x) => new List(x.length)).toList(); | 334 objects = _data.mappedBy((x) => new List(x.length)).toList(); |
| 335 } | 335 } |
| 336 | 336 |
| 337 /** | 337 /** |
| 338 * This is the primary method for a [Reader]. It takes the input data, | 338 * This is the primary method for a [Reader]. It takes the input data, |
| 339 * decodes it according to [format] and returns the root object. | 339 * decodes it according to [format] and returns the root object. |
| 340 */ | 340 */ |
| 341 read(rawInput, [Map externals = const {}]) { | 341 read(rawInput, [Map externals = const {}]) { |
| 342 namedObjects = externals; | 342 namedObjects = externals; |
| 343 var input = format.read(rawInput, this); | 343 var input = format.read(rawInput, this); |
| 344 data = input["data"]; | 344 data = input["data"]; |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 * for an example. It knows how to return its object and how to filter. | 600 * for an example. It knows how to return its object and how to filter. |
| 601 */ | 601 */ |
| 602 class DesignatedRuleForObject { | 602 class DesignatedRuleForObject { |
| 603 Function rulePredicate; | 603 Function rulePredicate; |
| 604 final target; | 604 final target; |
| 605 | 605 |
| 606 DesignatedRuleForObject(this.target, this.rulePredicate); | 606 DesignatedRuleForObject(this.target, this.rulePredicate); |
| 607 | 607 |
| 608 possibleRules(List rules) => rules.where(rulePredicate).toList(); | 608 possibleRules(List rules) => rules.where(rulePredicate).toList(); |
| 609 } | 609 } |
| OLD | NEW |