| Index: third_party/pkg/js/lib/src/wrapping/translator.dart
|
| diff --git a/third_party/pkg/js/lib/src/wrapping/translator.dart b/third_party/pkg/js/lib/src/wrapping/translator.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ff4d80e4afdde9c7078e0668b6abd762eb64c217
|
| --- /dev/null
|
| +++ b/third_party/pkg/js/lib/src/wrapping/translator.dart
|
| @@ -0,0 +1,29 @@
|
| +// Copyright (c) 2013, 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.
|
| +
|
| +part of js.wrapping;
|
| +
|
| +class Translator<E> {
|
| + final Mapper<dynamic, E> fromJs;
|
| + final Mapper<E, dynamic> toJs;
|
| +
|
| + Translator(this.fromJs, this.toJs);
|
| +}
|
| +
|
| +class TranslatorForSerializable<E extends Serializable>
|
| + implements Translator<E> {
|
| + Mapper<dynamic, E> _fromJs;
|
| + Mapper<E, dynamic> _toJs;
|
| +
|
| + TranslatorForSerializable(Mapper<dynamic, E> fromJs, {mapOnlyNotNull: true}) {
|
| + this._fromJs = (o) => mapOnlyNotNull ? mapNotNull(o, fromJs) : fromJs(o);
|
| + this._toJs = (E s) => s != null ? s.toJs() : null;
|
| + }
|
| +
|
| + Mapper<dynamic, E> get fromJs => this._fromJs;
|
| + void set fromJs(v) => throw "final";
|
| +
|
| + Mapper<E, dynamic> get toJs => this._toJs;
|
| + void set toJs(v) => throw "final";
|
| +}
|
|
|