aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java
diff options
context:
space:
mode:
authorGravatar Klaus Aehlig <aehlig@google.com>2017-05-02 19:08:29 +0200
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-05-03 10:57:02 +0200
commit4b7df4f24c25bb84af968234c1adebc8f56eefb0 (patch)
tree77323f8c4b513e1bb715590677509ec8bdecfc77 /src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java
parentd7273274861801353a35ce0f4f5b70266e5cd6a7 (diff)
BEP: Add WorkspaceStatus
Add an event reporting the workspace status as key-value pairs reported via the workspace_status_command. Change-Id: I5791551798a594bc2465f483eb97f9d4fd4c7cfd PiperOrigin-RevId: 154845224
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java38
1 files changed, 33 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java
index af0c015c76..de67b6c974 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildInfoEvent.java
@@ -14,14 +14,18 @@
package com.google.devtools.build.lib.analysis;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-
+import com.google.devtools.build.lib.buildeventstream.BuildEvent;
+import com.google.devtools.build.lib.buildeventstream.BuildEventConverters;
+import com.google.devtools.build.lib.buildeventstream.BuildEventId;
+import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos;
+import com.google.devtools.build.lib.buildeventstream.GenericBuildEvent;
+import java.util.Collection;
import java.util.Map;
-/**
- * This event is fired once build info data is available.
- */
-public final class BuildInfoEvent {
+/** This event is fired once build info data is available. */
+public final class BuildInfoEvent implements BuildEvent {
private final Map<String, String> buildInfoMap;
/**
@@ -37,4 +41,28 @@ public final class BuildInfoEvent {
public Map<String, String> getBuildInfoMap() {
return buildInfoMap;
}
+
+ @Override
+ public BuildEventId getEventId() {
+ return BuildEventId.workspaceStatusId();
+ }
+
+ @Override
+ public Collection<BuildEventId> getChildrenEvents() {
+ return ImmutableList.<BuildEventId>of();
+ }
+
+ @Override
+ public BuildEventStreamProtos.BuildEvent asStreamProto(BuildEventConverters converters) {
+ BuildEventStreamProtos.WorkspaceStatus.Builder status =
+ BuildEventStreamProtos.WorkspaceStatus.newBuilder();
+ for (Map.Entry<String, String> entry : getBuildInfoMap().entrySet()) {
+ status.addItem(
+ BuildEventStreamProtos.WorkspaceStatus.Item.newBuilder()
+ .setKey(entry.getKey())
+ .setValue(entry.getValue())
+ .build());
+ }
+ return GenericBuildEvent.protoChaining(this).setWorkspaceStatus(status.build()).build();
+ }
}