| Index: pkg/analysis_server/lib/src/services/index/store/codec.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/index/store/codec.dart b/pkg/analysis_server/lib/src/services/index/store/codec.dart
|
| deleted file mode 100644
|
| index 9771f56497e98c267bb6d23affa2f83b7d849a5f..0000000000000000000000000000000000000000
|
| --- a/pkg/analysis_server/lib/src/services/index/store/codec.dart
|
| +++ /dev/null
|
| @@ -1,180 +0,0 @@
|
| -// 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.
|
| -
|
| -library services.src.index.store.codec;
|
| -
|
| -import 'dart:collection';
|
| -
|
| -import 'package:analysis_server/src/provisional/index/index_core.dart';
|
| -import 'package:analysis_server/src/services/index/index.dart';
|
| -import 'package:analyzer/src/generated/engine.dart';
|
| -
|
| -/**
|
| - * A helper that encodes/decodes [AnalysisContext]s from/to integers.
|
| - */
|
| -class ContextCodec {
|
| - /**
|
| - * A table mapping contexts to their unique indices.
|
| - */
|
| - Map<AnalysisContext, int> _contextToIndex =
|
| - new HashMap<AnalysisContext, int>();
|
| -
|
| - /**
|
| - * A table mapping indices to the corresponding contexts.
|
| - */
|
| - Map<int, AnalysisContext> _indexToContext =
|
| - new HashMap<int, AnalysisContext>();
|
| -
|
| - /**
|
| - * The next id to assign.
|
| - */
|
| - int _nextId = 0;
|
| -
|
| - /**
|
| - * Returns the [AnalysisContext] that corresponds to the given index.
|
| - */
|
| - AnalysisContext decode(int index) => _indexToContext[index];
|
| -
|
| - /**
|
| - * Returns an unique index for the given [AnalysisContext].
|
| - */
|
| - int encode(AnalysisContext context) {
|
| - int index = _contextToIndex[context];
|
| - if (index == null) {
|
| - index = _nextId++;
|
| - _contextToIndex[context] = index;
|
| - _indexToContext[index] = context;
|
| - }
|
| - return index;
|
| - }
|
| -
|
| - /**
|
| - * Removes the given [context].
|
| - */
|
| - void remove(AnalysisContext context) {
|
| - int id = _contextToIndex.remove(context);
|
| - if (id != null) {
|
| - _indexToContext.remove(id);
|
| - }
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A helper that encodes/decodes [IndexableObject]s to/from integers.
|
| - */
|
| -class ElementCodec {
|
| - // TODO(brianwilkerson) Rename this class now that if encodes indexable
|
| - // objects rather than elements.
|
| - final StringCodec _stringCodec;
|
| -
|
| - ElementCodec(this._stringCodec);
|
| -
|
| - /**
|
| - * Returns an [IndexableObject] that corresponds to the given identifiers.
|
| - */
|
| - IndexableObject decode(
|
| - AnalysisContext context, int fileId, int offset, int kindId) {
|
| - IndexableObjectKind kind = IndexableObjectKind.getKind(kindId);
|
| - if (kind == null) {
|
| - return null;
|
| - } else if (kind is IndexableNameKind) {
|
| - String name = _stringCodec.decode(offset);
|
| - return new IndexableName(name);
|
| - }
|
| - String filePath = _stringCodec.decode(fileId);
|
| - return kind.decode(context, filePath, offset);
|
| - }
|
| -
|
| - /**
|
| - * Returns the first component of the [indexable] id.
|
| - * In the most cases it is an encoding of the [indexable]'s file path.
|
| - * If the given [indexable] is not defined in a file, returns `-1`.
|
| - */
|
| - int encode1(IndexableObject indexable) {
|
| - String filePath = indexable.filePath;
|
| - if (filePath == null) {
|
| - return -1;
|
| - }
|
| - return _stringCodec.encode(filePath);
|
| - }
|
| -
|
| - /**
|
| - * Returns the second component of the [indexable] id.
|
| - * In the most cases it is the [indexable]'s name offset.
|
| - */
|
| - int encode2(IndexableObject indexable) {
|
| - if (indexable is IndexableName) {
|
| - String name = indexable.name;
|
| - return _stringCodec.encode(name);
|
| - }
|
| - return indexable.offset;
|
| - }
|
| -
|
| - /**
|
| - * Returns the third component of the [indexable] id.
|
| - * In the most cases it is the [indexable]'s kind.
|
| - */
|
| - int encode3(IndexableObject indexable) {
|
| - return indexable.kind.index;
|
| - }
|
| -
|
| - /**
|
| - * Returns an integer that corresponds to the name of [indexable].
|
| - */
|
| - int encodeHash(IndexableObject indexable) {
|
| - return indexable.kind.encodeHash(_stringCodec.encode, indexable);
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A helper that encodes/decodes [Relationship]s to/from integers.
|
| - */
|
| -class RelationshipCodec {
|
| - final StringCodec _stringCodec;
|
| -
|
| - RelationshipCodec(this._stringCodec);
|
| -
|
| - RelationshipImpl decode(int idIndex) {
|
| - String id = _stringCodec.decode(idIndex);
|
| - return RelationshipImpl.getRelationship(id);
|
| - }
|
| -
|
| - int encode(RelationshipImpl relationship) {
|
| - String id = relationship.identifier;
|
| - return _stringCodec.encode(id);
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * A helper that encodes/decodes [String]s from/to integers.
|
| - */
|
| -class StringCodec {
|
| - /**
|
| - * A table mapping names to their unique indices.
|
| - */
|
| - final Map<String, int> nameToIndex = new HashMap<String, int>();
|
| -
|
| - /**
|
| - * A table mapping indices to the corresponding strings.
|
| - */
|
| - final List<String> _indexToName = <String>[];
|
| -
|
| - /**
|
| - * Returns the [String] that corresponds to the given index.
|
| - */
|
| - String decode(int index) => _indexToName[index];
|
| -
|
| - /**
|
| - * Returns an unique index for the given [String].
|
| - */
|
| - int encode(String name) {
|
| - int index = nameToIndex[name];
|
| - if (index == null) {
|
| - index = _indexToName.length;
|
| - nameToIndex[name] = index;
|
| - _indexToName.add(name);
|
| - }
|
| - return index;
|
| - }
|
| -}
|
|
|