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.mappedBy(_referenceFor).toList(); | 200 _rootReferences() => trace.roots.map(_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.mappedBy((x) => new List(x.length)).toList(); | 334 objects = _data.map((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 |