diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java index d69472462e..3805f8f6b3 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/IntraLineDiff.java @@ -14,9 +14,13 @@ package com.google.gerrit.server.patch; +import static com.google.gerrit.server.ioutil.BasicSerialization.readEnum; import static com.google.gerrit.server.ioutil.BasicSerialization.readVarInt32; +import static com.google.gerrit.server.ioutil.BasicSerialization.writeEnum; import static com.google.gerrit.server.ioutil.BasicSerialization.writeVarInt32; +import com.google.gerrit.reviewdb.CodedEnum; + import org.eclipse.jgit.diff.Edit; import org.eclipse.jgit.diff.ReplaceEdit; @@ -33,17 +37,44 @@ import java.util.List; public class IntraLineDiff implements Serializable { static final long serialVersionUID = IntraLineDiffKey.serialVersionUID; + public static enum Status implements CodedEnum { + EDIT_LIST('e'), DISABLED('D'), TIMEOUT('T'), ERROR('E'); + + private final char code; + + Status(char code) { + this.code = code; + } + + @Override + public char getCode() { + return code; + } + } + + private transient Status status; private transient List<Edit> edits; + IntraLineDiff(Status status) { + this.status = status; + this.edits = Collections.emptyList(); + } + IntraLineDiff(List<Edit> edits) { + this.status = Status.EDIT_LIST; this.edits = Collections.unmodifiableList(edits); } + public Status getStatus() { + return status; + } + public List<Edit> getEdits() { return edits; } private void writeObject(final ObjectOutputStream out) throws IOException { + writeEnum(out, status); writeVarInt32(out, edits.size()); for (Edit e : edits) { writeEdit(out, e); @@ -61,6 +92,7 @@ public class IntraLineDiff implements Serializable { } private void readObject(final ObjectInputStream in) throws IOException { + status = readEnum(in, Status.values()); int editCount = readVarInt32(in); Edit[] editArray = new Edit[editCount]; for (int i = 0; i < editCount; i++) { |