GitNex-Android-App/app/src/main/java/org/mian/gitnex/models/FileDiffView.java

160 lines
2.7 KiB
Java

package org.mian.gitnex.models;
import androidx.annotation.NonNull;
import java.util.List;
/**
* Author M M Arif
* Author 6543
*/
public class FileDiffView {
private String fileNewName;
private String fileOldName;
private String diffType;
private String fileInfo;
private Stats stats;
private List<Content> contents;
public class Stats {
private int lineAdded;
private int lineRemoved;
public Stats(int added, int removed) {
this.lineAdded = added;
this.lineRemoved = removed;
}
public int getAdded() {
return lineAdded;
}
public int getRemoved() {
return lineRemoved;
}
@NonNull
public String toString() {
return "+" + this.lineAdded + ", -" + this.lineRemoved;
}
}
public static class Content {
private int lineAdded;
private int lineRemoved;
private int oldLineStart;
private int newLineStart;
private String raw;
public Content(String content) {
this.raw = content;
}
public Content(String content, int oldStart, int newStart, int removed, int added) {
this.raw = content;
this.lineAdded = added;
this.lineRemoved = removed;
this.oldLineStart = oldStart;
this.newLineStart = newStart;
}
public String getRaw() {
return raw;
}
public int getLineAdded() {
return this.lineAdded;
}
public int getLineRemoved() {
return this.lineRemoved;
}
public int getOldLineStart() {
return this.oldLineStart;
}
public int getNewLineStart() {
return this.newLineStart;
}
}
public FileDiffView(String oldName, String newName, String diffType, String fileInfo, List<Content> fileContents) {
this.fileNewName = newName.trim();
this.fileOldName = oldName.trim();
this.diffType = diffType;
this.fileInfo = fileInfo;
this.contents = fileContents;
this.stats = new Stats(0, 0);
if(fileContents != null) {
for(Content content : this.contents) {
stats.lineAdded += content.lineAdded;
stats.lineRemoved += content.lineRemoved;
}
}
}
public String getFileName() {
if(fileOldName.length() != 0 && !fileOldName.equals(fileNewName)) {
return fileOldName + " -> " + fileNewName;
}
return fileNewName;
}
public boolean isFileBinary() {
return diffType.equals("binary");
}
public String getFileInfo() {
if(diffType.equals("binary")) {
return diffType + " " + fileInfo;
}
if(fileInfo.equals("change") && this.stats != null) {
return this.stats.toString();
}
return fileInfo;
}
@NonNull
public String toString() {
StringBuilder raw = new StringBuilder();
if(this.contents != null) {
for(Content c : this.contents) {
raw.append(c.getRaw());
}
}
return raw.toString();
}
@NonNull
public List<Content> getFileContents() {
return this.contents;
}
}