| Index: packages/analyzer/lib/src/summary/base.dart
|
| diff --git a/packages/analyzer/lib/src/summary/base.dart b/packages/analyzer/lib/src/summary/base.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..7c3d8ae7448b9c792738e3484cac8bdaf461af84
|
| --- /dev/null
|
| +++ b/packages/analyzer/lib/src/summary/base.dart
|
| @@ -0,0 +1,61 @@
|
| +// Copyright (c) 2014, 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.
|
| +
|
| +/**
|
| + * Base functionality which code generated summary classes are built upon.
|
| + */
|
| +library analyzer.src.summary.base;
|
| +
|
| +/**
|
| + * Annotation used in the summary IDL to indicate the id of a field. The set
|
| + * of ids used by a class must cover the contiguous range from 0 to N-1, where
|
| + * N is the number of fields.
|
| + *
|
| + * In order to preserve forwards and backwards compatibility, id numbers must
|
| + * be stable between releases. So when new fields are added they should take
|
| + * the next available id without renumbering other fields.
|
| + */
|
| +class Id {
|
| + final int value;
|
| +
|
| + const Id(this.value);
|
| +}
|
| +
|
| +/**
|
| + * Instances of this class represent data that has been read from a summary.
|
| + */
|
| +abstract class SummaryClass {
|
| + /**
|
| + * Translate the data in this class into a JSON map, whose keys are the names
|
| + * of fields and whose values are the data stored in those fields,
|
| + * recursively converted into JSON.
|
| + *
|
| + * Fields containing their default value are elided.
|
| + *
|
| + * Intended for testing and debugging only.
|
| + */
|
| + Map<String, Object> toJson();
|
| +
|
| + /**
|
| + * Translate the data in this class into a map whose keys are the names of
|
| + * fields and whose values are the data stored in those fields.
|
| + *
|
| + * Intended for testing and debugging only.
|
| + */
|
| + Map<String, Object> toMap();
|
| +}
|
| +
|
| +/**
|
| + * Annotation used in the summary IDL to indicate that a summary class can be
|
| + * the top level object in an encoded summary.
|
| + */
|
| +class TopLevel {
|
| + /**
|
| + * If non-null, identifier that will be stored in bytes 4-7 of the file,
|
| + * prior all other file data. Must be exactly 4 Latin1 characters.
|
| + */
|
| + final String fileIdentifier;
|
| +
|
| + const TopLevel([this.fileIdentifier]);
|
| +}
|
|
|