Merge "Add 'Parent $x' options to diff for merge commits"

This commit is contained in:
Dave Borowitz
2016-07-19 16:27:53 +00:00
committed by Gerrit Code Review
42 changed files with 942 additions and 183 deletions

View File

@@ -16,6 +16,22 @@ package com.google.gerrit.extensions.api.changes;
import com.google.gerrit.extensions.client.Comment;
import java.util.Objects;
public class DraftInput extends Comment {
public String tag;
@Override
public boolean equals(Object o) {
if (super.equals(o)) {
DraftInput di = (DraftInput) o;
return Objects.equals(tag, di.tag);
}
return false;
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), tag);
}
}

View File

@@ -34,6 +34,11 @@ public interface FileApi {
*/
DiffInfo diff(String base) throws RestApiException;
/**
* @param parent 1-based parent number to diff against
*/
DiffInfo diff(int parent) throws RestApiException;
/**
* Creates a request to retrieve the diff. On the returned request formatting
* options for the diff can be set.
@@ -105,6 +110,11 @@ public interface FileApi {
throw new NotImplementedException();
}
@Override
public DiffInfo diff(int parent) throws RestApiException {
throw new NotImplementedException();
}
@Override
public DiffRequest diffRequest() throws RestApiException {
throw new NotImplementedException();

View File

@@ -46,6 +46,7 @@ public interface RevisionApi {
Map<String, FileInfo> files() throws RestApiException;
Map<String, FileInfo> files(String base) throws RestApiException;
Map<String, FileInfo> files(int parentNum) throws RestApiException;
FileApi file(String path);
MergeableInfo mergeable() throws RestApiException;
MergeableInfo mergeableOtherBranches() throws RestApiException;
@@ -146,6 +147,11 @@ public interface RevisionApi {
throw new NotImplementedException();
}
@Override
public Map<String, FileInfo> files(int parentNum) throws RestApiException {
throw new NotImplementedException();
}
@Override
public Map<String, FileInfo> files() throws RestApiException {
throw new NotImplementedException();

View File

@@ -15,6 +15,7 @@
package com.google.gerrit.extensions.client;
import java.sql.Timestamp;
import java.util.Objects;
public abstract class Comment {
/**
@@ -27,6 +28,7 @@ public abstract class Comment {
public String id;
public String path;
public Side side;
public Integer parent;
public Integer line;
public Range range;
public String inReplyTo;
@@ -38,5 +40,49 @@ public abstract class Comment {
public int startCharacter;
public int endLine;
public int endCharacter;
@Override
public boolean equals(Object o) {
if (o instanceof Range) {
Range r = (Range) o;
return Objects.equals(startLine, r.startLine)
&& Objects.equals(startCharacter, r.startCharacter)
&& Objects.equals(endLine, r.endLine)
&& Objects.equals(endCharacter, r.endCharacter);
}
return false;
}
@Override
public int hashCode() {
return Objects.hash(startLine, startCharacter, endLine, endCharacter);
}
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o != null && getClass() == o.getClass()) {
Comment c = (Comment) o;
return Objects.equals(patchSet, c.patchSet)
&& Objects.equals(id, c.id)
&& Objects.equals(path, c.path)
&& Objects.equals(side, c.side)
&& Objects.equals(parent, c.parent)
&& Objects.equals(line, c.line)
&& Objects.equals(range, c.range)
&& Objects.equals(inReplyTo, c.inReplyTo)
&& Objects.equals(updated, c.updated)
&& Objects.equals(message, c.message);
}
return false;
}
@Override
public int hashCode() {
return Objects.hash(patchSet, id, path, side, parent, line, range,
inReplyTo, updated, message);
}
}

View File

@@ -19,11 +19,10 @@ public enum Side {
REVISION;
public static Side fromShort(short s) {
switch (s) {
case 0:
return PARENT;
case 1:
return REVISION;
if (s <= 0) {
return PARENT;
} else if (s == 1) {
return REVISION;
}
return null;
}

View File

@@ -16,7 +16,24 @@ package com.google.gerrit.extensions.common;
import com.google.gerrit.extensions.client.Comment;
import java.util.Objects;
public class CommentInfo extends Comment {
public AccountInfo author;
public String tag;
@Override
public boolean equals(Object o) {
if (super.equals(o)) {
CommentInfo ci = (CommentInfo) o;
return Objects.equals(author, ci.author)
&& Objects.equals(tag, ci.tag);
}
return false;
}
@Override
public int hashCode() {
return Objects.hash(super.hashCode(), author, tag);
}
}