aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-07-10 05:59:01 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-10 06:00:38 -0700
commit8c11fe9415e6d30069bdba559f6943747dd56e9f (patch)
treebd47cfafc521b2ec821adc422ada68690f85cd28 /src/main/java/com/google/devtools/build/lib/query2
parentc45606ebc029303f3ef533aeaf8ff9b0406f27d9 (diff)
Use generic classes instead of cquery specific class.
Also introduce NamedThreadSafeOutputFormatterCallback for common code. RELNOTES: None PiperOrigin-RevId: 203932877
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/CqueryThreadsafeCallback.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/NamedThreadSafeOutputFormatterCallback.java42
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java20
4 files changed, 63 insertions, 37 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
index 242edb534a..f48c384d9c 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
@@ -141,17 +141,18 @@ public class ConfiguredTargetQueryEnvironment
}
@Override
- public ImmutableList<CqueryThreadsafeCallback> getDefaultOutputFormatters(
- TargetAccessor<ConfiguredTarget> accessor,
- Reporter reporter,
- SkyframeExecutor skyframeExecutor,
- BuildConfiguration hostConfiguration,
- @Nullable RuleTransitionFactory trimmingTransitionFactory,
- PackageManager packageManager) {
+ public ImmutableList<NamedThreadSafeOutputFormatterCallback<ConfiguredTarget>>
+ getDefaultOutputFormatters(
+ TargetAccessor<ConfiguredTarget> accessor,
+ Reporter reporter,
+ SkyframeExecutor skyframeExecutor,
+ BuildConfiguration hostConfiguration,
+ @Nullable RuleTransitionFactory trimmingTransitionFactory,
+ PackageManager packageManager) {
AspectResolver aspectResolver =
cqueryOptions.aspectDeps.createResolver(packageManager, reporter);
OutputStream out = reporter.getOutErr().getOutputStream();
- return new ImmutableList.Builder<CqueryThreadsafeCallback>()
+ return new ImmutableList.Builder<NamedThreadSafeOutputFormatterCallback<ConfiguredTarget>>()
.add(
new LabelAndConfigurationOutputFormatterCallback(
reporter, cqueryOptions, out, skyframeExecutor, accessor))
diff --git a/src/main/java/com/google/devtools/build/lib/query2/CqueryThreadsafeCallback.java b/src/main/java/com/google/devtools/build/lib/query2/CqueryThreadsafeCallback.java
index 1466433c9a..032d6344fd 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/CqueryThreadsafeCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/CqueryThreadsafeCallback.java
@@ -13,14 +13,11 @@
// limitations under the License.
package com.google.devtools.build.lib.query2;
-import static java.util.stream.Collectors.joining;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.Streams;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.query2.engine.QueryEnvironment.TargetAccessor;
-import com.google.devtools.build.lib.query2.engine.ThreadSafeOutputFormatterCallback;
import com.google.devtools.build.lib.query2.output.CqueryOptions;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import java.io.IOException;
@@ -34,7 +31,7 @@ import java.util.List;
* that is populated by child classes.
*/
public abstract class CqueryThreadsafeCallback
- extends ThreadSafeOutputFormatterCallback<ConfiguredTarget> {
+ extends NamedThreadSafeOutputFormatterCallback<ConfiguredTarget> {
protected final Reporter reporter;
protected final CqueryOptions options;
@@ -59,22 +56,6 @@ public abstract class CqueryThreadsafeCallback
this.accessor = (ConfiguredTargetAccessor) accessor;
}
- public abstract String getName();
-
- public static String callbackNames(Iterable<CqueryThreadsafeCallback> callbacks) {
- return Streams.stream(callbacks).map(CqueryThreadsafeCallback::getName).collect(joining(", "));
- }
-
- public static CqueryThreadsafeCallback getCallback(
- String type, Iterable<CqueryThreadsafeCallback> callbacks) {
- for (CqueryThreadsafeCallback callback : callbacks) {
- if (callback.getName().equals(type)) {
- return callback;
- }
- }
- return null;
- }
-
public void addResult(String string) {
result.add(string);
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/NamedThreadSafeOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/NamedThreadSafeOutputFormatterCallback.java
new file mode 100644
index 0000000000..a768f22fa8
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/query2/NamedThreadSafeOutputFormatterCallback.java
@@ -0,0 +1,42 @@
+// Copyright 2018 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.query2;
+
+import static java.util.stream.Collectors.joining;
+
+import com.google.common.collect.Streams;
+import com.google.devtools.build.lib.query2.engine.ThreadSafeOutputFormatterCallback;
+
+/** A {@link ThreadSafeOutputFormatterCallback} that has a name to select on. */
+public abstract class NamedThreadSafeOutputFormatterCallback<T>
+ extends ThreadSafeOutputFormatterCallback<T> {
+ public abstract String getName();
+
+ public static <T> String callbackNames(
+ Iterable<NamedThreadSafeOutputFormatterCallback<T>> callbacks) {
+ return Streams.stream(callbacks)
+ .map(NamedThreadSafeOutputFormatterCallback::getName)
+ .collect(joining(", "));
+ }
+
+ public static <T> NamedThreadSafeOutputFormatterCallback<T> selectCallback(
+ String type, Iterable<NamedThreadSafeOutputFormatterCallback<T>> callbacks) {
+ for (NamedThreadSafeOutputFormatterCallback<T> callback : callbacks) {
+ if (callback.getName().equals(type)) {
+ return callback;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
index 89aae592bc..df61da858a 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/PostAnalysisQueryEnvironment.java
@@ -18,7 +18,6 @@ import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
-import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget;
import com.google.devtools.build.lib.cmdline.Label;
@@ -85,7 +84,7 @@ import javax.annotation.Nullable;
*
* <p>Aspects are also not supported, but probably should be in some fashion.
*/
-abstract class PostAnalysisQueryEnvironment<T> extends AbstractBlazeQueryEnvironment<T> {
+public abstract class PostAnalysisQueryEnvironment<T> extends AbstractBlazeQueryEnvironment<T> {
protected final BuildConfiguration defaultTargetConfiguration;
protected final BuildConfiguration hostConfiguration;
private final String parserPrefix;
@@ -133,13 +132,16 @@ abstract class PostAnalysisQueryEnvironment<T> extends AbstractBlazeQueryEnviron
this.accessor = targetAccessor;
}
- public abstract ImmutableList<CqueryThreadsafeCallback> getDefaultOutputFormatters(
- TargetAccessor<ConfiguredTarget> accessor,
- Reporter reporter,
- SkyframeExecutor skyframeExecutor,
- BuildConfiguration hostConfiguration,
- @Nullable RuleTransitionFactory trimmingTransitionFactory,
- PackageManager packageManager);
+ public abstract ImmutableList<NamedThreadSafeOutputFormatterCallback<T>>
+ getDefaultOutputFormatters(
+ TargetAccessor<T> accessor,
+ Reporter reporter,
+ SkyframeExecutor skyframeExecutor,
+ BuildConfiguration hostConfiguration,
+ @Nullable RuleTransitionFactory trimmingTransitionFactory,
+ PackageManager packageManager);
+
+ public abstract String getOutputFormat();
protected abstract KeyExtractor<T, ConfiguredTargetKey> getConfiguredTargetKeyExtractor();