56
56
*
57
57
* <p>Incomplete; we'll implement getVisibility when needed.
58
58
*/
59
- public class ConfiguredTargetAccessor implements TargetAccessor <ConfiguredTarget > {
59
+ public class ConfiguredTargetAccessor implements TargetAccessor <KeyedConfiguredTarget > {
60
60
61
61
private final WalkableGraph walkableGraph ;
62
62
private final ConfiguredTargetQueryEnvironment queryEnvironment ;
@@ -68,62 +68,58 @@ public ConfiguredTargetAccessor(
68
68
}
69
69
70
70
@ Override
71
- public String getTargetKind (ConfiguredTarget target ) {
72
- Target actualTarget = getTargetFromConfiguredTarget (target );
71
+ public String getTargetKind (KeyedConfiguredTarget target ) {
72
+ Target actualTarget = getTarget (target );
73
73
return actualTarget .getTargetKind ();
74
74
}
75
75
76
76
@ Override
77
- public String getLabel (ConfiguredTarget target ) {
77
+ public String getLabel (KeyedConfiguredTarget target ) {
78
78
return target .getLabel ().toString ();
79
79
}
80
80
81
81
@ Override
82
- public String getPackage (ConfiguredTarget target ) {
82
+ public String getPackage (KeyedConfiguredTarget target ) {
83
83
return target .getLabel ().getPackageIdentifier ().getPackageFragment ().toString ();
84
84
}
85
85
86
86
@ Override
87
- public boolean isRule (ConfiguredTarget target ) {
88
- Target actualTarget = getTargetFromConfiguredTarget (target );
87
+ public boolean isRule (KeyedConfiguredTarget target ) {
88
+ Target actualTarget = getTarget (target );
89
89
return actualTarget instanceof Rule ;
90
90
}
91
91
92
92
@ Override
93
- public boolean isTestRule (ConfiguredTarget target ) {
94
- Target actualTarget = getTargetFromConfiguredTarget (target );
93
+ public boolean isTestRule (KeyedConfiguredTarget target ) {
94
+ Target actualTarget = getTarget (target );
95
95
return TargetUtils .isTestRule (actualTarget );
96
96
}
97
97
98
98
@ Override
99
- public boolean isTestSuite (ConfiguredTarget target ) {
100
- Target actualTarget = getTargetFromConfiguredTarget (target );
99
+ public boolean isTestSuite (KeyedConfiguredTarget target ) {
100
+ Target actualTarget = getTarget (target );
101
101
return TargetUtils .isTestSuiteRule (actualTarget );
102
102
}
103
103
104
104
@ Override
105
- public List <ConfiguredTarget > getPrerequisites (
105
+ public List <KeyedConfiguredTarget > getPrerequisites (
106
106
QueryExpression caller ,
107
- ConfiguredTarget configuredTarget ,
107
+ KeyedConfiguredTarget keyedConfiguredTarget ,
108
108
String attrName ,
109
109
String errorMsgPrefix )
110
110
throws QueryException , InterruptedException {
111
- ConfiguredTarget actualConfiguredTarget = configuredTarget .getActual ();
111
+ // Process aliases.
112
+ KeyedConfiguredTarget actual = keyedConfiguredTarget .getActual ();
112
113
113
114
Preconditions .checkArgument (
114
- isRule (actualConfiguredTarget ),
115
- "%s %s is not a rule configured target" ,
116
- errorMsgPrefix ,
117
- getLabel (actualConfiguredTarget ));
115
+ isRule (actual ), "%s %s is not a rule configured target" , errorMsgPrefix , getLabel (actual ));
118
116
119
- Multimap <Label , ConfiguredTarget > depsByLabel =
117
+ Multimap <Label , KeyedConfiguredTarget > depsByLabel =
120
118
Multimaps .index (
121
- queryEnvironment .getFwdDeps (ImmutableList .of (actualConfiguredTarget )),
122
- ConfiguredTarget ::getLabel );
119
+ queryEnvironment .getFwdDeps (ImmutableList .of (actual )), kct -> kct .getLabel ());
123
120
124
- Rule rule = (Rule ) getTargetFromConfiguredTarget (actualConfiguredTarget );
125
- ImmutableMap <Label , ConfigMatchingProvider > configConditions =
126
- actualConfiguredTarget .getConfigConditions ();
121
+ Rule rule = (Rule ) getTarget (actual );
122
+ ImmutableMap <Label , ConfigMatchingProvider > configConditions = actual .getConfigConditions ();
127
123
ConfiguredAttributeMapper attributeMapper =
128
124
ConfiguredAttributeMapper .of (rule , configConditions );
129
125
if (!attributeMapper .has (attrName )) {
@@ -134,42 +130,42 @@ public List<ConfiguredTarget> getPrerequisites(
134
130
errorMsgPrefix , rule .getRuleClass (), attrName ),
135
131
ConfigurableQuery .Code .ATTRIBUTE_MISSING );
136
132
}
137
- ImmutableList .Builder <ConfiguredTarget > toReturn = ImmutableList .builder ();
133
+ ImmutableList .Builder <KeyedConfiguredTarget > toReturn = ImmutableList .builder ();
138
134
attributeMapper .visitLabels (attributeMapper .getAttributeDefinition (attrName )).stream ()
139
135
.forEach (depEdge -> toReturn .addAll (depsByLabel .get (depEdge .getLabel ())));
140
136
return toReturn .build ();
141
137
}
142
138
143
139
@ Override
144
- public List <String > getStringListAttr (ConfiguredTarget target , String attrName ) {
145
- Target actualTarget = getTargetFromConfiguredTarget (target );
140
+ public List <String > getStringListAttr (KeyedConfiguredTarget target , String attrName ) {
141
+ Target actualTarget = getTarget (target );
146
142
return TargetUtils .getStringListAttr (actualTarget , attrName );
147
143
}
148
144
149
145
@ Override
150
- public String getStringAttr (ConfiguredTarget target , String attrName ) {
151
- Target actualTarget = getTargetFromConfiguredTarget (target );
146
+ public String getStringAttr (KeyedConfiguredTarget target , String attrName ) {
147
+ Target actualTarget = getTarget (target );
152
148
return TargetUtils .getStringAttr (actualTarget , attrName );
153
149
}
154
150
155
151
@ Override
156
- public Iterable <String > getAttrAsString (ConfiguredTarget target , String attrName ) {
157
- Target actualTarget = getTargetFromConfiguredTarget (target );
152
+ public Iterable <String > getAttrAsString (KeyedConfiguredTarget target , String attrName ) {
153
+ Target actualTarget = getTarget (target );
158
154
return TargetUtils .getAttrAsString (actualTarget , attrName );
159
155
}
160
156
161
157
@ Override
162
- public ImmutableSet <QueryVisibility <ConfiguredTarget >> getVisibility (
163
- QueryExpression caller , ConfiguredTarget from ) throws QueryException {
158
+ public ImmutableSet <QueryVisibility <KeyedConfiguredTarget >> getVisibility (
159
+ QueryExpression caller , KeyedConfiguredTarget from ) throws QueryException {
164
160
// TODO(bazel-team): implement this if needed.
165
161
throw new QueryException (
166
162
"visible() is not supported on configured targets" ,
167
163
ConfigurableQuery .Code .VISIBLE_FUNCTION_NOT_SUPPORTED );
168
164
}
169
165
170
- public Target getTargetFromConfiguredTarget ( ConfiguredTarget configuredTarget ) {
166
+ public Target getTarget ( KeyedConfiguredTarget keyedConfiguredTarget ) {
171
167
// Dereference any aliases that might be present.
172
- Label label = configuredTarget .getOriginalLabel ();
168
+ Label label = keyedConfiguredTarget . getConfiguredTarget () .getOriginalLabel ();
173
169
try {
174
170
return queryEnvironment .getTarget (label );
175
171
} catch (InterruptedException e ) {
@@ -180,14 +176,18 @@ public Target getTargetFromConfiguredTarget(ConfiguredTarget configuredTarget) {
180
176
}
181
177
182
178
/** Returns the rule that generates the given output file. */
183
- public RuleConfiguredTarget getGeneratingConfiguredTarget (OutputFileConfiguredTarget oct )
179
+ RuleConfiguredTarget getGeneratingConfiguredTarget (KeyedConfiguredTarget kct )
184
180
throws InterruptedException {
181
+ Preconditions .checkArgument (kct .getConfiguredTarget () instanceof OutputFileConfiguredTarget );
185
182
return (RuleConfiguredTarget )
186
183
((ConfiguredTargetValue )
187
184
walkableGraph .getValue (
188
185
ConfiguredTargetKey .builder ()
189
- .setLabel (oct .getGeneratingRule ().getLabel ())
190
- .setConfiguration (queryEnvironment .getConfiguration (oct ))
186
+ .setLabel (
187
+ ((OutputFileConfiguredTarget ) kct .getConfiguredTarget ())
188
+ .getGeneratingRule ()
189
+ .getLabel ())
190
+ .setConfiguration (queryEnvironment .getConfiguration (kct ))
191
191
.build ()))
192
192
.getConfiguredTarget ();
193
193
}
0 commit comments