aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java
diff options
context:
space:
mode:
authorGravatar Janak Ramakrishnan <janakr@google.com>2016-08-01 18:55:52 +0000
committerGravatar Yun Peng <pcloudy@google.com>2016-08-02 07:33:16 +0000
commitf38d765d8f59b4da9f5680e99adc3b2bd8dee524 (patch)
tree93384748b12d5c4e793ec054d52e7231f1250671 /src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java
parent8f931174ec06d66f92c9c19b284ae57d8cf19c5f (diff)
Add hashCode(), equals(), and basic toString() to FilesetTraversalParams classes, and mark traversals fields as nullable.
-- MOS_MIGRATED_REVID=129010094
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java52
1 files changed, 50 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java b/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java
index 2b25abdba2..6b64fc9fe1 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java
@@ -26,9 +26,8 @@ import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.RootedPath;
-
+import java.util.Objects;
import java.util.Set;
-
import javax.annotation.Nullable;
/** Factory of {@link FilesetTraversalParams}. */
@@ -158,6 +157,21 @@ public final class FilesetTraversalParamsFactory {
fp.addStrings(excludes);
}
}
+
+ @Override
+ public String toString() {
+ return super.toString() + "[" + destDir + ", " + ownerLabel + ", " + excludes + "]";
+ }
+
+ protected boolean internalEquals(ParamsCommon that) {
+ return Objects.equals(this.ownerLabel, that.ownerLabel)
+ && Objects.equals(this.destDir, that.destDir)
+ && Objects.equals(this.excludes, that.excludes);
+ }
+
+ protected int internalHashCode() {
+ return Objects.hash(ownerLabel, destDir, excludes);
+ }
}
private static final class DirectTraversalImpl implements DirectTraversal {
@@ -251,6 +265,23 @@ public final class FilesetTraversalParamsFactory {
commonFingerprint(fp);
traversal.fingerprint(fp);
}
+
+ @Override
+ public int hashCode() {
+ return 37 * super.internalHashCode() + Objects.hashCode(traversal);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof DirectoryTraversalParams)) {
+ return false;
+ }
+ DirectoryTraversalParams that = (DirectoryTraversalParams) obj;
+ return Objects.equals(this.traversal, that.traversal) && internalEquals(that);
+ }
}
private static final class NestedTraversalParams extends ParamsCommon {
@@ -277,6 +308,23 @@ public final class FilesetTraversalParamsFactory {
commonFingerprint(fp);
nested.fingerprint(fp);
}
+
+ @Override
+ public int hashCode() {
+ return 37 * super.internalHashCode() + Objects.hashCode(nested);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof NestedTraversalParams)) {
+ return false;
+ }
+ NestedTraversalParams that = (NestedTraversalParams) obj;
+ return Objects.equals(this.nested, that.nested) && internalEquals(that);
+ }
}
private static final class DirectTraversalRootImpl implements DirectTraversalRoot {