From b1c05f95e4550540ae939de38222a97e2d15f0bb Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 28 Nov 2010 14:50:40 -0200 Subject: [PATCH] diff update --- .../ic/gardener/diff/FullContextFormat.java | 7 +-- .../br/uff/ic/gardener/diff/ResultLCS.java | 59 ++++++++----------- 2 files changed, 25 insertions(+), 41 deletions(-) diff --git a/src/main/java/br/uff/ic/gardener/diff/FullContextFormat.java b/src/main/java/br/uff/ic/gardener/diff/FullContextFormat.java index f43ae06..db48193 100644 --- a/src/main/java/br/uff/ic/gardener/diff/FullContextFormat.java +++ b/src/main/java/br/uff/ic/gardener/diff/FullContextFormat.java @@ -21,8 +21,7 @@ public class FullContextFormat implements IFormat { @Override public void format(IResultDiff resultDiff) { LinesBean line = null; - boolean isNext = false; - + PrintWriter outputWriter = null; try { outputWriter = WriterFactory.getWriter(); @@ -35,10 +34,7 @@ public void format(IResultDiff resultDiff) { outputWriter.println(); for (Iterator it = resultDiff.getResult().iterator(); it.hasNext();) { - if (!isNext) { line = (LinesBean) it.next(); - isNext = false; - } if (line.getSituation() == LinesBean.Situation.REMOVED) { outputWriter.println("- " + line.getLine()); @@ -50,7 +46,6 @@ public void format(IResultDiff resultDiff) { //context lines are replicated, so jump extra one if(it.hasNext()){ it.next(); - isNext = true; } } } diff --git a/src/main/java/br/uff/ic/gardener/diff/ResultLCS.java b/src/main/java/br/uff/ic/gardener/diff/ResultLCS.java index 6c297c6..d9dc9ef 100644 --- a/src/main/java/br/uff/ic/gardener/diff/ResultLCS.java +++ b/src/main/java/br/uff/ic/gardener/diff/ResultLCS.java @@ -34,6 +34,7 @@ private void loadResult() { result = new ArrayList(); int i = 0; int j = 0; + boolean finish = false; Iterator itF1 = fileVersionOne.iterator(); Iterator itF2 = fileVersionTwo.iterator(); @@ -42,54 +43,39 @@ private void loadResult() { lineF1 = (LinesBean) itF1.next(); lineF2 = (LinesBean) itF2.next(); - while (itF1.hasNext() && itF2.hasNext()) { - if ((lineF1 != null) && (lineF2 != null)) { - if ((lcs.contains(lineF1)) && (lcs.contains(lineF2))) { - setLinesBean(lineF1, i, LinesBean.Situation.UNCHANGED, 1); - setLinesBean(lineF2, j, LinesBean.Situation.UNCHANGED, 2); + while ((lineF1 != null && lineF2 != null) && (!finish)) { + if ((lcs.contains(lineF1)) && (lcs.contains(lineF2))) { + setLinesBean(lineF1, i, LinesBean.Situation.UNCHANGED, 1); + setLinesBean(lineF2, j, LinesBean.Situation.UNCHANGED, 2); + if (itF1.hasNext() && itF2.hasNext()) { lineF1 = (LinesBean) itF1.next(); lineF2 = (LinesBean) itF2.next(); i++; j++; } else { - if (!lcs.contains(lineF1)) { - setLinesBean(lineF1, i, LinesBean.Situation.REMOVED, 1); + finish = true; + } + } else { + if (!lcs.contains(lineF1)) { + setLinesBean(lineF1, i, LinesBean.Situation.REMOVED, 1); + if (itF1.hasNext()) { lineF1 = (LinesBean) itF1.next(); i++; } else { - setLinesBean(lineF2, j, LinesBean.Situation.ADDED, 2); + finish = true; + } + } else { + setLinesBean(lineF2, j, LinesBean.Situation.ADDED, 2); + if (itF2.hasNext()) { lineF2 = (LinesBean) itF2.next(); j++; + } else { + finish = true; } } } - } - while (itF1.hasNext()) { - if (lineF1 != null) { - if (!lcs.contains(lineF1)) { - setLinesBean(lineF1, i, LinesBean.Situation.ADDED, 1); - } else { - setLinesBean(lineF1, i, LinesBean.Situation.UNCHANGED, 1); - } - } - lineF1 = (LinesBean) itF1.next(); - i++; } - setEndLine(lineF1, i, 1, Situation.REMOVED); - - while (itF2.hasNext()) { - if (lineF2 != null) { - if (!lcs.contains(lineF2)) { - setLinesBean(lineF2, j, LinesBean.Situation.ADDED, 2); - } else { - setLinesBean(lineF2, j, LinesBean.Situation.UNCHANGED, 2); - } - } - lineF2 = (LinesBean) itF2.next(); - j++; - } - setEndLine(lineF2, j, 2, Situation.ADDED); } /** @@ -103,11 +89,14 @@ public void setEndLine(LinesBean line, int id, int idFile, Situation situation) if (line != null) { if ((line != null) && (!lcs.contains(line))) { setLinesBean(line, id, situation, idFile); - } else { - setLinesBean(line, id, LinesBean.Situation.UNCHANGED, idFile); } } } +// }//else { + // setLinesBean(line, id, LinesBean.Situation.UNCHANGED, idFile); + //} + // } + // } /** *