OLD | NEW |
---|---|
(Empty) | |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 /** | |
6 * An [Expando] allows adding new properties to objects. | |
sra1
2012/06/12 07:10:26
It does not look like adding properties to an obje
| |
7 */ | |
8 interface Expando<T> default _Expando<T> { | |
9 | |
10 /** | |
11 * The name of the this [Expando] as passed to the constructor. If | |
12 * no name was passed to the constructor, the name is [null]. | |
13 */ | |
14 final String name; | |
15 | |
16 /** | |
17 * Creates a new [Expando]. The optional name is only used for | |
sra1
2012/06/12 07:10:26
'only used' - I'm confused.
If I create two const
| |
18 * debugging purposes and creating two different (non-const) | |
19 * [Expando]s with the same name yields two [Expando]s that work on | |
20 * different properties of the objects they are used on. | |
21 */ | |
22 const Expando([String name]); | |
23 | |
24 /** | |
25 * Gets the value of this [Expando]'s property on the given | |
26 * object. If the object hasn't been expanded, the method returns | |
27 * [null]. | |
sra1
2012/06/12 07:10:26
Explain when the call will fail,
| |
28 */ | |
29 T operator [](Object object); | |
30 | |
31 /** | |
32 * Sets the value of this [Expando]'s property on the given | |
33 * object. Properties can effectively be removed again by setting | |
34 * their value to null. | |
35 */ | |
36 void operator []=(Object object, T value); | |
37 | |
38 } | |
OLD | NEW |