Files
sdk/utils/archive/options.dart
T
regis@google.com d9b0276a4c Require two type arguments for map literals (issue 4522).
Spec has been changed back.
VM temporarily accepts a single type argument and emits a warning.
Update tests, dart2js source, dartdoc, etc...
Disable failing co19 tests (issue 175 filed).
Review URL: https://chromiumcodereview.appspot.com//10854191

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10861 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-16 20:44:32 +00:00

53 lines
1.3 KiB
Dart

// 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.
#library('options');
/**
* An individual option.
*/
class ArchiveOption {
/** The name of the option. */
final String name;
/** The value of the option. */
final value;
/** The module to which the option applies.*/
String module;
ArchiveOption(this.name, this.value, [this.module]);
}
/**
* A collection of options.
*/
class ArchiveOptions {
/** The internal options map. */
final Map<String, ArchiveOption> _options;
ArchiveOptions() : _options = <String, ArchiveOption>{};
/** Returns whether any options have been set. */
bool get isEmpty() => _options.isEmpty();
/**
* Sets an option. [value] should either be a bool or something with a
* reasonable `toString` method.
*
* To set the module for an option, use [operator[]].
*/
void operator[]=(String name, value) {
_options[name] = new ArchiveOption(name, value);
}
/** Gets the option with the given name. */
ArchiveOption operator[](String name) {
return _options[name];
}
/** Gets all options. */
List<ArchiveOption> get all() => _options.getValues();
}