From bdd4c244d545e07e649e0027cf498e48f985071d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Pfeuffer?= Date: Thu, 7 May 2020 11:03:57 +0200 Subject: [PATCH] Cleanup and fix hash code and equals --- .../sonia/scm/repository/BlameResult.java | 3 +- .../java/sonia/scm/repository/Branches.java | 7 +- .../sonia/scm/repository/BrowserResult.java | 2 - .../java/sonia/scm/repository/Changeset.java | 6 +- .../scm/repository/ChangesetPagingResult.java | 24 +--- .../sonia/scm/repository/Modifications.java | 2 - .../sonia/scm/repository/SubRepository.java | 2 - .../main/java/sonia/scm/repository/Tag.java | 7 +- .../main/java/sonia/scm/repository/Tags.java | 2 - .../repository/spi/BlameCommandRequest.java | 5 +- .../repository/spi/BrowseCommandRequest.java | 87 +------------- .../scm/repository/spi/CatCommandRequest.java | 5 +- .../repository/spi/DiffCommandRequest.java | 29 +---- .../spi/FileBaseCommandRequest.java | 111 +----------------- 14 files changed, 36 insertions(+), 256 deletions(-) diff --git a/scm-core/src/main/java/sonia/scm/repository/BlameResult.java b/scm-core/src/main/java/sonia/scm/repository/BlameResult.java index 50d4db6c28..8a997041f6 100644 --- a/scm-core/src/main/java/sonia/scm/repository/BlameResult.java +++ b/scm-core/src/main/java/sonia/scm/repository/BlameResult.java @@ -48,8 +48,7 @@ public class BlameResult implements Serializable, Iterable { private int total; public BlameResult(List blameLines) { - this.blameLines = blameLines; - this.total = blameLines.size(); + this(blameLines.size(), blameLines); } public BlameResult(int total, List blameLines) { diff --git a/scm-core/src/main/java/sonia/scm/repository/Branches.java b/scm-core/src/main/java/sonia/scm/repository/Branches.java index 430290fbd8..ed4ead7dc2 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Branches.java +++ b/scm-core/src/main/java/sonia/scm/repository/Branches.java @@ -48,8 +48,6 @@ public final class Branches implements Iterable { public Branches() { } - ; - public Branches(Branch... branches) { this.branches = Lists.newArrayList(branches); } @@ -63,7 +61,6 @@ public final class Branches implements Iterable { return getBranches().iterator(); } - public List getBranches() { if (branches == null) { branches = Lists.newArrayList(); @@ -71,4 +68,8 @@ public final class Branches implements Iterable { return branches; } + + public void setBranches(List branches) { + this.branches = branches; + } } diff --git a/scm-core/src/main/java/sonia/scm/repository/BrowserResult.java b/scm-core/src/main/java/sonia/scm/repository/BrowserResult.java index db30fe22a2..afd77b5625 100644 --- a/scm-core/src/main/java/sonia/scm/repository/BrowserResult.java +++ b/scm-core/src/main/java/sonia/scm/repository/BrowserResult.java @@ -40,8 +40,6 @@ public class BrowserResult implements Serializable { public BrowserResult() { } - ; - public BrowserResult(String revision, FileObject file) { this(revision, revision, file); } diff --git a/scm-core/src/main/java/sonia/scm/repository/Changeset.java b/scm-core/src/main/java/sonia/scm/repository/Changeset.java index 19ae7c31da..6e770139df 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Changeset.java +++ b/scm-core/src/main/java/sonia/scm/repository/Changeset.java @@ -148,7 +148,7 @@ public class Changeset extends BasicPropertiesAware implements ModelObject { */ public List getBranches() { if (branches == null) { - branches = new ArrayList(); + branches = new ArrayList<>(); } return branches; @@ -206,7 +206,7 @@ public class Changeset extends BasicPropertiesAware implements ModelObject { */ public List getParents() { if (parents == null) { - parents = new ArrayList(); + parents = new ArrayList<>(); } return parents; @@ -219,7 +219,7 @@ public class Changeset extends BasicPropertiesAware implements ModelObject { */ public List getTags() { if (tags == null) { - tags = new ArrayList(); + tags = new ArrayList<>(); } return tags; diff --git a/scm-core/src/main/java/sonia/scm/repository/ChangesetPagingResult.java b/scm-core/src/main/java/sonia/scm/repository/ChangesetPagingResult.java index d3c9a9ed3f..ca74b7dacf 100644 --- a/scm-core/src/main/java/sonia/scm/repository/ChangesetPagingResult.java +++ b/scm-core/src/main/java/sonia/scm/repository/ChangesetPagingResult.java @@ -24,7 +24,7 @@ package sonia.scm.repository; -import com.google.common.base.Objects; +import lombok.EqualsAndHashCode; import lombok.ToString; import java.io.Serializable; @@ -37,6 +37,7 @@ import java.util.List; * * @author Sebastian Sdorra */ +@EqualsAndHashCode @ToString public class ChangesetPagingResult implements Iterable, Serializable { @@ -71,27 +72,6 @@ public class ChangesetPagingResult implements Iterable, Serializable this.branchName = branchName; } - @Override - public boolean equals(Object obj) { - if (obj == null) { - return false; - } - - if (getClass() != obj.getClass()) { - return false; - } - - final ChangesetPagingResult other = (ChangesetPagingResult) obj; - - return Objects.equal(changesets, other.changesets) - && Objects.equal(total, other.total); - } - - @Override - public int hashCode() { - return Objects.hashCode(changesets, total); - } - /** * Returns an iterator which can iterate over the current list of changesets. * diff --git a/scm-core/src/main/java/sonia/scm/repository/Modifications.java b/scm-core/src/main/java/sonia/scm/repository/Modifications.java index f1f1d673af..999f103d2a 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Modifications.java +++ b/scm-core/src/main/java/sonia/scm/repository/Modifications.java @@ -50,8 +50,6 @@ public class Modifications implements Serializable { public Modifications() { } - ; - public Modifications(List added) { this(added, null, null); } diff --git a/scm-core/src/main/java/sonia/scm/repository/SubRepository.java b/scm-core/src/main/java/sonia/scm/repository/SubRepository.java index 04eb568d71..1c0622dadb 100644 --- a/scm-core/src/main/java/sonia/scm/repository/SubRepository.java +++ b/scm-core/src/main/java/sonia/scm/repository/SubRepository.java @@ -46,8 +46,6 @@ public class SubRepository implements Serializable { public SubRepository() { } - ; - public SubRepository(String repositoryUrl) { this.repositoryUrl = repositoryUrl; } diff --git a/scm-core/src/main/java/sonia/scm/repository/Tag.java b/scm-core/src/main/java/sonia/scm/repository/Tag.java index 68048b5fc8..3c40c2f38a 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Tag.java +++ b/scm-core/src/main/java/sonia/scm/repository/Tag.java @@ -39,11 +39,8 @@ import lombok.ToString; @Getter public final class Tag { - private String name; - private String revision; - - public Tag() { - } + private final String name; + private final String revision; /** * Constructs a new tag. diff --git a/scm-core/src/main/java/sonia/scm/repository/Tags.java b/scm-core/src/main/java/sonia/scm/repository/Tags.java index 6c74bfabfd..d1be764c20 100644 --- a/scm-core/src/main/java/sonia/scm/repository/Tags.java +++ b/scm-core/src/main/java/sonia/scm/repository/Tags.java @@ -48,8 +48,6 @@ public final class Tags implements Iterable { public Tags() { } - ; - public Tags(List tags) { this.tags = tags; } diff --git a/scm-core/src/main/java/sonia/scm/repository/spi/BlameCommandRequest.java b/scm-core/src/main/java/sonia/scm/repository/spi/BlameCommandRequest.java index ce215fa526..e208e3256a 100644 --- a/scm-core/src/main/java/sonia/scm/repository/spi/BlameCommandRequest.java +++ b/scm-core/src/main/java/sonia/scm/repository/spi/BlameCommandRequest.java @@ -21,14 +21,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; +import lombok.EqualsAndHashCode; + /** * * @author Sebastian Sdorra * @since 1.17 */ +@EqualsAndHashCode(callSuper = true) public final class BlameCommandRequest extends FileBaseCommandRequest { diff --git a/scm-core/src/main/java/sonia/scm/repository/spi/BrowseCommandRequest.java b/scm-core/src/main/java/sonia/scm/repository/spi/BrowseCommandRequest.java index 5075e83feb..c27400970f 100644 --- a/scm-core/src/main/java/sonia/scm/repository/spi/BrowseCommandRequest.java +++ b/scm-core/src/main/java/sonia/scm/repository/spi/BrowseCommandRequest.java @@ -21,13 +21,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; -//~--- non-JDK imports -------------------------------------------------------- - -import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; +import lombok.EqualsAndHashCode; +import lombok.ToString; import sonia.scm.repository.BrowserResult; import java.util.function.Consumer; @@ -37,6 +35,8 @@ import java.util.function.Consumer; * @author Sebastian Sdorra * @since 1.17 */ +@EqualsAndHashCode(callSuper = true) +@ToString public final class BrowseCommandRequest extends FileBaseCommandRequest { @@ -53,14 +53,6 @@ public final class BrowseCommandRequest extends FileBaseCommandRequest this.updater = updater; } - //~--- methods -------------------------------------------------------------- - - /** - * {@inheritDoc} - * - * - * @return - */ @Override public BrowseCommandRequest clone() { @@ -80,74 +72,6 @@ public final class BrowseCommandRequest extends FileBaseCommandRequest return clone; } - /** - * {@inheritDoc} - * - * - * @param obj - * - * @return - */ - @Override - public boolean equals(Object obj) - { - if (obj == null) - { - return false; - } - - if (getClass() != obj.getClass()) - { - return false; - } - - final BrowseCommandRequest other = (BrowseCommandRequest) obj; - - return super.equals(obj) - && Objects.equal(recursive, other.recursive) - && Objects.equal(disableLastCommit, other.disableLastCommit) - && Objects.equal(disableSubRepositoryDetection, other.disableSubRepositoryDetection) - && Objects.equal(offset, other.offset) - && Objects.equal(limit, other.limit); - } - - /** - * {@inheritDoc} - * - * - * @return - */ - @Override - public int hashCode() - { - return Objects.hashCode(super.hashCode(), recursive, disableLastCommit, - disableSubRepositoryDetection, offset, limit); - } - - /** - * {@inheritDoc} - * - * - * @return - */ - @Override - public String toString() - { - //J- - return MoreObjects.toStringHelper(this) - .add("path", getPath()) - .add("revision", getRevision()) - .add("recursive", recursive) - .add("disableLastCommit", disableLastCommit) - .add("disableSubRepositoryDetection", disableSubRepositoryDetection) - .add("limit", limit) - .add("offset", offset) - .toString(); - //J+ - } - - //~--- set methods ---------------------------------------------------------- - /** * True to disable the last commit. * @@ -292,5 +216,6 @@ public final class BrowseCommandRequest extends FileBaseCommandRequest // WARNING / TODO: This field creates a reverse channel from the implementation to the API. This will break // whenever the API runs in a different process than the SPI (for example to run explicit hosts for git repositories). + @EqualsAndHashCode.Exclude private final transient Consumer updater; } diff --git a/scm-core/src/main/java/sonia/scm/repository/spi/CatCommandRequest.java b/scm-core/src/main/java/sonia/scm/repository/spi/CatCommandRequest.java index 5c96c237cb..ed8424cfc4 100644 --- a/scm-core/src/main/java/sonia/scm/repository/spi/CatCommandRequest.java +++ b/scm-core/src/main/java/sonia/scm/repository/spi/CatCommandRequest.java @@ -21,14 +21,17 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; +import lombok.EqualsAndHashCode; + /** * * @author Sebastian Sdorra * @since 1.17 */ +@EqualsAndHashCode(callSuper = true) public final class CatCommandRequest extends FileBaseCommandRequest { diff --git a/scm-core/src/main/java/sonia/scm/repository/spi/DiffCommandRequest.java b/scm-core/src/main/java/sonia/scm/repository/spi/DiffCommandRequest.java index 58cea9bdb6..6f6443b83b 100644 --- a/scm-core/src/main/java/sonia/scm/repository/spi/DiffCommandRequest.java +++ b/scm-core/src/main/java/sonia/scm/repository/spi/DiffCommandRequest.java @@ -21,13 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; //~--- non-JDK imports -------------------------------------------------------- import com.google.common.base.Strings; - +import lombok.EqualsAndHashCode; import sonia.scm.Validateable; import sonia.scm.repository.api.DiffFormat; @@ -36,21 +36,12 @@ import sonia.scm.repository.api.DiffFormat; * @author Sebastian Sdorra * @since 1.17 */ +@EqualsAndHashCode(callSuper = true) public final class DiffCommandRequest extends FileBaseCommandRequest - implements Validateable -{ + implements Validateable { - /** Field description */ private static final long serialVersionUID = 4026911212676859626L; - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @return - */ @Override public DiffCommandRequest clone() { @@ -70,14 +61,6 @@ public final class DiffCommandRequest extends FileBaseCommandRequest return clone; } - //~--- get methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @return - */ @Override public boolean isValid() { @@ -85,8 +68,6 @@ public final class DiffCommandRequest extends FileBaseCommandRequest ||!Strings.isNullOrEmpty(getRevision()); } - //~--- set methods ---------------------------------------------------------- - /** * Sets the diff format which should be used for the output. * @@ -103,7 +84,6 @@ public final class DiffCommandRequest extends FileBaseCommandRequest public void setAncestorChangeset(String ancestorChangeset) { this.ancestorChangeset = ancestorChangeset; } -//~--- get methods ---------------------------------------------------------- /** * Return the output format of the diff command. @@ -121,7 +101,6 @@ public final class DiffCommandRequest extends FileBaseCommandRequest public String getAncestorChangeset() { return ancestorChangeset; } -//~--- fields --------------------------------------------------------------- /** diff format */ private DiffFormat format = DiffFormat.NATIVE; diff --git a/scm-core/src/main/java/sonia/scm/repository/spi/FileBaseCommandRequest.java b/scm-core/src/main/java/sonia/scm/repository/spi/FileBaseCommandRequest.java index 8994db75a8..457c528694 100644 --- a/scm-core/src/main/java/sonia/scm/repository/spi/FileBaseCommandRequest.java +++ b/scm-core/src/main/java/sonia/scm/repository/spi/FileBaseCommandRequest.java @@ -21,13 +21,13 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ - + package sonia.scm.repository.spi; //~--- non-JDK imports -------------------------------------------------------- -import com.google.common.base.MoreObjects; -import com.google.common.base.Objects; +import lombok.EqualsAndHashCode; +import lombok.ToString; import java.io.Serializable; @@ -38,54 +38,14 @@ import java.io.Serializable; * @author Sebastian Sdorra * @since 1.17 */ +@EqualsAndHashCode +@ToString public abstract class FileBaseCommandRequest - implements Resetable, Serializable, Cloneable -{ + implements Resetable, Serializable, Cloneable { /** Field description */ private static final long serialVersionUID = -3442101119408346165L; - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @param obj - * - * @return - */ - @Override - public boolean equals(Object obj) - { - if (obj == null) - { - return false; - } - - if (getClass() != obj.getClass()) - { - return false; - } - - final FileBaseCommandRequest other = (FileBaseCommandRequest) obj; - - return Objects.equal(path, other.path) - && Objects.equal(revision, other.revision); - } - - /** - * Method description - * - * - * @return - */ - @Override - public int hashCode() - { - return Objects.hashCode(path, revision); - } - /** * Method description * @@ -97,81 +57,26 @@ public abstract class FileBaseCommandRequest revision = null; } - /** - * Method description - * - * - * @return - */ - @Override - public String toString() - { - //J- - return MoreObjects.toStringHelper(this) - .add("path", path) - .add("revision", revision) - .toString(); - //J+ - } - - //~--- set methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @param path - */ public void setPath(String path) { this.path = path; } - /** - * Method description - * - * - * @param revision - */ public void setRevision(String revision) { this.revision = revision; } - //~--- get methods ---------------------------------------------------------- - - /** - * Method description - * - * - * @return - */ public String getPath() { return path; } - /** - * Method description - * - * - * @return - */ public String getRevision() { return revision; } - //~--- methods -------------------------------------------------------------- - - /** - * Method description - * - * - * @return - * - * @throws CloneNotSupportedException - */ @Override protected FileBaseCommandRequest clone() throws CloneNotSupportedException { @@ -192,11 +97,7 @@ public abstract class FileBaseCommandRequest return clone; } - //~--- fields --------------------------------------------------------------- - - /** Field description */ private String path; - /** Field description */ private String revision; }