diff options
author | 2016-08-01 18:55:52 +0000 | |
---|---|---|
committer | 2016-08-02 07:33:16 +0000 | |
commit | f38d765d8f59b4da9f5680e99adc3b2bd8dee524 (patch) | |
tree | 93384748b12d5c4e793ec054d52e7231f1250671 /src/main/java/com/google/devtools/build/lib/actions/FilesetTraversalParamsFactory.java | |
parent | 8f931174ec06d66f92c9c19b284ae57d8cf19c5f (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.java | 52 |
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 { |