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

Side by Side Diff: pkg/analyzer/lib/src/task/model.dart

Issue 1136603002: Remove CompositeResultDescriptor (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « pkg/analyzer/lib/src/context/context.dart ('k') | pkg/analyzer/lib/task/model.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 analyzer.src.task.model; 5 library analyzer.src.task.model;
6 6
7 import 'package:analyzer/src/generated/engine.dart' hide AnalysisTask; 7 import 'package:analyzer/src/generated/engine.dart' hide AnalysisTask;
8 import 'package:analyzer/src/task/inputs.dart'; 8 import 'package:analyzer/src/task/inputs.dart';
9 import 'package:analyzer/task/model.dart'; 9 import 'package:analyzer/task/model.dart';
10 10
11 /** 11 /**
12 * The default [ResultCachingPolicy], results are never flushed. 12 * The default [ResultCachingPolicy], results are never flushed.
13 */ 13 */
14 const ResultCachingPolicy DEFAULT_CACHING_POLICY = 14 const ResultCachingPolicy DEFAULT_CACHING_POLICY =
15 const SimpleResultCachingPolicy(-1, -1); 15 const SimpleResultCachingPolicy(-1, -1);
16 16
17 /** 17 /**
18 * A concrete implementation of a [CompositeResultDescriptor].
19 */
20 class CompositeResultDescriptorImpl<V> extends ResultDescriptorImpl<V>
21 implements CompositeResultDescriptor<V> {
22 /**
23 * The results that contribute to this result.
24 */
25 final List<ResultDescriptor<V>> contributors = <ResultDescriptor<V>>[];
26
27 /**
28 * Initialize a newly created composite result to have the given [name].
29 */
30 CompositeResultDescriptorImpl(String name) : super(name, null);
31
32 /**
33 * Record that the given analysis [result] contibutes to this result.
34 */
35 void recordContributor(ResultDescriptor<V> result) {
36 contributors.add(result);
37 }
38 }
39
40 /**
41 * A concrete implementation of a [ListResultDescriptor]. 18 * A concrete implementation of a [ListResultDescriptor].
42 */ 19 */
43 class ListResultDescriptorImpl<E> extends ResultDescriptorImpl<List<E>> 20 class ListResultDescriptorImpl<E> extends ResultDescriptorImpl<List<E>>
44 implements ListResultDescriptor<E> { 21 implements ListResultDescriptor<E> {
45 /** 22 /**
46 * Initialize a newly created analysis result to have the given [name] and 23 * Initialize a newly created analysis result to have the given [name] and
47 * [defaultValue]. If a composite result is specified, then this result will 24 * [defaultValue]. If a [cachingPolicy] is provided, it will control how long
48 * contribute to it. 25 * values associated with this result will remain in the cache.
49 */ 26 */
50 ListResultDescriptorImpl(String name, List<E> defaultValue, 27 ListResultDescriptorImpl(String name, List<E> defaultValue,
51 {CompositeResultDescriptor contributesTo, 28 {ResultCachingPolicy<List<E>> cachingPolicy: DEFAULT_CACHING_POLICY})
52 ResultCachingPolicy<List<E>> cachingPolicy: DEFAULT_CACHING_POLICY}) 29 : super(name, defaultValue, cachingPolicy: cachingPolicy);
53 : super(name, defaultValue,
54 contributesTo: contributesTo, cachingPolicy: cachingPolicy);
55 30
56 @override 31 @override
57 ListTaskInput<E> of(AnalysisTarget target) => 32 ListTaskInput<E> of(AnalysisTarget target) =>
58 new ListTaskInputImpl<E>(target, this); 33 new ListTaskInputImpl<E>(target, this);
59 } 34 }
60 35
61 /** 36 /**
62 * A concrete implementation of a [ResultDescriptor]. 37 * A concrete implementation of a [ResultDescriptor].
63 */ 38 */
64 class ResultDescriptorImpl<V> implements ResultDescriptor<V> { 39 class ResultDescriptorImpl<V> implements ResultDescriptor<V> {
65 /** 40 /**
66 * The name of the result, used for debugging. 41 * The name of the result, used for debugging.
67 */ 42 */
68 final String name; 43 final String name;
69 44
70 /** 45 /**
71 * Return the default value for results described by this descriptor. 46 * Return the default value for results described by this descriptor.
72 */ 47 */
73 final V defaultValue; 48 final V defaultValue;
74 49
75 /** 50 /**
76 * The caching policy for results described by this descriptor. 51 * The caching policy for results described by this descriptor.
77 */ 52 */
78 final ResultCachingPolicy<V> cachingPolicy; 53 final ResultCachingPolicy<V> cachingPolicy;
79 54
80 /** 55 /**
81 * Initialize a newly created analysis result to have the given [name] and 56 * Initialize a newly created analysis result to have the given [name] and
82 * [defaultValue]. If a composite result is specified, then this result will 57 * [defaultValue]. If a [cachingPolicy] is provided, it will control how long
83 * contribute to it. 58 * values associated with this result will remain in the cache.
84 */ 59 */
85 ResultDescriptorImpl(this.name, this.defaultValue, 60 ResultDescriptorImpl(this.name, this.defaultValue,
scheglov 2015/05/07 19:33:50 Can we make this a constant constructor now?
Brian Wilkerson 2015/05/07 20:00:30 I'm not sure it can remain a const constructor. We
86 {CompositeResultDescriptor contributesTo, 61 {this.cachingPolicy: DEFAULT_CACHING_POLICY});
87 this.cachingPolicy: DEFAULT_CACHING_POLICY}) {
88 if (contributesTo is CompositeResultDescriptorImpl) {
89 contributesTo.recordContributor(this);
90 }
91 }
92 62
93 @override 63 @override
94 TaskInput<V> of(AnalysisTarget target) => 64 TaskInput<V> of(AnalysisTarget target) =>
95 new SimpleTaskInput<V>(target, this); 65 new SimpleTaskInput<V>(target, this);
96 66
97 @override 67 @override
98 String toString() => name; 68 String toString() => name;
99 } 69 }
100 70
101 /** 71 /**
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 Map<String, dynamic> inputs, Object inputMemento) { 125 Map<String, dynamic> inputs, Object inputMemento) {
156 AnalysisTask task = buildTask(context, target); 126 AnalysisTask task = buildTask(context, target);
157 task.inputs = inputs; 127 task.inputs = inputs;
158 task.inputMemento = inputMemento; 128 task.inputMemento = inputMemento;
159 return task; 129 return task;
160 } 130 }
161 131
162 @override 132 @override
163 String toString() => name; 133 String toString() => name;
164 } 134 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/context/context.dart ('k') | pkg/analyzer/lib/task/model.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698