Index: corelib/src/expando.dart |
diff --git a/corelib/src/expando.dart b/corelib/src/expando.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..55094a5b29c804d697ea01c1b64837cd289d7c5c |
--- /dev/null |
+++ b/corelib/src/expando.dart |
@@ -0,0 +1,37 @@ |
+// 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. |
+ |
+/** |
+ * An [Expando] allows adding new properties to objects. |
+ */ |
+interface Expando<T> default _Expando<T> { |
+ |
+ /** |
+ * The name of the this [Expando] as passed to the constructor. If |
+ * no name was passed to the constructor, the name is [null]. |
+ */ |
+ final String name; |
+ |
+ /** |
+ * Creates a new [Expando]. The optional name is only used for |
+ * debugging purposes and creating two different (non-const) |
+ * [Expando]s with the same name does not |
Ivan Posva
2012/06/11 13:54:37
short comment
kasperl
2012/06/12 05:16:05
Done.
|
+ */ |
+ const Expando([String name]); |
+ |
+ /** |
+ * Gets the value of this [Expando]'s property on the given |
+ * object. If the object hasn't been expanded, the method returns |
+ * [null]. |
+ */ |
+ T operator [](Object object); |
+ |
+ /** |
+ * Sets the value of this [Expando]'s property on the given |
+ * object. Properties can effectively be removed again by setting |
+ * their value to null. |
+ */ |
+ void operator []=(Object object, T value); |
+ |
+} |