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

Unified Diff: lib/coreimpl/maps.dart

Issue 11274043: Move Arrays, Collections and Maps into a new library, dart:collections. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Move collection_sources.gypi to lib/collection/. Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: lib/coreimpl/maps.dart
diff --git a/lib/coreimpl/maps.dart b/lib/coreimpl/maps.dart
deleted file mode 100644
index d120729d787b44a9e6d467e08620d74fd88bfa78..0000000000000000000000000000000000000000
--- a/lib/coreimpl/maps.dart
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (c) 2012, 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.
-
-/*
- * Helper class which implements complex [Map] operations
- * in term of basic ones ([Map.getKeys], [Map.operator []],
- * [Map.operator []=] and [Map.remove].) Not all methods are
- * necessary to implement each particular operation.
- */
-class Maps {
- static bool containsValue(Map map, value) {
- for (final v in map.getValues()) {
- if (value == v) {
- return true;
- }
- }
- return false;
- }
-
- static bool containsKey(Map map, key) {
- for (final k in map.getKeys()) {
- if (key == k) {
- return true;
- }
- }
- return false;
- }
-
- static putIfAbsent(Map map, key, ifAbsent()) {
- if (map.containsKey(key)) {
- return map[key];
- }
- final v = ifAbsent();
- map[key] = v;
- return v;
- }
-
- static clear(Map map) {
- for (final k in map.getKeys()) {
- map.remove(k);
- }
- }
-
- static forEach(Map map, void f(key, value)) {
- for (final k in map.getKeys()) {
- f(k, map[k]);
- }
- }
-
- static Collection getValues(Map map) {
- final result = [];
- for (final k in map.getKeys()) {
- result.add(map[k]);
- }
- return result;
- }
-
- static int length(Map map) => map.getKeys().length;
-
- static bool isEmpty(Map map) => length(map) == 0;
-
- /**
- * Returns a string representing the specified map. The returned string
- * looks like this: [:'{key0: value0, key1: value1, ... keyN: valueN}':].
- * The value returned by its [toString] method is used to represent each
- * key or value.
- *
- * If the map collection contains a reference to itself, either
- * directly as a key or value, or indirectly through other collections
- * or maps, the contained reference is rendered as [:'{...}':]. This
- * prevents the infinite regress that would otherwise occur. So, for example,
- * calling this method on a map whose sole entry maps the string key 'me'
- * to a reference to the map would return [:'{me: {...}}':].
- *
- * A typical implementation of a map's [toString] method will
- * simply return the results of this method applied to the collection.
- */
- static String mapToString(Map m) {
- var result = new StringBuffer();
- _emitMap(m, result, new List());
- return result.toString();
- }
-
- /**
- * Appends a string representing the specified map to the specified
- * string buffer. The string is formatted as per [mapToString].
- * The [:visiting:] list contains references to all of the enclosing
- * collections and maps (which are currently in the process of being
- * emitted into [:result:]). The [:visiting:] parameter allows this method
- * to generate a [:'[...]':] or [:'{...}':] where required. In other words,
- * it allows this method and [_emitCollection] to identify recursive maps
- * and collections.
- */
- static void _emitMap(Map m, StringBuffer result, List visiting) {
- visiting.add(m);
- result.add('{');
-
- bool first = true;
- m.forEach((k, v) {
- if (!first) {
- result.add(', ');
- }
- first = false;
- Collections._emitObject(k, result, visiting);
- result.add(': ');
- Collections._emitObject(v, result, visiting);
- });
-
- result.add('}');
- visiting.removeLast();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698