aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-07-18 21:00:22 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-07-19 10:21:32 +0200
commite821fb9fd5148e176cf3b07d10159269146edff1 (patch)
tree678e1b029cf2b07f61dab2a77dab6d2de685b5f0 /src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java
parentb10245914b9e121c3d7e5b7fd8ab58044ac16a36 (diff)
Clean up a few Skylark-Skyframe structures
Add value-class methods to SkylarkFileDependency and SkylarkImportLookupValue. Remove Java serialization hack from Extension. RELNOTES: None PiperOrigin-RevId: 162383283
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java37
1 files changed, 29 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java
index 36a7516e2f..0167aea98e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java
@@ -16,19 +16,20 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.cmdline.Label;
-
-import java.io.Serializable;
+import java.util.Objects;
/**
- * A simple value class to store the direct Skylark file dependencies of a Skylark
- * extension file. It also contains a Label identifying the extension file.
+ * A simple value class to store the direct Skylark file dependencies of a Skylark extension file.
+ * It also contains a Label identifying the extension file.
+ *
+ * <p>The dependency structure must be acyclic.
*/
-class SkylarkFileDependency implements Serializable {
+public class SkylarkFileDependency {
private final Label label;
private final ImmutableList<SkylarkFileDependency> dependencies;
- SkylarkFileDependency(Label label, ImmutableList<SkylarkFileDependency> dependencies) {
+ public SkylarkFileDependency(Label label, ImmutableList<SkylarkFileDependency> dependencies) {
this.label = label;
this.dependencies = dependencies;
}
@@ -37,14 +38,34 @@ class SkylarkFileDependency implements Serializable {
* Returns the list of direct Skylark file dependencies of the Skylark extension file
* corresponding to this object.
*/
- ImmutableList<SkylarkFileDependency> getDependencies() {
+ public ImmutableList<SkylarkFileDependency> getDependencies() {
return dependencies;
}
/**
* Returns the Label of the Skylark extension file corresponding to this object.
*/
- Label getLabel() {
+ public Label getLabel() {
return label;
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof SkylarkFileDependency)) {
+ return false;
+ }
+ SkylarkFileDependency other = (SkylarkFileDependency) obj;
+ if (!label.equals(other.getLabel())) {
+ return false;
+ }
+ return dependencies.equals(other.getDependencies());
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(label, dependencies);
+ }
}