(DiffSet set, DiffEventListener original_event, DiffEventListener target_event)
| 61 | } |
| 62 | |
| 63 | public static void diffPerCharacter(DiffSet set, DiffEventListener original_event, DiffEventListener target_event) |
| 64 | throws Exception { |
| 65 | try { |
| 66 | |
| 67 | List<String> listOrig = Arrays.asList(new String(set.getOriginal()).split("")); |
| 68 | List<String> listTarg = Arrays.asList(new String(set.getTarget()).split("")); |
| 69 | |
| 70 | Patch diff = DiffUtils.diff(listOrig, listTarg); |
| 71 | |
| 72 | List<Delta> deltas = diff.getDeltas(); |
| 73 | for (Delta delta : deltas) { |
| 74 | |
| 75 | Chunk chunkOrig = delta.getOriginal(); |
| 76 | Chunk chunkTarg = delta.getRevised(); |
| 77 | if (delta.getType() == Delta.TYPE.CHANGE) { |
| 78 | |
| 79 | original_event.foundChgDelta(chunkPositionPerCharacter(listOrig, chunkOrig), |
| 80 | chunkLengthPerCharacter(chunkOrig)); |
| 81 | target_event.foundChgDelta(chunkPositionPerCharacter(listTarg, chunkTarg), |
| 82 | chunkLengthPerCharacter(chunkTarg)); |
| 83 | } else if (delta.getType() == Delta.TYPE.INSERT) { |
| 84 | |
| 85 | target_event.foundInsDelta(chunkPositionPerCharacter(listTarg, chunkTarg), |
| 86 | chunkLengthPerCharacter(chunkTarg)); |
| 87 | } else if (delta.getType() == Delta.TYPE.DELETE) { |
| 88 | |
| 89 | original_event.foundDelDelta(chunkPositionPerCharacter(listOrig, chunkOrig), |
| 90 | chunkLengthPerCharacter(chunkOrig)); |
| 91 | } |
| 92 | } |
| 93 | } catch (Exception e) { |
| 94 | |
| 95 | errWithStackTrace(e); |
| 96 | } |
| 97 | } |
| 98 | |
| 99 | public static void diffPerLine(DiffSet set, DiffEventListener original_event, DiffEventListener target_event) |
| 100 | throws Exception { |
no test coverage detected