James Moger
2013-09-27 319342c09152c61af13930e79777e1396f9c397f
src/main/java/com/gitblit/models/PathModel.java
@@ -17,6 +17,7 @@
import java.io.Serializable;
import org.eclipse.jgit.diff.DiffEntry;
import org.eclipse.jgit.diff.DiffEntry.ChangeType;
import org.eclipse.jgit.lib.FileMode;
@@ -58,6 +59,12 @@
   
   public boolean isTree() {
      return FileMode.TREE.equals(mode);
   }
   public boolean isFile() {
      return FileMode.REGULAR_FILE.equals(mode)
            || FileMode.EXECUTABLE_FILE.equals(mode)
            || (FileMode.MISSING.equals(mode) && !isSymlink() && !isSubmodule() && !isTree());
   }
   @Override
@@ -108,10 +115,27 @@
      public ChangeType changeType;
      public int insertions;
      public int deletions;
      public PathChangeModel(String name, String path, long size, int mode, String objectId,
            String commitId, ChangeType type) {
         super(name, path, size, mode, objectId, commitId);
         this.changeType = type;
      }
      public void update(char op) {
         switch (op) {
         case '+':
            insertions++;
            break;
         case '-':
            deletions++;
            break;
         default:
            break;
         }
      }
      @Override
@@ -123,5 +147,23 @@
      public boolean equals(Object o) {
         return super.equals(o);
      }
      public static PathChangeModel from(DiffEntry diff, String commitId) {
         PathChangeModel pcm;
         if (diff.getChangeType().equals(ChangeType.DELETE)) {
            pcm = new PathChangeModel(diff.getOldPath(), diff.getOldPath(), 0, diff
                  .getNewMode().getBits(), diff.getOldId().name(), commitId, diff
                  .getChangeType());
         } else if (diff.getChangeType().equals(ChangeType.RENAME)) {
            pcm = new PathChangeModel(diff.getOldPath(), diff.getNewPath(), 0, diff
                  .getNewMode().getBits(), diff.getNewId().name(), commitId, diff
                  .getChangeType());
         } else {
            pcm = new PathChangeModel(diff.getNewPath(), diff.getNewPath(), 0, diff
                  .getNewMode().getBits(), diff.getNewId().name(), commitId, diff
                  .getChangeType());
         }
         return pcm;
      }
   }
}