diff options
author | brandjon <brandjon@google.com> | 2017-07-18 21:00:22 +0200 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2017-07-19 10:21:32 +0200 |
commit | e821fb9fd5148e176cf3b07d10159269146edff1 (patch) | |
tree | 678e1b029cf2b07f61dab2a77dab6d2de685b5f0 /src/main/java/com/google/devtools/build/lib/skyframe/SkylarkFileDependency.java | |
parent | b10245914b9e121c3d7e5b7fd8ab58044ac16a36 (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.java | 37 |
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); + } } |