| Index: yaml/lib/src/yaml_node_wrapper.dart
|
| diff --git a/yaml/lib/src/yaml_node_wrapper.dart b/yaml/lib/src/yaml_node_wrapper.dart
|
| deleted file mode 100644
|
| index d7146c450aa402f3b49f36ea3d08d3a6a273badb..0000000000000000000000000000000000000000
|
| --- a/yaml/lib/src/yaml_node_wrapper.dart
|
| +++ /dev/null
|
| @@ -1,155 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -library yaml.yaml_node_wrapper;
|
| -
|
| -import 'dart:collection';
|
| -
|
| -import 'package:collection/collection.dart' as pkg_collection;
|
| -import 'package:source_span/source_span.dart';
|
| -
|
| -import 'null_span.dart';
|
| -import 'style.dart';
|
| -import 'yaml_node.dart';
|
| -
|
| -/// A wrapper that makes a normal Dart map behave like a [YamlMap].
|
| -class YamlMapWrapper extends MapBase
|
| - with pkg_collection.UnmodifiableMapMixin
|
| - implements YamlMap {
|
| - final CollectionStyle style = CollectionStyle.ANY;
|
| -
|
| - final Map _dartMap;
|
| -
|
| - final SourceSpan span;
|
| -
|
| - final Map<dynamic, YamlNode> nodes;
|
| -
|
| - Map get value => this;
|
| -
|
| - Iterable get keys => _dartMap.keys;
|
| -
|
| - YamlMapWrapper(Map dartMap, sourceUrl)
|
| - : this._(dartMap, new NullSpan(sourceUrl));
|
| -
|
| - YamlMapWrapper._(Map dartMap, SourceSpan span)
|
| - : _dartMap = dartMap,
|
| - span = span,
|
| - nodes = new _YamlMapNodes(dartMap, span);
|
| -
|
| - operator [](Object key) {
|
| - var value = _dartMap[key];
|
| - if (value is Map) return new YamlMapWrapper._(value, span);
|
| - if (value is List) return new YamlListWrapper._(value, span);
|
| - return value;
|
| - }
|
| -
|
| - int get hashCode => _dartMap.hashCode;
|
| -
|
| - operator ==(Object other) =>
|
| - other is YamlMapWrapper && other._dartMap == _dartMap;
|
| -}
|
| -
|
| -/// The implementation of [YamlMapWrapper.nodes] as a wrapper around the Dart
|
| -/// map.
|
| -class _YamlMapNodes extends MapBase<dynamic, YamlNode>
|
| - with pkg_collection.UnmodifiableMapMixin<dynamic, YamlNode> {
|
| - final Map _dartMap;
|
| -
|
| - final SourceSpan _span;
|
| -
|
| - Iterable get keys => _dartMap.keys.map((key) =>
|
| - new YamlScalar.internalWithSpan(key, _span));
|
| -
|
| - _YamlMapNodes(this._dartMap, this._span);
|
| -
|
| - YamlNode operator [](Object key) {
|
| - // Use "as" here because key being assigned to invalidates type propagation.
|
| - if (key is YamlScalar) key = (key as YamlScalar).value;
|
| - if (!_dartMap.containsKey(key)) return null;
|
| - return _nodeForValue(_dartMap[key], _span);
|
| - }
|
| -
|
| - int get hashCode => _dartMap.hashCode;
|
| -
|
| - operator ==(Object other) =>
|
| - other is _YamlMapNodes && other._dartMap == _dartMap;
|
| -}
|
| -
|
| -// TODO(nweiz): Use UnmodifiableListMixin when issue 18970 is fixed.
|
| -/// A wrapper that makes a normal Dart list behave like a [YamlList].
|
| -class YamlListWrapper extends ListBase implements YamlList {
|
| - final CollectionStyle style = CollectionStyle.ANY;
|
| -
|
| - final List _dartList;
|
| -
|
| - final SourceSpan span;
|
| -
|
| - final List<YamlNode> nodes;
|
| -
|
| - List get value => this;
|
| -
|
| - int get length => _dartList.length;
|
| -
|
| - set length(int index) {
|
| - throw new UnsupportedError("Cannot modify an unmodifiable List.");
|
| - }
|
| -
|
| - YamlListWrapper(List dartList, sourceUrl)
|
| - : this._(dartList, new NullSpan(sourceUrl));
|
| -
|
| - YamlListWrapper._(List dartList, SourceSpan span)
|
| - : _dartList = dartList,
|
| - span = span,
|
| - nodes = new _YamlListNodes(dartList, span);
|
| -
|
| - operator [](int index) {
|
| - var value = _dartList[index];
|
| - if (value is Map) return new YamlMapWrapper._(value, span);
|
| - if (value is List) return new YamlListWrapper._(value, span);
|
| - return value;
|
| - }
|
| -
|
| - operator []=(int index, value) {
|
| - throw new UnsupportedError("Cannot modify an unmodifiable List.");
|
| - }
|
| -
|
| - int get hashCode => _dartList.hashCode;
|
| -
|
| - operator ==(Object other) =>
|
| - other is YamlListWrapper && other._dartList == _dartList;
|
| -}
|
| -
|
| -// TODO(nweiz): Use UnmodifiableListMixin when issue 18970 is fixed.
|
| -/// The implementation of [YamlListWrapper.nodes] as a wrapper around the Dart
|
| -/// list.
|
| -class _YamlListNodes extends ListBase<YamlNode> {
|
| - final List _dartList;
|
| -
|
| - final SourceSpan _span;
|
| -
|
| - int get length => _dartList.length;
|
| -
|
| - set length(int index) {
|
| - throw new UnsupportedError("Cannot modify an unmodifiable List.");
|
| - }
|
| -
|
| - _YamlListNodes(this._dartList, this._span);
|
| -
|
| - YamlNode operator [](int index) => _nodeForValue(_dartList[index], _span);
|
| -
|
| - operator []=(int index, value) {
|
| - throw new UnsupportedError("Cannot modify an unmodifiable List.");
|
| - }
|
| -
|
| - int get hashCode => _dartList.hashCode;
|
| -
|
| - operator ==(Object other) =>
|
| - other is _YamlListNodes && other._dartList == _dartList;
|
| -}
|
| -
|
| -YamlNode _nodeForValue(value, SourceSpan span) {
|
| - if (value is Map) return new YamlMapWrapper._(value, span);
|
| - if (value is List) return new YamlListWrapper._(value, span);
|
| - return new YamlScalar.internalWithSpan(value, span);
|
| -}
|
|
|