| Index: lib/src/backend/metadata.dart
|
| diff --git a/lib/src/backend/metadata.dart b/lib/src/backend/metadata.dart
|
| index d567a27c9d5c3d0778cdacc7451ffa1498fcb576..0f381f69a062049adeba71323ae0700d4ebf9326 100644
|
| --- a/lib/src/backend/metadata.dart
|
| +++ b/lib/src/backend/metadata.dart
|
| @@ -26,4 +26,20 @@ class Metadata {
|
| Metadata.parse({String testOn})
|
| : this(
|
| testOn: testOn == null ? null : new PlatformSelector.parse(testOn));
|
| +
|
| + /// Dezerializes the result of [Metadata.serialize] into a new [Metadata].
|
| + Metadata.deserialize(serialized)
|
| + : this.parse(testOn: serialized['testOn']);
|
| +
|
| + /// Return a new [Metadata] that merges [this] with [other].
|
| + ///
|
| + /// If the two [Metadata]s have conflicting properties, [other] wins.
|
| + Metadata merge(Metadata other) =>
|
| + new Metadata(testOn: testOn.intersect(other.testOn));
|
| +
|
| + /// Serializes [this] into a JSON-safe object that can be deserialized using
|
| + /// [new Metadata.deserialize].
|
| + serialize() => {
|
| + 'testOn': testOn == PlatformSelector.all ? null : testOn.toString()
|
| + };
|
| }
|
|
|