Convert Patch.Key to AutoValue
See I6982fb24 for context. Change-Id: I9087151a4022dca4b9d6d591495ea9020370f14a
This commit is contained in:
		@@ -150,7 +150,7 @@ public class CatServlet extends HttpServlet {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    String path = patchKey.getFileName();
 | 
			
		||||
    String path = patchKey.fileName();
 | 
			
		||||
    String restUrl =
 | 
			
		||||
        String.format(
 | 
			
		||||
            "%s/changes/%d/revisions/%s/files/%s/download?parent=%d",
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,12 @@
 | 
			
		||||
 | 
			
		||||
package com.google.gerrit.reviewdb.client;
 | 
			
		||||
 | 
			
		||||
import com.google.gwtorm.client.StringKey;
 | 
			
		||||
import static com.google.common.base.Preconditions.checkArgument;
 | 
			
		||||
 | 
			
		||||
import com.google.auto.value.AutoValue;
 | 
			
		||||
import com.google.common.base.Splitter;
 | 
			
		||||
import com.google.common.primitives.Ints;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/** A single modified file in a {@link PatchSet}. */
 | 
			
		||||
public final class Patch {
 | 
			
		||||
@@ -35,46 +40,33 @@ public final class Patch {
 | 
			
		||||
    return COMMIT_MSG.equals(path) || MERGE_LIST.equals(path);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public static class Key extends StringKey<PatchSet.Id> {
 | 
			
		||||
    private static final long serialVersionUID = 1L;
 | 
			
		||||
  public static Key key(PatchSet.Id patchSetId, String fileName) {
 | 
			
		||||
    return new AutoValue_Patch_Key(patchSetId, fileName);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    protected PatchSet.Id patchSetId;
 | 
			
		||||
 | 
			
		||||
    protected String fileName;
 | 
			
		||||
 | 
			
		||||
    protected Key() {
 | 
			
		||||
      patchSetId = new PatchSet.Id();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Key(PatchSet.Id ps, String name) {
 | 
			
		||||
      this.patchSetId = ps;
 | 
			
		||||
      this.fileName = name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public PatchSet.Id getParentKey() {
 | 
			
		||||
      return patchSetId;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String get() {
 | 
			
		||||
      return fileName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected void set(String newValue) {
 | 
			
		||||
      fileName = newValue;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** Parse a Patch.Id out of a string representation. */
 | 
			
		||||
  @AutoValue
 | 
			
		||||
  public abstract static class Key {
 | 
			
		||||
    /** Parse a Patch.Key out of a string representation. */
 | 
			
		||||
    public static Key parse(String str) {
 | 
			
		||||
      final Key r = new Key();
 | 
			
		||||
      r.fromString(str);
 | 
			
		||||
      return r;
 | 
			
		||||
      List<String> parts = Splitter.on(',').limit(3).splitToList(str);
 | 
			
		||||
      checkKeyFormat(parts.size() == 3, str);
 | 
			
		||||
      Integer changeId = Ints.tryParse(parts.get(0));
 | 
			
		||||
      checkKeyFormat(changeId != null, str);
 | 
			
		||||
      Integer patchSetNum = Ints.tryParse(parts.get(1));
 | 
			
		||||
      checkKeyFormat(patchSetNum != null, str);
 | 
			
		||||
      return key(new PatchSet.Id(new Change.Id(changeId), patchSetNum), parts.get(2));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getFileName() {
 | 
			
		||||
      return get();
 | 
			
		||||
    private static void checkKeyFormat(boolean test, String input) {
 | 
			
		||||
      checkArgument(test, "invalid patch key: %s", input);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public abstract PatchSet.Id patchSetId();
 | 
			
		||||
 | 
			
		||||
    public abstract String fileName();
 | 
			
		||||
 | 
			
		||||
    public PatchSet.Id getParentKey() {
 | 
			
		||||
      return patchSetId();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@@ -259,7 +251,7 @@ public final class Patch {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public String getFileName() {
 | 
			
		||||
    return key.fileName;
 | 
			
		||||
    return key.fileName();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public String getSourceFileName() {
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,7 @@ public final class PatchLineComment {
 | 
			
		||||
 | 
			
		||||
  public static PatchLineComment from(
 | 
			
		||||
      Change.Id changeId, PatchLineComment.Status status, Comment c) {
 | 
			
		||||
    Patch.Key patchKey = new Patch.Key(new PatchSet.Id(changeId, c.key.patchSetId), c.key.filename);
 | 
			
		||||
    Patch.Key patchKey = Patch.key(new PatchSet.Id(changeId, c.key.patchSetId), c.key.filename);
 | 
			
		||||
    PatchLineComment plc =
 | 
			
		||||
        new PatchLineComment(
 | 
			
		||||
            patchKey, c.key.uuid, c.lineNbr, c.author.getId(), c.parentUuid, c.writtenOn);
 | 
			
		||||
@@ -259,7 +259,7 @@ public final class PatchLineComment {
 | 
			
		||||
  public Comment asComment(String serverId) {
 | 
			
		||||
    Comment c =
 | 
			
		||||
        new Comment(
 | 
			
		||||
            new Comment.Key(uuid, patchKey.getFileName(), patchKey.getParentKey().get()),
 | 
			
		||||
            new Comment.Key(uuid, patchKey.fileName(), patchKey.getParentKey().get()),
 | 
			
		||||
            author,
 | 
			
		||||
            writtenOn,
 | 
			
		||||
            side,
 | 
			
		||||
 
 | 
			
		||||
@@ -29,7 +29,7 @@ public class FileResource implements RestResource {
 | 
			
		||||
 | 
			
		||||
  public FileResource(RevisionResource rev, String name) {
 | 
			
		||||
    this.rev = rev;
 | 
			
		||||
    this.key = new Patch.Key(rev.getPatchSet().getId(), name);
 | 
			
		||||
    this.key = Patch.key(rev.getPatchSet().getId(), name);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public Patch.Key getPatchKey() {
 | 
			
		||||
 
 | 
			
		||||
@@ -229,7 +229,7 @@ public class PatchListEntry {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Patch toPatch(PatchSet.Id setId) {
 | 
			
		||||
    final Patch p = new Patch(new Patch.Key(setId, getNewName()));
 | 
			
		||||
    final Patch p = new Patch(Patch.key(setId, getNewName()));
 | 
			
		||||
    p.setChangeType(getChangeType());
 | 
			
		||||
    p.setPatchType(getPatchType());
 | 
			
		||||
    p.setSourceFileName(getOldName());
 | 
			
		||||
 
 | 
			
		||||
@@ -319,12 +319,12 @@ public class PatchScriptFactory implements Callable<PatchScript> {
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Patch p = new Patch(new Patch.Key(ps.getId(), name));
 | 
			
		||||
        Patch p = new Patch(Patch.key(ps.getId(), name));
 | 
			
		||||
        history.add(p);
 | 
			
		||||
        byKey.put(p.getKey(), p);
 | 
			
		||||
      }
 | 
			
		||||
      if (edit != null && edit.isPresent()) {
 | 
			
		||||
        Patch p = new Patch(new Patch.Key(new PatchSet.Id(psb.getParentKey(), 0), fileName));
 | 
			
		||||
        Patch p = new Patch(Patch.key(new PatchSet.Id(psb.getParentKey(), 0), fileName));
 | 
			
		||||
        history.add(p);
 | 
			
		||||
        byKey.put(p.getKey(), p);
 | 
			
		||||
      }
 | 
			
		||||
@@ -386,7 +386,7 @@ public class PatchScriptFactory implements Callable<PatchScript> {
 | 
			
		||||
    for (Comment c : commentsUtil.publishedByChangeFile(notes, file)) {
 | 
			
		||||
      comments.include(notes.getChangeId(), c);
 | 
			
		||||
      PatchSet.Id psId = new PatchSet.Id(notes.getChangeId(), c.key.patchSetId);
 | 
			
		||||
      Patch.Key pKey = new Patch.Key(psId, c.key.filename);
 | 
			
		||||
      Patch.Key pKey = Patch.key(psId, c.key.filename);
 | 
			
		||||
      Patch p = byKey.get(pKey);
 | 
			
		||||
      if (p != null) {
 | 
			
		||||
        p.setCommentCount(p.getCommentCount() + 1);
 | 
			
		||||
@@ -398,7 +398,7 @@ public class PatchScriptFactory implements Callable<PatchScript> {
 | 
			
		||||
    for (Comment c : commentsUtil.draftByChangeFileAuthor(notes, file, me)) {
 | 
			
		||||
      comments.include(notes.getChangeId(), c);
 | 
			
		||||
      PatchSet.Id psId = new PatchSet.Id(notes.getChangeId(), c.key.patchSetId);
 | 
			
		||||
      Patch.Key pKey = new Patch.Key(psId, c.key.filename);
 | 
			
		||||
      Patch.Key pKey = Patch.key(psId, c.key.filename);
 | 
			
		||||
      Patch p = byKey.get(pKey);
 | 
			
		||||
      if (p != null) {
 | 
			
		||||
        p.setDraftCount(p.getDraftCount() + 1);
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ public class DownloadContent implements RestReadView<FileResource> {
 | 
			
		||||
  @Override
 | 
			
		||||
  public BinaryResult apply(FileResource rsrc)
 | 
			
		||||
      throws ResourceNotFoundException, IOException, NoSuchChangeException {
 | 
			
		||||
    String path = rsrc.getPatchKey().get();
 | 
			
		||||
    String path = rsrc.getPatchKey().fileName();
 | 
			
		||||
    RevisionResource rev = rsrc.getRevision();
 | 
			
		||||
    ObjectId revstr = ObjectId.fromString(rev.getPatchSet().getRevision().get());
 | 
			
		||||
    return fileContentUtil.downloadContent(
 | 
			
		||||
 
 | 
			
		||||
@@ -97,7 +97,7 @@ public class GetBlame implements RestReadView<FileResource> {
 | 
			
		||||
      RevCommit revCommit = revWalk.parseCommit(objectId);
 | 
			
		||||
      RevCommit[] parents = revCommit.getParents();
 | 
			
		||||
 | 
			
		||||
      String path = resource.getPatchKey().getFileName();
 | 
			
		||||
      String path = resource.getPatchKey().fileName();
 | 
			
		||||
 | 
			
		||||
      List<BlameInfo> result;
 | 
			
		||||
      if (!base) {
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ public class GetContent implements RestReadView<FileResource> {
 | 
			
		||||
  @Override
 | 
			
		||||
  public BinaryResult apply(FileResource rsrc)
 | 
			
		||||
      throws ResourceNotFoundException, IOException, BadRequestException {
 | 
			
		||||
    String path = rsrc.getPatchKey().get();
 | 
			
		||||
    String path = rsrc.getPatchKey().fileName();
 | 
			
		||||
    if (Patch.COMMIT_MSG.equals(path)) {
 | 
			
		||||
      String msg = getMessage(rsrc.getRevision().getChangeResource().getNotes());
 | 
			
		||||
      return BinaryResult.create(msg)
 | 
			
		||||
 
 | 
			
		||||
@@ -141,7 +141,7 @@ public class GetDiff implements RestReadView<FileResource> {
 | 
			
		||||
    PatchScriptFactory psf;
 | 
			
		||||
    PatchSet basePatchSet = null;
 | 
			
		||||
    PatchSet.Id pId = resource.getPatchKey().getParentKey();
 | 
			
		||||
    String fileName = resource.getPatchKey().getFileName();
 | 
			
		||||
    String fileName = resource.getPatchKey().fileName();
 | 
			
		||||
    ChangeNotes notes = resource.getRevision().getNotes();
 | 
			
		||||
    if (base != null) {
 | 
			
		||||
      RevisionResource baseResource =
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ public class Reviewed {
 | 
			
		||||
                  s.markReviewed(
 | 
			
		||||
                      resource.getPatchKey().getParentKey(),
 | 
			
		||||
                      resource.getAccountId(),
 | 
			
		||||
                      resource.getPatchKey().getFileName()));
 | 
			
		||||
                      resource.getPatchKey().fileName()));
 | 
			
		||||
      return reviewFlagUpdated ? Response.created("") : Response.ok("");
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
@@ -63,7 +63,7 @@ public class Reviewed {
 | 
			
		||||
              s.clearReviewed(
 | 
			
		||||
                  resource.getPatchKey().getParentKey(),
 | 
			
		||||
                  resource.getAccountId(),
 | 
			
		||||
                  resource.getPatchKey().getFileName()));
 | 
			
		||||
                  resource.getPatchKey().fileName()));
 | 
			
		||||
      return Response.none();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -34,9 +34,9 @@ public class PatchTest extends GerritBaseTests {
 | 
			
		||||
  @Test
 | 
			
		||||
  public void parseKey() {
 | 
			
		||||
    assertThat(Patch.Key.parse("1,2,foo.txt"))
 | 
			
		||||
        .isEqualTo(new Patch.Key(new PatchSet.Id(new Change.Id(1), 2), "foo.txt"));
 | 
			
		||||
        .isEqualTo(Patch.key(new PatchSet.Id(new Change.Id(1), 2), "foo.txt"));
 | 
			
		||||
    assertThat(Patch.Key.parse("01,02,foo.txt"))
 | 
			
		||||
        .isEqualTo(new Patch.Key(new PatchSet.Id(new Change.Id(1), 2), "foo.txt"));
 | 
			
		||||
        .isEqualTo(Patch.key(new PatchSet.Id(new Change.Id(1), 2), "foo.txt"));
 | 
			
		||||
    assertInvalidKey(null);
 | 
			
		||||
    assertInvalidKey("");
 | 
			
		||||
    assertInvalidKey("1,2");
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user