From 3e2fdb7857188702fe32f37bedd501429d5a088c Mon Sep 17 00:00:00 2001 From: jeremiaheinle Date: Fri, 16 Apr 2021 17:27:28 +0200 Subject: [PATCH] is broken #54 --- de.tubs.variantsync.core/META-INF/MANIFEST.MF | 1 + .../core/monitor/CodeMappingHandler.java | 52 ++++++++++++++++--- .../core/view/editor/PartAdapter.java | 8 +-- .../java/de/variantsync/core/ast/AST.java | 7 ++- .../core/ast/ASTLineGrammarProcessor.java | 4 +- .../de/variantsync/core/ASTProcessorTest.java | 6 +-- .../java/de/variantsync/core/ASTTest.java | 8 +-- 7 files changed, 62 insertions(+), 24 deletions(-) diff --git a/de.tubs.variantsync.core/META-INF/MANIFEST.MF b/de.tubs.variantsync.core/META-INF/MANIFEST.MF index 84479e4..243741e 100644 --- a/de.tubs.variantsync.core/META-INF/MANIFEST.MF +++ b/de.tubs.variantsync.core/META-INF/MANIFEST.MF @@ -31,6 +31,7 @@ Bundle-ActivationPolicy: lazy Bundle-ClassPath: lib/diffutils-2.2-SNAPSHOT.jar, lib/de.variantsync.core-0.0.3-SNAPSHOT.jar, lib/gson-2.8.6.jar, + lib/de.ovgu.featureide.lib.fm-v3.5.5.jar, . Export-Package: de.tubs.variantsync.core.patch, de.tubs.variantsync.core.patch.interfaces diff --git a/de.tubs.variantsync.core/src/de/tubs/variantsync/core/monitor/CodeMappingHandler.java b/de.tubs.variantsync.core/src/de/tubs/variantsync/core/monitor/CodeMappingHandler.java index 1e23b52..dec3dcb 100644 --- a/de.tubs.variantsync.core/src/de/tubs/variantsync/core/monitor/CodeMappingHandler.java +++ b/de.tubs.variantsync.core/src/de/tubs/variantsync/core/monitor/CodeMappingHandler.java @@ -278,6 +278,8 @@ private static void addDelta(AST ast, IDelta delta) { } + Chunk original = (Chunk)delta.getOriginal(); + Chunk revised = (Chunk)delta.getRevised(); //Type Change @@ -299,20 +301,54 @@ private static void addDelta(AST ast, IDelta delta) { */ - for(AST line : file) { + String s = ""; + if(revised.getLines().size() > 0 && original.getLines().size() > 0) { + s = "change"; + }else if(revised.getLines().size() > 0) { + s = "deleted"; + }else if(original.getLines().size() > 0) { + s = "added"; + }else { + s = "not defined"; + } + + + + for (int count = 0; count < file.getSubtrees().size(); count++) { + - String strLine = line.getValue(); - chunk = (Chunk)delta.getOriginal(); - List linesOrig = chunk.getLines(); - if(linesOrig.contains(strLine)) { - LogOperations.logRefactor("[addDelta]" + linesOrig.get(linesOrig.indexOf(strLine)) + " strline" + strLine); - } + + + if (count == original.getPosition()-1) { + + for (int i = 0; i < original.getLines().size(); i++) { + file.getSubtrees().remove(count); + } + + for (int i = 0; i < revised.getLines().size(); i++) { + file.getSubtrees().add(count, new AST(LineGrammar.Line, revised.getLines().get(i), delta.getContext())); + count++; + } + + + } + + } + + +// String strLine = line.getValue(); +// chunk = (Chunk)delta.getOriginal(); +// List linesOrig = chunk.getLines(); +// if(linesOrig.contains(strLine)) { +// LogOperations.logRefactor("[addDelta]" + linesOrig.get(linesOrig.indexOf(strLine)) + " strline" + strLine); +// } + for(AST line : file) { String strLine = line.getValue(); - LogOperations.logRefactor("[addDelta] line " + strLine); + System.out.println("[addDelta] line " + strLine); } } diff --git a/de.tubs.variantsync.core/src/de/tubs/variantsync/core/view/editor/PartAdapter.java b/de.tubs.variantsync.core/src/de/tubs/variantsync/core/view/editor/PartAdapter.java index 303b7fb..4909422 100644 --- a/de.tubs.variantsync.core/src/de/tubs/variantsync/core/view/editor/PartAdapter.java +++ b/de.tubs.variantsync.core/src/de/tubs/variantsync/core/view/editor/PartAdapter.java @@ -133,10 +133,10 @@ public IStatus runInUIThread(IProgressMonitor monitor) { if(fileAST != null) { LogOperations.logRefactor("[PA] Found file ast for file " + fileAST.getValue()); - final List markers = new ArrayList<>(ASTLineGrammarProcessor.getMarkers(fileAST)); - if (!markers.isEmpty()) { - MarkerUtils.setMarker(currentFile, markers); - } + //final List markers = new ArrayList<>(ASTLineGrammarProcessor.getMarkers(fileAST)); +// if (!markers.isEmpty()) { +// MarkerUtils.setMarker(currentFile, markers); +// } } return Status.OK_STATUS; diff --git a/de.variantsync.core/src/main/java/de/variantsync/core/ast/AST.java b/de.variantsync.core/src/main/java/de/variantsync/core/ast/AST.java index f5e42f1..8593358 100644 --- a/de.variantsync.core/src/main/java/de/variantsync/core/ast/AST.java +++ b/de.variantsync.core/src/main/java/de/variantsync/core/ast/AST.java @@ -64,6 +64,10 @@ public V getValue() { public G getType() { return type; } + + public void setValue(V v) { + this.value = v; + } /** * @return the subtrees as an unmodifiable List @@ -72,7 +76,8 @@ public List> getSubtrees() { if(subtrees.size() < 1) { return Collections.emptyList(); } - return Collections.unmodifiableList(subtrees); + //return Collections.unmodifiableList(subtrees); + return subtrees; } diff --git a/de.variantsync.core/src/main/java/de/variantsync/core/ast/ASTLineGrammarProcessor.java b/de.variantsync.core/src/main/java/de/variantsync/core/ast/ASTLineGrammarProcessor.java index 2b78bc8..4f77413 100644 --- a/de.variantsync.core/src/main/java/de/variantsync/core/ast/ASTLineGrammarProcessor.java +++ b/de.variantsync.core/src/main/java/de/variantsync/core/ast/ASTLineGrammarProcessor.java @@ -3,8 +3,6 @@ import java.io.File; import java.util.ArrayList; import java.util.List; - - import de.variantsync.core.marker.AMarkerInformation; import de.variantsync.core.marker.IVariantSyncMarker; @@ -16,6 +14,8 @@ public static List getMarkers(AST ast){ for(AST subtree : ast.getSubtrees()) { System.out.println("childs "+ subtree.getValue()); + + //final IVariantSyncMarker variantSyncMarker = new AMarkerInformation(revised.getPosition() - 1, revised.getLines().size() - 1, true); } diff --git a/de.variantsync.core/src/test/java/de/variantsync/core/ASTProcessorTest.java b/de.variantsync.core/src/test/java/de/variantsync/core/ASTProcessorTest.java index 80ad07a..40b4735 100644 --- a/de.variantsync.core/src/test/java/de/variantsync/core/ASTProcessorTest.java +++ b/de.variantsync.core/src/test/java/de/variantsync/core/ASTProcessorTest.java @@ -3,13 +3,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; - import java.util.Arrays; import java.util.List; - import org.junit.Before; import org.junit.Test; - import de.variantsync.core.ast.AST; import de.variantsync.core.ast.ASTLineGrammarProcessor; import de.variantsync.core.ast.LineGrammar; @@ -53,8 +50,7 @@ public void getMarkersTest() { List markers = ASTLineGrammarProcessor.getMarkers(root); - - + assertTrue(true); } diff --git a/de.variantsync.core/src/test/java/de/variantsync/core/ASTTest.java b/de.variantsync.core/src/test/java/de/variantsync/core/ASTTest.java index e704cc7..7414eed 100644 --- a/de.variantsync.core/src/test/java/de/variantsync/core/ASTTest.java +++ b/de.variantsync.core/src/test/java/de/variantsync/core/ASTTest.java @@ -154,10 +154,10 @@ public void addAllOnInitialTest() { assertEquals(oldSize + 2, root.getSubtrees().size()); } - @Test(expected = UnsupportedOperationException.class) - public void addOnSubtreesList() { - root.getSubtrees().add(new AST<>(LineGrammar.Directory, "evilDir")); - } +// @Test(expected = UnsupportedOperationException.class) +// public void addOnSubtreesList() { +// root.getSubtrees().add(new AST<>(LineGrammar.Directory, "evilDir")); +// } @Test public void sizeOnInitialTest() {