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 library options; | |
6 | |
7 /** | |
8 * An individual option. | |
9 */ | |
10 class ArchiveOption { | |
11 /** The name of the option. */ | |
12 final String name; | |
13 | |
14 /** The value of the option. */ | |
15 final value; | |
16 | |
17 /** The module to which the option applies.*/ | |
18 String module; | |
19 | |
20 ArchiveOption(this.name, this.value, [this.module]); | |
21 } | |
22 | |
23 /** | |
24 * A collection of options. | |
25 */ | |
26 class ArchiveOptions { | |
27 /** The internal options map. */ | |
28 final Map<String, ArchiveOption> _options; | |
29 | |
30 ArchiveOptions() : _options = <String, ArchiveOption>{}; | |
31 | |
32 /** Returns whether any options have been set. */ | |
33 bool get isEmpty => _options.isEmpty; | |
34 | |
35 /** | |
36 * Sets an option. [value] should either be a bool or something with a | |
37 * reasonable `toString` method. | |
38 * | |
39 * To set the module for an option, use [operator[]]. | |
40 */ | |
41 void operator[]=(String name, value) { | |
42 _options[name] = new ArchiveOption(name, value); | |
43 } | |
44 | |
45 /** Gets the option with the given name. */ | |
46 ArchiveOption operator[](String name) { | |
47 return _options[name]; | |
48 } | |
49 | |
50 /** Gets all options. */ | |
51 List<ArchiveOption> get all => _options.values.toList(); | |
52 } | |
OLD | NEW |