Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: pkg/analysis_server/lib/src/services/index/index_store.dart

Issue 1359023002: Extract Dart specific node management into DartUnitIndexObjectManager. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library services.index_store; 5 library services.index_store;
6 6
7 import 'package:analysis_server/analysis/index/index_core.dart'; 7 import 'package:analysis_server/analysis/index/index_core.dart';
8 import 'package:analysis_server/src/services/index/index.dart'; 8 import 'package:analysis_server/src/services/index/index.dart';
9 import 'package:analyzer/src/generated/element.dart'; 9 import 'package:analyzer/src/generated/element.dart';
10 import 'package:analyzer/src/generated/engine.dart'; 10 import 'package:analyzer/src/generated/engine.dart';
11 11
12 /** 12 /**
13 * A container with information computed by an index - relations between 13 * A container with information computed by an index - relations between
14 * elements. 14 * elements.
15 */ 15 */
16 abstract class InternalIndexStore extends IndexStore { 16 abstract class InternalIndexStore extends IndexStore {
17 /** 17 /**
18 * Answers index statistics. 18 * Answers index statistics.
19 */ 19 */
20 String get statistics; 20 String get statistics;
21 21
22 /** 22 /**
23 * Notifies the index store that we are going to index an unit with the given 23 * Notifies the index store that we are going to index the given [object].
24 * [unitElement].
25 *
26 * If the unit is a part of a library, then all its locations are removed.
27 *
28 * If it is a defining compilation unit of a library, then index store also
29 * checks if some previously indexed parts of the library are not parts of the
30 * library anymore, and clears their information.
31 * 24 *
32 * [context] - the [AnalysisContext] in which unit being indexed. 25 * [context] - the [AnalysisContext] in which unit being indexed.
33 * [unitElement] - the element of the unit being indexed. 26 * [object] - the object being indexed.
34 * 27 *
35 * Returns `true` if the given [unitElement] may be indexed, or `false` if 28 * Returns `true` if the given [object] may be indexed, or `false` if
36 * belongs to a disposed [AnalysisContext], is not resolved completely, etc. 29 * belongs to a disposed [AnalysisContext], is not resolved completely, etc.
37 */ 30 */
38 bool aboutToIndexDart( 31 bool aboutToIndex(AnalysisContext context, Object object);
39 AnalysisContext context, CompilationUnitElement unitElement);
40 32
41 /** 33 /**
42 * Notifies the index store that we are going to index an unit with the given 34 * Notifies the index store that there was an error during the current
43 * [htmlElement]. 35 * indexing, and all the information recorded after the last
44 * 36 * [aboutToIndex] invocation must be discarded.
45 * [context] - the [AnalysisContext] in which unit being indexed.
46 * [htmlElement] - the [HtmlElement] being indexed.
47 *
48 * Returns `true` if the given [htmlElement] may be indexed, or `false` if
49 * belongs to a disposed [AnalysisContext], is not resolved completely, etc.
50 */ 37 */
51 bool aboutToIndexHtml(AnalysisContext context, HtmlElement htmlElement); 38 void cancelIndex();
52 39
53 /** 40 /**
54 * Notifies the index store that there was an error during the current Dart 41 * Notifies the index store that the current object indexing is done.
55 * indexing, and all the information recorded after the last
56 * [aboutToIndexDart] invocation must be discarded.
57 */
58 void cancelIndexDart();
59
60 /**
61 * Notifies the index store that the current Dart or HTML unit indexing is
62 * done.
63 * 42 *
64 * If this method is not invoked after corresponding "aboutToIndex*" 43 * If this method is not invoked after corresponding [aboutToIndex]
65 * invocation, all recorded information may be lost. 44 * invocation, all recorded information may be lost.
66 */ 45 */
67 void doneIndex(); 46 void doneIndex();
68 47
69 /** 48 /**
70 * Returns top-level [Element]s whose names satisfy to [nameFilter]. 49 * Returns top-level [Element]s whose names satisfy to [nameFilter].
71 */ 50 */
72 List<Element> getTopLevelDeclarations(ElementNameFilter nameFilter); 51 List<Element> getTopLevelDeclarations(ElementNameFilter nameFilter);
73 52
74 /** 53 /**
75 * Records the declaration of the given top-level [element]. 54 * Records the declaration of the given top-level [element].
76 */ 55 */
77 void recordTopLevelDeclaration(Element element); 56 void recordTopLevelDeclaration(Element element);
78 } 57 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698