234 lines
5.2 KiB
Java
234 lines
5.2 KiB
Java
// Copyright (C) 2009 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package com.google.gerrit.common.data;
|
|
|
|
import com.google.gerrit.extensions.client.DiffPreferencesInfo;
|
|
import com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace;
|
|
import com.google.gerrit.prettify.common.EditList;
|
|
import com.google.gerrit.prettify.common.SparseFileContent;
|
|
import com.google.gerrit.reviewdb.client.Change;
|
|
import com.google.gerrit.reviewdb.client.Patch;
|
|
import com.google.gerrit.reviewdb.client.Patch.ChangeType;
|
|
import java.util.List;
|
|
import org.eclipse.jgit.diff.Edit;
|
|
|
|
public class PatchScript {
|
|
public enum DisplayMethod {
|
|
NONE,
|
|
DIFF,
|
|
IMG
|
|
}
|
|
|
|
public enum FileMode {
|
|
FILE,
|
|
SYMLINK,
|
|
GITLINK
|
|
}
|
|
|
|
private Change.Key changeId;
|
|
private ChangeType changeType;
|
|
private String oldName;
|
|
private String newName;
|
|
private FileMode oldMode;
|
|
private FileMode newMode;
|
|
private List<String> header;
|
|
private DiffPreferencesInfo diffPrefs;
|
|
private SparseFileContent a;
|
|
private SparseFileContent b;
|
|
private List<Edit> edits;
|
|
private DisplayMethod displayMethodA;
|
|
private DisplayMethod displayMethodB;
|
|
private transient String mimeTypeA;
|
|
private transient String mimeTypeB;
|
|
private CommentDetail comments;
|
|
private List<Patch> history;
|
|
private boolean hugeFile;
|
|
private boolean intralineDifference;
|
|
private boolean intralineFailure;
|
|
private boolean intralineTimeout;
|
|
private boolean binary;
|
|
private transient String commitIdA;
|
|
private transient String commitIdB;
|
|
|
|
public PatchScript(
|
|
final Change.Key ck,
|
|
final ChangeType ct,
|
|
final String on,
|
|
final String nn,
|
|
final FileMode om,
|
|
final FileMode nm,
|
|
final List<String> h,
|
|
final DiffPreferencesInfo dp,
|
|
final SparseFileContent ca,
|
|
final SparseFileContent cb,
|
|
final List<Edit> e,
|
|
final DisplayMethod ma,
|
|
final DisplayMethod mb,
|
|
final String mta,
|
|
final String mtb,
|
|
final CommentDetail cd,
|
|
final List<Patch> hist,
|
|
final boolean hf,
|
|
final boolean id,
|
|
final boolean idf,
|
|
final boolean idt,
|
|
boolean bin,
|
|
final String cma,
|
|
final String cmb) {
|
|
changeId = ck;
|
|
changeType = ct;
|
|
oldName = on;
|
|
newName = nn;
|
|
oldMode = om;
|
|
newMode = nm;
|
|
header = h;
|
|
diffPrefs = dp;
|
|
a = ca;
|
|
b = cb;
|
|
edits = e;
|
|
displayMethodA = ma;
|
|
displayMethodB = mb;
|
|
mimeTypeA = mta;
|
|
mimeTypeB = mtb;
|
|
comments = cd;
|
|
history = hist;
|
|
hugeFile = hf;
|
|
intralineDifference = id;
|
|
intralineFailure = idf;
|
|
intralineTimeout = idt;
|
|
binary = bin;
|
|
commitIdA = cma;
|
|
commitIdB = cmb;
|
|
}
|
|
|
|
protected PatchScript() {}
|
|
|
|
public Change.Key getChangeId() {
|
|
return changeId;
|
|
}
|
|
|
|
public DisplayMethod getDisplayMethodA() {
|
|
return displayMethodA;
|
|
}
|
|
|
|
public DisplayMethod getDisplayMethodB() {
|
|
return displayMethodB;
|
|
}
|
|
|
|
public FileMode getFileModeA() {
|
|
return oldMode;
|
|
}
|
|
|
|
public FileMode getFileModeB() {
|
|
return newMode;
|
|
}
|
|
|
|
public List<String> getPatchHeader() {
|
|
return header;
|
|
}
|
|
|
|
public ChangeType getChangeType() {
|
|
return changeType;
|
|
}
|
|
|
|
public String getOldName() {
|
|
return oldName;
|
|
}
|
|
|
|
public String getNewName() {
|
|
return newName;
|
|
}
|
|
|
|
public CommentDetail getCommentDetail() {
|
|
return comments;
|
|
}
|
|
|
|
public List<Patch> getHistory() {
|
|
return history;
|
|
}
|
|
|
|
public DiffPreferencesInfo getDiffPrefs() {
|
|
return diffPrefs;
|
|
}
|
|
|
|
public void setDiffPrefs(DiffPreferencesInfo dp) {
|
|
diffPrefs = dp;
|
|
}
|
|
|
|
public boolean isHugeFile() {
|
|
return hugeFile;
|
|
}
|
|
|
|
public boolean isIgnoreWhitespace() {
|
|
return diffPrefs.ignoreWhitespace != Whitespace.IGNORE_NONE;
|
|
}
|
|
|
|
public boolean hasIntralineDifference() {
|
|
return intralineDifference;
|
|
}
|
|
|
|
public boolean hasIntralineFailure() {
|
|
return intralineFailure;
|
|
}
|
|
|
|
public boolean hasIntralineTimeout() {
|
|
return intralineTimeout;
|
|
}
|
|
|
|
public boolean isExpandAllComments() {
|
|
return diffPrefs.expandAllComments;
|
|
}
|
|
|
|
public SparseFileContent getA() {
|
|
return a;
|
|
}
|
|
|
|
public SparseFileContent getB() {
|
|
return b;
|
|
}
|
|
|
|
public String getMimeTypeA() {
|
|
return mimeTypeA;
|
|
}
|
|
|
|
public String getMimeTypeB() {
|
|
return mimeTypeB;
|
|
}
|
|
|
|
public List<Edit> getEdits() {
|
|
return edits;
|
|
}
|
|
|
|
public Iterable<EditList.Hunk> getHunks() {
|
|
int ctx = diffPrefs.context;
|
|
if (ctx == DiffPreferencesInfo.WHOLE_FILE_CONTEXT) {
|
|
ctx = Math.max(a.size(), b.size());
|
|
}
|
|
return new EditList(edits, ctx, a.size(), b.size()).getHunks();
|
|
}
|
|
|
|
public boolean isBinary() {
|
|
return binary;
|
|
}
|
|
|
|
public String getCommitIdA() {
|
|
return commitIdA;
|
|
}
|
|
|
|
public String getCommitIdB() {
|
|
return commitIdB;
|
|
}
|
|
}
|