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

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

Issue 12086062: Rename mappedBy to map. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Undo change to test-script. Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « pkg/path/lib/path.dart ('k') | pkg/serialization/lib/src/format.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 part of serialization; 5 part of serialization;
6 6
7 // TODO(alanknight): Figure out how to reasonably separate out the things 7 // TODO(alanknight): Figure out how to reasonably separate out the things
8 // that require reflection without making the API more awkward. Or if that is 8 // that require reflection without making the API more awkward. Or if that is
9 // in fact necessary. Maybe the tree-shaking will just remove it if unused. 9 // in fact necessary. Maybe the tree-shaking will just remove it if unused.
10 10
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 void forEachConstructorField(Function f) { 526 void forEachConstructorField(Function f) {
527 for (var each in contents) { 527 for (var each in contents) {
528 if (each.usedInConstructor) { 528 if (each.usedInConstructor) {
529 f(each); 529 f(each);
530 } 530 }
531 } 531 }
532 } 532 }
533 533
534 List get constructorFields => _constructorFields; 534 List get constructorFields => _constructorFields;
535 List constructorFieldNames() => 535 List constructorFieldNames() =>
536 constructorFields.mappedBy((x) => x.name).toList(); 536 constructorFields.map((x) => x.name).toList();
537 List constructorFieldIndices() => 537 List constructorFieldIndices() =>
538 constructorFields.mappedBy((x) => x.index).toList(); 538 constructorFields.map((x) => x.index).toList();
539 List regularFields() => contents.where((x) => !x.usedInConstructor).toList(); 539 List regularFields() => contents.where((x) => !x.usedInConstructor).toList();
540 List regularFieldNames() => regularFields().mappedBy((x) => x.name).toList(); 540 List regularFieldNames() => regularFields().map((x) => x.name).toList();
541 List regularFieldIndices() => 541 List regularFieldIndices() =>
542 regularFields().mappedBy((x) => x.index).toList(); 542 regularFields().map((x) => x.index).toList();
543 543
544 /** 544 /**
545 * If we weren't given any non-constructor fields to use, figure out what 545 * If we weren't given any non-constructor fields to use, figure out what
546 * we think they ought to be, based on the class definition. 546 * we think they ought to be, based on the class definition.
547 * We find public fields, getters that have corresponding setters, and getters 547 * We find public fields, getters that have corresponding setters, and getters
548 * that are listed in the constructor fields. 548 * that are listed in the constructor fields.
549 */ 549 */
550 void figureOutFields() { 550 void figureOutFields() {
551 Iterable names(Iterable<DeclarationMirror> mirrors) => 551 Iterable names(Iterable<DeclarationMirror> mirrors) =>
552 mirrors.mappedBy((each) => each.simpleName).toList(); 552 mirrors.map((each) => each.simpleName).toList();
553 553
554 if (!_shouldFigureOutFields || !regularFields().isEmpty) return; 554 if (!_shouldFigureOutFields || !regularFields().isEmpty) return;
555 var fields = publicFields(mirror); 555 var fields = publicFields(mirror);
556 var getters = publicGetters(mirror); 556 var getters = publicGetters(mirror);
557 var gettersWithSetters = getters.where( (each) 557 var gettersWithSetters = getters.where( (each)
558 => mirror.setters["${each.simpleName}="] != null); 558 => mirror.setters["${each.simpleName}="] != null);
559 var gettersThatMatchConstructor = getters.where((each) 559 var gettersThatMatchConstructor = getters.where((each)
560 => (named(each.simpleName) != null) && 560 => (named(each.simpleName) != null) &&
561 (named(each.simpleName).usedInConstructor)).toList(); 561 (named(each.simpleName).usedInConstructor)).toList();
562 addAllNotExplicitlyExcluded(names(fields)); 562 addAllNotExplicitlyExcluded(names(fields));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 if (name == null) name = ''; 599 if (name == null) name = '';
600 if (fieldNumbers == null) fieldNumbers = const []; 600 if (fieldNumbers == null) fieldNumbers = const [];
601 } 601 }
602 602
603 /** 603 /**
604 * Find the field values in [state] and pass them to the constructor. 604 * Find the field values in [state] and pass them to the constructor.
605 * If any of [fieldNumbers] is not an int, then use it as a literal value. 605 * If any of [fieldNumbers] is not an int, then use it as a literal value.
606 */ 606 */
607 constructFrom(state, Reader r) { 607 constructFrom(state, Reader r) {
608 // TODO(alanknight): Handle named parameters 608 // TODO(alanknight): Handle named parameters
609 Collection inflated = fieldNumbers.mappedBy( 609 Collection inflated = fieldNumbers.map(
610 (x) => (x is int) ? reflect(r.inflateReference(state[x])) : reflect(x)); 610 (x) => (x is int) ? reflect(r.inflateReference(state[x])) : reflect(x));
611 var result = type.newInstance(name, inflated.toList()); 611 var result = type.newInstance(name, inflated.toList());
612 return deprecatedFutureValue(result); 612 return deprecatedFutureValue(result);
613 } 613 }
614 } 614 }
615 615
616 /** 616 /**
617 * This wraps a map to make it indexable by integer field numbers. It translates 617 * This wraps a map to make it indexable by integer field numbers. It translates
618 * from the index into a field name and then looks it up in the map. 618 * from the index into a field name and then looks it up in the map.
619 */ 619 */
620 class _MapWrapper { 620 class _MapWrapper {
621 final _map; 621 final _map;
622 List fieldList; 622 List fieldList;
623 _MapWrapper(this.fieldList) : _map = new Map(); 623 _MapWrapper(this.fieldList) : _map = new Map();
624 _MapWrapper.fromMap(this._map, this.fieldList); 624 _MapWrapper.fromMap(this._map, this.fieldList);
625 625
626 operator [](key) => _map[fieldList[key].name]; 626 operator [](key) => _map[fieldList[key].name];
627 627
628 operator []=(key, value) { _map[fieldList[key].name] = value; } 628 operator []=(key, value) { _map[fieldList[key].name] = value; }
629 get length => _map.length; 629 get length => _map.length;
630 630
631 asMap() => _map; 631 asMap() => _map;
632 } 632 }
OLDNEW
« no previous file with comments | « pkg/path/lib/path.dart ('k') | pkg/serialization/lib/src/format.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698