| // 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.common.collect.ImmutableList; |
| import com.google.common.collect.ImmutableSet; |
| import com.google.gerrit.entities.Patch.ChangeType; |
| import com.google.gerrit.extensions.client.DiffPreferencesInfo; |
| import com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace; |
| import com.google.gerrit.prettify.common.SparseFileContent; |
| import java.util.List; |
| import java.util.Set; |
| import org.eclipse.jgit.diff.Edit; |
| |
| public class PatchScript { |
| public enum DisplayMethod { |
| NONE, |
| DIFF, |
| IMG |
| } |
| |
| public enum FileMode { |
| FILE, |
| SYMLINK, |
| GITLINK; |
| |
| public static FileMode fromJgitFileMode(org.eclipse.jgit.lib.FileMode jgitFileMode) { |
| PatchScript.FileMode fileMode = PatchScript.FileMode.FILE; |
| if (jgitFileMode == org.eclipse.jgit.lib.FileMode.SYMLINK) { |
| fileMode = FileMode.SYMLINK; |
| } else if (jgitFileMode == org.eclipse.jgit.lib.FileMode.GITLINK) { |
| fileMode = FileMode.GITLINK; |
| } |
| return fileMode; |
| } |
| } |
| |
| public static class PatchScriptFileInfo { |
| public final String name; |
| public final FileMode mode; |
| public final SparseFileContent content; |
| public final DisplayMethod displayMethod; |
| public final String mimeType; |
| public final String commitId; |
| |
| PatchScriptFileInfo( |
| String name, |
| FileMode mode, |
| SparseFileContent content, |
| DisplayMethod displayMethod, |
| String mimeType, |
| String commitId) { |
| this.name = name; |
| this.mode = mode; |
| this.content = content; |
| this.displayMethod = displayMethod; |
| this.mimeType = mimeType; |
| this.commitId = commitId; |
| } |
| } |
| |
| private final ChangeType changeType; |
| private final ImmutableList<String> header; |
| private final DiffPreferencesInfo diffPrefs; |
| private final ImmutableList<Edit> edits; |
| private final ImmutableSet<Edit> editsDueToRebase; |
| private final boolean intralineFailure; |
| private final boolean intralineTimeout; |
| private final boolean binary; |
| private final PatchScriptFileInfo fileInfoA; |
| private final PatchScriptFileInfo fileInfoB; |
| |
| public PatchScript( |
| ChangeType ct, |
| String on, |
| String nn, |
| FileMode om, |
| FileMode nm, |
| ImmutableList<String> h, |
| DiffPreferencesInfo dp, |
| SparseFileContent ca, |
| SparseFileContent cb, |
| ImmutableList<Edit> e, |
| ImmutableSet<Edit> editsDueToRebase, |
| DisplayMethod ma, |
| DisplayMethod mb, |
| String mta, |
| String mtb, |
| boolean idf, |
| boolean idt, |
| boolean bin, |
| String cma, |
| String cmb) { |
| changeType = ct; |
| header = h; |
| diffPrefs = dp; |
| edits = e; |
| this.editsDueToRebase = editsDueToRebase; |
| intralineFailure = idf; |
| intralineTimeout = idt; |
| binary = bin; |
| |
| fileInfoA = new PatchScriptFileInfo(on, om, ca, ma, mta, cma); |
| fileInfoB = new PatchScriptFileInfo(nn, nm, cb, mb, mtb, cmb); |
| } |
| |
| public List<String> getPatchHeader() { |
| return header; |
| } |
| |
| public ChangeType getChangeType() { |
| return changeType; |
| } |
| |
| public String getOldName() { |
| return fileInfoA.name; |
| } |
| |
| public String getNewName() { |
| return fileInfoB.name; |
| } |
| |
| public DiffPreferencesInfo getDiffPrefs() { |
| return diffPrefs; |
| } |
| |
| public boolean isIgnoreWhitespace() { |
| return diffPrefs.ignoreWhitespace != Whitespace.IGNORE_NONE; |
| } |
| |
| public boolean hasIntralineFailure() { |
| return intralineFailure; |
| } |
| |
| public boolean hasIntralineTimeout() { |
| return intralineTimeout; |
| } |
| |
| public SparseFileContent getA() { |
| return fileInfoA.content; |
| } |
| |
| public SparseFileContent getB() { |
| return fileInfoB.content; |
| } |
| |
| public List<Edit> getEdits() { |
| return edits; |
| } |
| |
| public Set<Edit> getEditsDueToRebase() { |
| return editsDueToRebase; |
| } |
| |
| public boolean isBinary() { |
| return binary; |
| } |
| |
| public PatchScriptFileInfo getFileInfoA() { |
| return fileInfoA; |
| } |
| |
| public PatchScriptFileInfo getFileInfoB() { |
| return fileInfoB; |
| } |
| } |