diff --git a/de.tu-bs.cs.isf.cbc.mutation/META-INF/MANIFEST.MF b/de.tu-bs.cs.isf.cbc.mutation/META-INF/MANIFEST.MF index 50205ce20..727cfb6cc 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/META-INF/MANIFEST.MF +++ b/de.tu-bs.cs.isf.cbc.mutation/META-INF/MANIFEST.MF @@ -1,26 +1,24 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Mutation -Bundle-SymbolicName: de.tu-bs.cs.isf.cbc.mutation +Bundle-SymbolicName: de.tu-bs.cs.isf.cbc.mutation;singleton:=true Bundle-Version: 1.0.0.qualifier Automatic-Module-Name: de.tu.bs.cs.isf.cbc.mutation Bundle-RequiredExecutionEnvironment: JavaSE-16 -Require-Bundle: org.key_project.core;bundle-version="1.0.0", - org.key_project.util;bundle-version="1.0.0", - de.tu-bs.cs.isf.cbc.util, - org.eclipse.graphiti.mm, - de.tu-bs.cs.isf.cbc.tool, - org.hamcrest.core, - org.junit, - org.eclipse.emf.ecore, - de.tu-bs.cs.isf.cbc.exceptions, +Require-Bundle: org.junit, org.apache.commons.commons-io;bundle-version="2.13.0", - de.tu-bs.cs.isf.cbc.model -Import-Package: de.tu_bs.cs.isf.cbc.cbcmodel, - de.tu_bs.cs.isf.commands.toolbar.handler.family, + org.eclipse.graphiti.ui;bundle-version="0.18.0", + org.eclipse.ui.views.properties.tabbed;bundle-version="3.10.100", + org.eclipse.graphiti;bundle-version="0.18.0" +Import-Package: de.tu_bs.cs.isf.cbc.cbcclass, + de.tu_bs.cs.isf.cbc.cbcmodel, + de.tu_bs.cs.isf.cbc.exceptions, + de.tu_bs.cs.isf.cbc.util, org.eclipse.core.resources, org.eclipse.core.runtime;version="3.7.0", - org.eclipse.graphiti.services;version="0.18.0" + org.eclipse.graphiti.ui.platform;version="0.18.0", + org.eclipse.swt.widgets, + org.eclipse.ui.views.properties.tabbed Export-Package: de.tu_bs.cs.isf.cbc.mutation.feature Bundle-ClassPath: muJava/openjava.jar, . diff --git a/de.tu-bs.cs.isf.cbc.mutation/build.properties b/de.tu-bs.cs.isf.cbc.mutation/build.properties index 5f688abc8..61c689bda 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/build.properties +++ b/de.tu-bs.cs.isf.cbc.mutation/build.properties @@ -2,4 +2,5 @@ source.. = src/ output.. = bin/ bin.includes = META-INF/,\ .,\ - muJava/openjava.jar + muJava/openjava.jar,\ + plugin.xml diff --git a/de.tu-bs.cs.isf.cbc.mutation/plugin.xml b/de.tu-bs.cs.isf.cbc.mutation/plugin.xml new file mode 100644 index 000000000..37fa67ea9 --- /dev/null +++ b/de.tu-bs.cs.isf.cbc.mutation/plugin.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/CbCMutator.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/CbCMutator.java index 6017709e0..3b6541be7 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/CbCMutator.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/CbCMutator.java @@ -2,7 +2,6 @@ import java.io.File; import java.io.IOException; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -17,7 +16,6 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.exceptions.MutatorException; import de.tu_bs.cs.isf.cbc.mutation.op.cbc.CbCMutationOp; import de.tu_bs.cs.isf.cbc.mutation.util.MutatedClass; import de.tu_bs.cs.isf.cbc.util.CopyDiagram; @@ -25,17 +23,8 @@ public class CbCMutator extends Mutator { private Condition condition; private String targetId; - private int totalMutantNum; private int curPos; - private int test = 0; - - public CbCMutator(List operators) { - super(operators); - curPos = 0; - totalMutantNum = 0; - } - @Override public void mutate(Diagram diagram, Condition condition) throws Exception { this.condition = condition; @@ -57,10 +46,14 @@ protected void generateDiagrams() throws Exception { this.curPos++; } } - + + protected CbCMutator(List operators) { + super(operators); + curPos = 0; + } + private void generateMutants() throws Exception { applyMutationOperators(); - //generateMutantNames(totalMutantNum); MutatedClass mc = new MutatedClass(this); mc.generate(); } @@ -69,22 +62,12 @@ private void applyMutationOperators() throws Exception { for (String opStr : operators) { CbCMutationOp op = CbCMutationOp.get(opStr); mutants = op.apply(condition); - totalMutantNum += mutants.length; generateDiagrams(); } } - /* - private void generateMutantNames(int size) { - mutantNames = new String[size]; - for (int i = 0; i < size; i++) { - mutantNames[i] = this.originalDiagram.getName() + "Mutant" + i; - } - }*/ - private void applyMutationsToDiagrams(Resource resource, String mutant) throws IOException { CbCFormula formula = this.getFormulaFrom(resource); - // TODO: set everything to uproven. unproveEverything(formula.getStatement()); Condition c = findConditionIn(formula.getStatement()); if (c == null) { diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/ImplMutator.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/ImplMutator.java index 6bd671e46..b4ce42462 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/ImplMutator.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/ImplMutator.java @@ -14,8 +14,12 @@ import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.graphiti.mm.pictograms.Diagram; +import de.tu_bs.cs.isf.cbc.util.ClassHandler; +import de.tu_bs.cs.isf.cbc.util.CodeGenerator; +import de.tu_bs.cs.isf.cbc.util.CodeHandler; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.CopyDiagram; +import de.tu_bs.cs.isf.cbc.util.DiffChecker; import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; @@ -25,13 +29,9 @@ import de.tu_bs.cs.isf.cbc.mutation.util.CodeRepresentationFinder; import de.tu_bs.cs.isf.cbc.mutation.util.DirectoryCreator; import de.tu_bs.cs.isf.cbc.mutation.util.MutatedClass; -import de.tu_bs.cs.isf.cbc.tool.helper.ClassHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.CodeGenerator; -import de.tu_bs.cs.isf.cbc.tool.helper.CodeHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.DiffChecker; -import de.tu_bs.cs.isf.cbc.tool.helper.LinePair; -import de.tu_bs.cs.isf.cbc.tool.helper.MethodHandler; import de.tu_bs.cs.isf.cbc.util.FileUtil; +import de.tu_bs.cs.isf.cbc.util.LinePair; +import de.tu_bs.cs.isf.cbc.util.MethodHandler; import src.mujava.AllMutantsGenerator; import src.mujava.MutationSystem; import src.mujava.OpenJavaException; @@ -40,10 +40,6 @@ public class ImplMutator extends Mutator { private String originalCode; - public ImplMutator(List operators) { - super(operators); - } - @Override public void mutate(Diagram diagramToMutate, Condition condition) throws Exception { setup(diagramToMutate); @@ -58,10 +54,9 @@ public void mutate(Diagram diagramToMutate, Condition condition) throws Exceptio @Override protected void generateDiagrams() throws CodeRepresentationFinderException, IOException, CoreException, MutatorException, FileHandlerException { - String originalCode = getOriginalCode(); DiffChecker dc = new DiffChecker(); for (String mutant : mutants) { - dc.check(originalCode, mutant); + dc.check(getOriginalCode(), mutant); LinePair diffLine = dc.nextDiff(); applyMutation(diffLine); } @@ -69,7 +64,10 @@ protected void generateDiagrams() throws CodeRepresentationFinderException, IOEx mc.generate(); } - + protected ImplMutator(List operators) { + super(operators); + } + protected void generateFiles() throws IOException, OpenJavaException { String location = setupMuJava(); File targetFile = generateFile(location, getOriginalDiagram().getName(), originalCode); @@ -96,7 +94,7 @@ protected String getOriginalCode() { protected String constructCode() throws Exception { ClassHandler ch = new ClassHandler(this.className, this.classUri); - String diagramAsCode = CodeGenerator.getInstance().generateCodeFor(getOriginalDiagram()); + String diagramAsCode = CodeGenerator.instance.generateCodeFor(getOriginalDiagram()); String signature = MethodHandler.getSignatureFromCode(diagramAsCode); String contract = MethodHandler.getContractFromCode(diagramAsCode, signature); MethodHandler mh = new MethodHandler(contract, signature, diagramAsCode); @@ -105,7 +103,7 @@ protected String constructCode() throws Exception { } protected String setupMuJava() { - String location = FileUtil.getProjectLocation(getOriginalDiagram().eResource().getURI()) + File.separator + FOLDER_NAME; + String location = FileUtil.getProjectLocation(getOriginalDiagram().eResource().getURI()) + File.separator + getFolderName(); MutationSystem.CLASS_NAME = className; setMuJavaPaths(location); makeMuJavaStructure.main(null); diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/Mutator.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/Mutator.java index e3afd7a17..c84bffcde 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/Mutator.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/feature/Mutator.java @@ -2,19 +2,14 @@ import java.io.File; import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.List; import java.util.stream.Collectors; -import org.apache.commons.io.FileUtils; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EObject; @@ -26,19 +21,19 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.exceptions.FileHandlerException; +import de.tu_bs.cs.isf.cbc.mutation.op.cbc.CbCMutationOp; +import de.tu_bs.cs.isf.cbc.mutation.op.cbc.NOOP; import de.tu_bs.cs.isf.cbc.mutation.util.FileReader; import de.tu_bs.cs.isf.cbc.mutation.util.JavaDirectoryLoader; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.tool.helper.FileHandler; -import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; +import de.tu_bs.cs.isf.cbc.util.FileHandler; import de.tu_bs.cs.isf.cbc.util.FileUtil; import src.mujava.MutationSystem; public abstract class Mutator { - public static String PW_RENAME = "Pre Boundaries"; - public static String PS_RENAME = "Post Boundaries"; - public static String FOLDER_NAME = "mutations"; + private static final String PW_RENAME = "Pre Boundaries"; + private static final String PS_RENAME = "Post Boundaries"; + private static final String FOLDER_NAME = "mutations"; protected String[] operators; protected int mutationCount; @@ -51,21 +46,26 @@ public abstract class Mutator { protected String className; private boolean hasClass; - public Mutator(List operators) { - this.setMutantDiagrams(new ArrayList()); - this.operators = new String[operators.size()]; - this.mutationCount = 0; - for (int i = 0; i < operators.size(); i++) { - if (operators.get(i).equals(PW_RENAME)) { - this.operators[i] = "PW"; - } else if (operators.get(i).equals(PS_RENAME)) { - this.operators[i] = "PS"; - } else { - this.operators[i] = operators.get(i); - } + public static Mutator get(List operators) { + if(operators.stream().anyMatch(o -> !(CbCMutationOp.get(o) instanceof NOOP))) { + return new CbCMutator(operators); + } else { + return new ImplMutator(operators); } } + public static String getPwRename() { + return PW_RENAME; + } + + public static String getPsRename() { + return PS_RENAME; + } + + public static String getFolderName() { + return FOLDER_NAME; + } + public IFolder getMutationFolder() { return this.mutationFolder; } @@ -74,30 +74,32 @@ public Diagram getOriginalDiagram() { return originalDiagram; } - private void setOriginalDiagram(Diagram diagram) { - this.originalDiagram = diagram; - } - public List getMutantDiagrams() { return mutantDiagrams; } - private void setMutantDiagrams(List mutantDiagrams) { - this.mutantDiagrams = mutantDiagrams; - } - public boolean hasClass() { return hasClass; } - - private void setHasClass(boolean hasClass) { - this.hasClass = hasClass; - } - public void mutate(Diagram diagram, Condition condition) throws Exception {} protected void generateDiagrams() throws Exception {} + protected Mutator(List operators) { + this.setMutantDiagrams(new ArrayList<>()); + this.operators = new String[operators.size()]; + this.mutationCount = 0; + for (int i = 0; i < operators.size(); i++) { + if (operators.get(i).equals(PW_RENAME)) { + this.operators[i] = "PW"; + } else if (operators.get(i).equals(PS_RENAME)) { + this.operators[i] = "PS"; + } else { + this.operators[i] = operators.get(i); + } + } + } + protected void setup(Diagram diagram) throws CoreException, FileHandlerException { this.setOriginalDiagram(diagram); this.mutantBaseName = this.getOriginalDiagram().getName() + "Mutant"; @@ -106,9 +108,7 @@ protected void setup(Diagram diagram) throws CoreException, FileHandlerException className = className.isEmpty() ? "NoClass" : className; deleteMutationFiles(); mutationFolder = getClassFolder(getOriginalDiagram()).getFolder(FOLDER_NAME); - //mutationFolder = FileHandler.getInstance().getFolder(originalDiagram.eResource().getURI(), FOLDER_NAME); - FileHandler.getInstance().deleteFolder(mutationFolder); - //FileHandler.getInstance().createFolder(originalDiagram.eResource().getURI(), FOLDER_NAME); + FileHandler.instance.deleteFolder(mutationFolder); mutationFolder.create(true, true, null); mutationFolder.refreshLocal(2, null); } @@ -129,6 +129,18 @@ protected String[] readCode(File[] mutants) throws FileNotFoundException { } return codes; } + + private void setHasClass(boolean hasClass) { + this.hasClass = hasClass; + } + + private void setMutantDiagrams(List mutantDiagrams) { + this.mutantDiagrams = mutantDiagrams; + } + + private void setOriginalDiagram(Diagram diagram) { + this.originalDiagram = diagram; + } private String mergeElseIfs(String code) { String[] lines = code.split("\\n"); @@ -151,7 +163,7 @@ private String mergeElseIfs(String code) { } protected void cleanUp() throws CoreException { - FileHandler.getInstance().deleteFolder(classUri, FOLDER_NAME); + FileHandler.instance.deleteFolder(classUri, FOLDER_NAME); this.mutationFolder.refreshLocal(2, null); } @@ -185,7 +197,7 @@ private void deleteMutationFiles() throws CoreException { private IFolder getClassFolder(Diagram diagram) throws FileHandlerException { URI diagUri = diagram.eResource().getURI(); IProject project = FileUtil.getProject(diagUri); - ModelClass clazz = FileHandler.getInstance().getClassOf(diagram); + ModelClass clazz = FileHandler.instance.getClassOf(diagram); String folderPath = ""; if (clazz == null) { folderPath = diagUri.trimSegments(1).toPlatformString(true); @@ -195,7 +207,6 @@ private IFolder getClassFolder(Diagram diagram) throws FileHandlerException { } else { for (int i = clazz.eResource().getURI().segmentCount() - 2; i >= 0; i--) { if (clazz.eResource().getURI().segment(i).equals(project.getName())) { - //folderPath = "/" + clazz.eResource().getURI().segment(i-1) + folderPath; break; } folderPath = "/" + clazz.eResource().getURI().segment(i) + folderPath; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CAORB.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CAORB.java index 1520cfcd9..411e4f9d8 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CAORB.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CAORB.java @@ -1,7 +1,6 @@ package de.tu_bs.cs.isf.cbc.mutation.op.cbc; import java.util.Arrays; -import java.util.List; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.exceptions.MutatorException; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOD.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOD.java index a8ab2e1f5..d68325ecf 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOD.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOD.java @@ -1,7 +1,6 @@ package de.tu_bs.cs.isf.cbc.mutation.op.cbc; import java.util.Arrays; -import java.util.List; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.exceptions.MutatorException; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOR.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOR.java index 98b97bc39..291718833 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOR.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CCOR.java @@ -1,7 +1,6 @@ package de.tu_bs.cs.isf.cbc.mutation.op.cbc; import java.util.Arrays; -import java.util.List; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.exceptions.MutatorException; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CLOR.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CLOR.java index 471a0ae29..ec0e41a75 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CLOR.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CLOR.java @@ -1,7 +1,6 @@ package de.tu_bs.cs.isf.cbc.mutation.op.cbc; import java.util.Arrays; -import java.util.List; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.exceptions.MutatorException; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CROR.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CROR.java index 241be5e92..a19c4c54f 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CROR.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CROR.java @@ -1,7 +1,6 @@ package de.tu_bs.cs.isf.cbc.mutation.op.cbc; import java.util.Arrays; -import java.util.List; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.exceptions.MutatorException; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CbCMutationOp.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CbCMutationOp.java index 08a9ad2b3..f7ae5eb94 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CbCMutationOp.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/op/cbc/CbCMutationOp.java @@ -14,7 +14,7 @@ public abstract class CbCMutationOp { int opToMutateStart; int opToMutateEnd; - public static CbCMutationOp get(String opName) throws MutatorException { + public static CbCMutationOp get(String opName) { switch (opName) { case "CAORB": return new CAORB(); diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/propertiesview/MutationFilter.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/propertiesview/MutationFilter.java new file mode 100644 index 000000000..63353bd60 --- /dev/null +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/propertiesview/MutationFilter.java @@ -0,0 +1,14 @@ +package de.tu_bs.cs.isf.cbc.mutation.propertiesview; + +import org.eclipse.graphiti.mm.pictograms.PictogramElement; +import org.eclipse.graphiti.ui.platform.AbstractPropertySectionFilter; + +public class MutationFilter extends AbstractPropertySectionFilter { + @Override + protected boolean accept(PictogramElement pictogramElement) { + if (pictogramElement != null) { + return true; + } + return false; + } +} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/MutationSection.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/propertiesview/MutationSection.java similarity index 85% rename from de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/MutationSection.java rename to de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/propertiesview/MutationSection.java index d1bcd5dcd..cb67c23a1 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/MutationSection.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/propertiesview/MutationSection.java @@ -1,17 +1,8 @@ -package de.tu_bs.cs.isf.cbc.tool.propertiesview; +package de.tu_bs.cs.isf.cbc.mutation.propertiesview; -import java.awt.GridBagConstraints; -import java.io.File; -import java.io.IOException; import java.util.ArrayList; import java.util.List; -import de.tu_bs.cs.isf.cbc.util.FileUtil; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.IPath; -import org.eclipse.emf.common.util.URI; -import org.eclipse.graphiti.mm.pictograms.PictogramElement; import org.eclipse.graphiti.ui.platform.GFPropertySection; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; @@ -20,28 +11,17 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IEditorInput; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.mutation.feature.CbCMutator; -import de.tu_bs.cs.isf.cbc.mutation.feature.ImplMutator; import de.tu_bs.cs.isf.cbc.mutation.feature.Mutator; -import de.tu_bs.cs.isf.cbc.tool.diagram.CbCDiagramTypeProvider; -import de.tu_bs.cs.isf.cbc.tool.helper.Colors; +import de.tu_bs.cs.isf.cbc.util.Console; /** * Class for the Mutation-Tab of the Properties-View. @@ -93,8 +73,8 @@ public class MutationSection extends GFPropertySection implements ITabbedPropert // Contract Mutation Operators private final String[] contractOperators = new String[] { - Mutator.PW_RENAME + " | ==, >, <, >=, <=, &&, forall", - Mutator.PS_RENAME + " | >=, <=, !=, >, <, ||, exists" + Mutator.getPwRename() + " | ==, >, <, >=, <=, &&, forall", + Mutator.getPsRename() + " | >=, <=, !=, >, <, ||, exists" }; // CbC Mutation Operators @@ -111,6 +91,7 @@ public class MutationSection extends GFPropertySection implements ITabbedPropert public void createControls(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) { super.createControls(parent, tabbedPropertySheetPage); + Console.println("JKLSDJFSKLDJ"); this.parent = parent; this.tabbedPropertySheetPage = tabbedPropertySheetPage; TabbedPropertySheetWidgetFactory factory = getWidgetFactory(); @@ -150,7 +131,8 @@ public void createControls(Composite parent, TabbedPropertySheetPage tabbedPrope @Override public void refresh() { - this.cbcGroup.setLocation(5, 5); + //this.cbcGroup.setLocation(5, 5); + /* CbCDiagramTypeProvider diagramProvider = new CbCDiagramTypeProvider(); PictogramElement pe = getSelectedPictogramElement(); var bo = diagramProvider.getFeatureProvider().getBusinessObjectForPictogramElement(pe); @@ -160,13 +142,13 @@ public void refresh() { this.generateBtn.setLocation(this.cbcGroup.getLocation().x, this.cbcGroup.getLocation().y + this.cbcGroup.getSize().y + 5); this.contractGroup.setVisible(false); this.implGroup.setVisible(false); - } else { + } else {*/ this.generateBtn.setLocation(this.implGroup.getLocation().x, this.implGroup.getLocation().y + this.implGroup.getSize().y + 5); this.selectedCondition = null; this.cbcGroup.setVisible(false); this.contractGroup.setVisible(true); this.implGroup.setVisible(true); - } + //} } private Group createButtonGroup(Composite parent, String name) { @@ -226,10 +208,10 @@ private void addSelectedOperators(Button btn, List ops) { } private void generateMutatedDiagrams(List ops) throws Exception { - ImplMutator implMutator = new ImplMutator(ops); + Mutator implMutator = Mutator.get(ops); implMutator.mutate(getDiagram(), null); if (this.selectedCondition != null) { - CbCMutator cbcMutator = new CbCMutator(ops); + Mutator cbcMutator = Mutator.get(ops); cbcMutator.mutate(getDiagram(), this.selectedCondition); } } diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/FileReader.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/FileReader.java index 361ce9be7..621ae4563 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/FileReader.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/FileReader.java @@ -4,7 +4,7 @@ import java.io.FileNotFoundException; import java.util.Scanner; -import de.tu_bs.cs.isf.cbc.tool.helper.CodeHandler; +import de.tu_bs.cs.isf.cbc.util.CodeHandler; public class FileReader { private Scanner scanner; diff --git a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/MutatedClass.java b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/MutatedClass.java index 6cf6701db..0d3b3ce39 100644 --- a/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/MutatedClass.java +++ b/de.tu-bs.cs.isf.cbc.mutation/src/de/tu_bs/cs/isf/cbc/mutation/util/MutatedClass.java @@ -4,8 +4,6 @@ import java.io.IOException; import java.util.Collections; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; @@ -20,10 +18,9 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; import de.tu_bs.cs.isf.cbc.exceptions.FileHandlerException; import de.tu_bs.cs.isf.cbc.mutation.feature.Mutator; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.tool.helper.FileHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.MethodHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateDiagram; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; +import de.tu_bs.cs.isf.cbc.util.FileHandler; +import de.tu_bs.cs.isf.cbc.util.MethodHandler; public class MutatedClass { private Mutator mutator; @@ -42,7 +39,7 @@ public void generate() throws IOException, CoreException, FileHandlerException { if (!mutator.hasClass()) { return; } - ModelClass clazz = FileHandler.getInstance().getClassOf(mutator.getOriginalDiagram()); + ModelClass clazz = FileHandler.instance.getClassOf(mutator.getOriginalDiagram()); copyClass(clazz); addMutatedMethods(); } diff --git a/de.tu-bs.cs.isf.cbc.tool/META-INF/MANIFEST.MF b/de.tu-bs.cs.isf.cbc.tool/META-INF/MANIFEST.MF index 77bc39501..14092e4be 100644 --- a/de.tu-bs.cs.isf.cbc.tool/META-INF/MANIFEST.MF +++ b/de.tu-bs.cs.isf.cbc.tool/META-INF/MANIFEST.MF @@ -3,49 +3,34 @@ Bundle-ManifestVersion: 2 Bundle-Name: Tool Bundle-SymbolicName: de.tu-bs.cs.isf.cbc.tool;singleton:=true Bundle-Version: 1.0.0.qualifier -Bundle-RequiredExecutionEnvironment: JavaSE-1.8 +Bundle-RequiredExecutionEnvironment: JavaSE-16, + JavaSE-1.8 Require-Bundle: org.eclipse.graphiti, - org.eclipse.graphiti.examples.common, org.eclipse.graphiti.ui, org.eclipse.ui.views.properties.tabbed, - org.eclipse.core.resources, - org.eclipse.core.runtime, - de.tu-bs.cs.isf.cbc.model, org.eclipse.graphiti.pattern, - org.eclipse.emf.ecore.xmi, org.eclipse.emf.transaction, - de.tu-bs.cs.isf.cbc.util, org.eclipse.xtext;bundle-version="2.10.0", - org.eclipse.xtext.xbase, - org.eclipse.emf.common, org.eclipse.draw2d;bundle-version="3.10.100", org.emftext.language.java, - org.eclipse.jdt.core, - de.tu_bs.cs.isf.cbc.statistics, - org.eclipse.graphiti.mm, - org.eclipse.swt, de.ovgu.featureide.fm.core, org.eclipse.mylyn.commons.ui, - org.eclipse.ui.workbench, org.testng;bundle-version="7.4.0", - org.key_project.core, - de.tu_bs.cs.isf.commands.toolbar, - de.tu-bs.cs.isf.cbc.mutation, - de.tu-bs.cs.isf.cbc.exceptions, - de.tu_bs.cs.isf.cbc.parser, - de.tu_bs.cs.isf.lattice + de.tu-bs.cs.isf.cbc.util;bundle-version="1.0.0" Import-Package: de.ovgu.featureide.fm.core.base, - org.eclipse.jdt.core.dom, - org.emftext.language.java.resource.java.util, de.ovgu.featureide.fm.core.io.manager, - org.eclipse.compare.internal, - org.eclipse.emf.common.ui, - org.eclipse.jdt.core, - org.key_project.util.collection + de.tu_bs.cs.isf.cbc.cbcclass, + de.tu_bs.cs.isf.cbc.cbcmodel, + de.tu_bs.cs.isf.cbc.cbcmodel.impl, + de.tu_bs.cs.isf.cbc.exceptions, + de.tu_bs.cs.isf.cbc.parser.exceptions, + de.tu_bs.cs.isf.cbc.statistics, + de.tu_bs.cs.isf.commands.toolbar.handler.family, + de.tu_bs.cs.isf.lattice, + org.eclipse.emf.common.ui Export-Package: de.tu_bs.cs.isf.cbc.tool.diagram, de.tu_bs.cs.isf.cbc.tool.features, de.tu_bs.cs.isf.cbc.tool.helper, - de.tu_bs.cs.isf.cbc.tool.model, de.tu_bs.cs.isf.cbc.tool.patterns, de.tu_bs.cs.isf.cbc.tool.propertiesview Bundle-ClassPath: lib/com.microsoft.z3.jar, diff --git a/de.tu-bs.cs.isf.cbc.tool/plugin.xml b/de.tu-bs.cs.isf.cbc.tool/plugin.xml index f473a65f0..fa09d2ae4 100644 --- a/de.tu-bs.cs.isf.cbc.tool/plugin.xml +++ b/de.tu-bs.cs.isf.cbc.tool/plugin.xml @@ -53,11 +53,6 @@ id="Testing" label="Testing"> - - - - (); final var abstractMethods = new ArrayList(); - if (FileHandler.getInstance().isSPL(uri)) { + if (FileHandler.instance.isSPL(uri)) { if (code.contains("original(")) { TestUtilSPL.getInstance().handleOriginalCode(this.getFeatureProvider(), projectPath, code, features, originalMethods, formula.getMethodObj().getSignature(), vars); code = code.replaceAll("original\\(", originalMethods.get(0).getMethodName() + "("); @@ -265,12 +259,12 @@ private boolean test(final URI uri, final CbCFormula formula, final JavaVariable } List classCodes; String postCon = ConditionHandler.replaceResultKeyword(formula.getStatement().getPostCondition().getName(), returnVariable); - if (FileHandler.getInstance().isSPL(projectPath)) { + if (FileHandler.instance.isSPL(projectPath)) { boolean isPreCon = false; postCon = TestUtilSPL.getInstance().handleOriginalCondition(this.getFeatureProvider(), postCon, isPreCon, features); } classCodes = genAllDependenciesOfMethod(code, methodSig, className, postCon); - if (FileHandler.getInstance().isSPL(uri)) { + if (FileHandler.instance.isSPL(uri)) { TestUtilSPL.getInstance().addNewMethods(classCodes, className, originalMethods, abstractMethods); } if(!compileFileContents2(classCodes, methodToGenerate.getName())) { @@ -287,7 +281,7 @@ private boolean test(final URI uri, final CbCFormula formula, final JavaVariable String testFileContent; String preCon = ConditionParser.parseConditions(globalConditions, formula.getStatement().getPreCondition()); - if (FileHandler.getInstance().isSPL(projectPath)) { + if (FileHandler.instance.isSPL(projectPath)) { boolean isPreCon = true; preCon = TestUtilSPL.getInstance().handleOriginalCondition(this.getFeatureProvider(), preCon, isPreCon, features); } @@ -299,7 +293,7 @@ private boolean test(final URI uri, final CbCFormula formula, final JavaVariable } testFileContent = genTestCases(className, inputs, postCon, globalConditions, formula); testFileContent = CodeHandler.addInstanceNameToFields(ClassHandler.getClassByName(classCodes, className), testFileContent); - FileHandler.getInstance().writeToFile(this.projectPath, className + "Test.java", testFileContent); + FileHandler.instance.writeToFile(this.projectPath, className + "Test.java", testFileContent); executeTestCases("file://" + FileUtil.getProjectLocation(uri) + "/tests/", className + "Test.java", globalVars, inputs); return true; } @@ -935,7 +929,7 @@ private String generateCode(CbCFormula formula, GlobalConditions globalCondition } if (formula.getMethodObj() == null) { - className = GENERATED_CLASSNAME; + className = ClassHandler.GENERATED_CLASSNAME; } else { className = formula.getMethodObj().getParentClass().getName(); } @@ -1358,7 +1352,7 @@ public List genInputs(final String preconditions, final JavaVariab if (v.contains("[")) { if (v.lastIndexOf("]") == -1) { Console.printWarn("TestAndAssertionGeneratorWarning: Syntax of variable '" + v + "' is not correct."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionGeneratorWarning: Syntax of variable '" + v + "' is not correct."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionGeneratorWarning: Syntax of variable '" + v + "' is not correct."); continue; } v = v.substring(0, v.indexOf("[")) + v.substring(v.lastIndexOf("]") + 1, v.length()); @@ -1388,6 +1382,25 @@ public List genInputs(final String preconditions, final JavaVariab } return output; } + + private static String handlePrimitiveArrayUses(String output, String fullVarName, String val, int numTabs) { + final Pattern p = Pattern.compile("[^\\s]+" + Pattern.quote(TestAndAssertionGenerator.ARRAY_TOKEN)); + Matcher m = p.matcher(val); + + while(m.find()) { + String helper = val.substring(m.start(), val.length()); + int start = m.start() + m.group(0).indexOf(TestAndAssertionGenerator.ARRAY_TOKEN); + int end = helper.indexOf(TestAndAssertionGenerator.ARRAY_CLOSED_TOKEN) + m.start(); + String type = m.group(0).substring(0, m.group(0).indexOf(";")); + String name = m.group(0).substring(m.group(0).indexOf(";") + 1, m.group(0).indexOf(TestAndAssertionGenerator.ARRAY_TOKEN)); + String value = val.substring(start + TestAndAssertionGenerator.ARRAY_TOKEN.length(), end); + output = "\n" + CodeHandler.getTabs(numTabs) + type + " " + name + " = " + value + ";" + output; + final var toReplace = val.substring(m.start(), end + TestAndAssertionGenerator.ARRAY_CLOSED_TOKEN.length()); + val = val.replace(toReplace, name); + m = p.matcher(val); + } + return output + CodeHandler.getTabs(numTabs) + "public " + fullVarName + " = " + val + ";\n"; + } private String genTestCases(final String className, final List inputs, final String postCondition, final GlobalConditions conds, final CbCFormula formula) throws TestStatementException, UnexpectedTokenException, SettingsException { var instanceName = Character.toLowerCase(className.charAt(0)) + className.substring(1, className.length()); @@ -1408,7 +1421,7 @@ private String genTestCases(final String className, final List inp for (InputData data : test.getInputDataTupel().getAllVars()) { if (data.getRep().contains(ARRAY_TOKEN)) { //private String handlePrimitiveArrayUses(String output, String fullVarName, String val) - var toAdd = CodeHandler.handlePrimitiveArrayUses("", data.getType() + " " + data.getName(), data.getRep(), 2); + var toAdd = handlePrimitiveArrayUses("", data.getType() + " " + data.getName(), data.getRep(), 2); var lines = toAdd.split("\\t\\t"); var newRep = lines[lines.length-1].substring(lines[lines.length-1].indexOf("new"), lines[lines.length-1].lastIndexOf(";")); data.setRep(newRep); @@ -1779,7 +1792,7 @@ private String getVariableType(String code, String varName, String className) { if (varType.equals("")) { // this should never happen. Console.printWarn("TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); return ""; } return varType; @@ -1807,7 +1820,7 @@ private String getVariableType(String code, String varName, String className) { if (varType.equals("")) { // this should never happen. Console.printWarn("TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); return ""; } return varType; @@ -1816,7 +1829,7 @@ private String getVariableType(String code, String varName, String className) { potentialVarType = code.substring(0, charIndexBefore); if (potentialVarType.lastIndexOf(' ') == -1) { Console.printWarn("TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); return ""; } potentialVarType = potentialVarType.substring(potentialVarType.lastIndexOf(' ') + 1, potentialVarType.length()); @@ -1832,13 +1845,13 @@ private String getVariableType(String code, String varName, String className) { } else { // this shouldn't happen because the syntax of the code would not be correct. Console.printWarn("TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); return ""; } } } Console.printWarn("TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionGeneratorWarning: Variable type of variable " + varName + " couldn't be found."); return ""; } @@ -1979,7 +1992,7 @@ private boolean isExternalClass(String className) { } private Diagram loadDiagramFromClass(String className, String diagramName) { - return FileHandler.getInstance().loadDiagramFromClass(this.projectPath, className, className, diagramName); + return FileHandler.instance.loadDiagramFromClass(this.projectPath, className, className, diagramName); } private List findAllDistinctWords(String code, char wordDelim) { @@ -2111,7 +2124,7 @@ public boolean compileFileContents(List fileContents, String methodToGen var className = code.split("public\\sclass\\s")[1].split("\\s", 2)[0]; className = className.replaceAll("\\{", ""); var fullClassName = FileUtil.getProjectLocation(this.projectPath) + "/tests/" + className + ".java"; - FileHandler.getInstance().createFile(this.projectPath, className, code); + FileHandler.instance.createFile(this.projectPath, className, code); dependencies.add(fullClassName); } @@ -2126,7 +2139,7 @@ public boolean compileFileContents(List fileContents, String methodToGen Console.println(); Console.println(" > Syntax error detected.", Colors.RED); Console.println("\t" + errorMsg.toString()); - FileHandler.getInstance().log(dependencies.get(0)); + FileHandler.instance.log(dependencies.get(0)); Console.println(); } for (var code : fileContents) { @@ -2154,7 +2167,7 @@ public boolean compileFileContents2(List fileContents, String meth for (var clazz : fileContents) { var className = clazz.getClassName(); var fullClassName = FileUtil.getProjectLocation(this.projectPath) + "/tests/" + className + ".java"; - FileHandler.getInstance().createFile(this.projectPath, className, clazz.getCode()); + FileHandler.instance.createFile(this.projectPath, className, clazz.getCode()); dependencies.add(fullClassName); } @@ -2435,7 +2448,7 @@ private String getSignatureOfLoadedFile(String className, String methodName, int var javaFile = new File(FileUtil.getProjectLocation(projectPath) + "/src/" + className + ".java"); var destination = new File(FileUtil.getProjectLocation(projectPath) + "/tests/" + className + ".java"); if (!javaFile.exists()) { - if (FileHandler.getInstance().isSPL(projectPath)) { + if (FileHandler.instance.isSPL(projectPath)) { javaFile = new File(FileUtil.getProjectLocation(projectPath) + "/src_gen/" + className + ".java"); if (!javaFile.exists()) { return ""; @@ -2444,7 +2457,7 @@ private String getSignatureOfLoadedFile(String className, String methodName, int return ""; } } - FileHandler.getInstance().deleteFile(this.projectPath, className); + FileHandler.instance.deleteFile(this.projectPath, className); try { Files.copy(javaFile.toPath(), destination.toPath()); } catch (IOException e) { @@ -2562,7 +2575,7 @@ private String getCodeOfSignatureOfLoadedFile(String className, String signature var javaFile = new File(FileUtil.getProjectLocation(projectPath) + "/src/" + className + ".java"); var destination = new File(FileUtil.getProjectLocation(projectPath) + "/tests/" + className + ".java"); if (!javaFile.exists()) { - if (FileHandler.getInstance().isSPL(projectPath)) { + if (FileHandler.instance.isSPL(projectPath)) { javaFile = new File(FileUtil.getProjectLocation(projectPath) + "/src_gen/" + className + ".java"); if (!javaFile.exists()) { return ""; @@ -2571,7 +2584,7 @@ private String getCodeOfSignatureOfLoadedFile(String className, String signature return ""; } } - FileHandler.getInstance().deleteFile(this.projectPath, className); + FileHandler.instance.deleteFile(this.projectPath, className); try { Files.copy(javaFile.toPath(), destination.toPath()); } catch (IOException e) { @@ -2734,7 +2747,7 @@ public HashMap> getCalledMethods(String code, String m final var type = getVariableType(code, varName, className); if (type.isEmpty()) { Console.printWarn("TestAndAssertionWarning: Couldn't get type of variable '" + varName + "'."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionWarning: Couldn't get type of variable '" + varName + "'."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionWarning: Couldn't get type of variable '" + varName + "'."); matchee = matchee.replaceFirst("\\(", ""); start = matchee.indexOf("("); continue; @@ -2761,7 +2774,7 @@ public HashMap> getCalledMethods(String code, String m final var type = getVariableType(code, varName, className); if (type.isEmpty()) { Console.printWarn("TestAndAssertionWarning: Couldn't get type of variable '" + varName + "'."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionWarning: Couldn't get type of variable '" + varName + "'."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionWarning: Couldn't get type of variable '" + varName + "'."); matchee = matchee.replaceFirst("\\(", ""); start = matchee.indexOf("("); continue; @@ -2797,7 +2810,7 @@ public HashMap> getCalledMethods(String code, String m var cSig = getConstructorSig(classCode, methodName, numParams); if (cSig == null) { Console.printWarn("TestAndAssertionWarning: Couldn't get the signature of the constructor '" + methodName + "' which has " + numParams + " parameters."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionWarning: Couldn't get the signature of the constructor '" + methodName + "' which has " + numParams + " parameters."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionWarning: Couldn't get the signature of the constructor '" + methodName + "' which has " + numParams + " parameters."); matchee = matchee.replaceFirst("\\(", ""); start = matchee.indexOf("("); continue; @@ -2814,7 +2827,7 @@ public HashMap> getCalledMethods(String code, String m final var methodSig = getMethodSignature(type, methodName, numParams); if (methodSig.isEmpty()) { Console.printWarn("TestAndAssertionWarning: Couldn't find signature for method '" + methodName + "'."); - FileHandler.getInstance().log(this.projectPath, "TestAndAssertionWarning: Couldn't find signature for method '" + methodName + "'."); + FileHandler.instance.log(this.projectPath, "TestAndAssertionWarning: Couldn't find signature for method '" + methodName + "'."); matchee = matchee.replaceFirst("\\(", ""); start = matchee.indexOf("("); continue; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/TestStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/TestStatement.java index 532b66336..0fa0c0d57 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/TestStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/TestStatement.java @@ -48,28 +48,28 @@ import de.tu_bs.cs.isf.cbc.exceptions.TestAndAssertionGeneratorException; import de.tu_bs.cs.isf.cbc.exceptions.TestStatementException; import de.tu_bs.cs.isf.cbc.exceptions.UnexpectedTokenException; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.ClassHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.CodeHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.Colors; import de.tu_bs.cs.isf.cbc.tool.helper.ConditionHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.tool.helper.Features; -import de.tu_bs.cs.isf.cbc.tool.helper.InputData; -import de.tu_bs.cs.isf.cbc.tool.helper.JavaCondition; -import de.tu_bs.cs.isf.cbc.tool.helper.MethodHandler; import de.tu_bs.cs.isf.cbc.tool.helper.PreConditionSolver; import de.tu_bs.cs.isf.cbc.tool.helper.TestStatementListener; -import de.tu_bs.cs.isf.cbc.tool.helper.TestUtilSPL; -import de.tu_bs.cs.isf.cbc.tool.helper.Token; -import de.tu_bs.cs.isf.cbc.tool.helper.TokenType; -import de.tu_bs.cs.isf.cbc.tool.helper.Tokenizer; -import de.tu_bs.cs.isf.cbc.tool.helper.FileHandler; -import de.tu_bs.cs.isf.cbc.tool.helper.Variable; +import de.tu_bs.cs.isf.cbc.util.ClassHandler; +import de.tu_bs.cs.isf.cbc.util.CodeHandler; +import de.tu_bs.cs.isf.cbc.util.Colors; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; +import de.tu_bs.cs.isf.cbc.util.Features; +import de.tu_bs.cs.isf.cbc.util.FileHandler; import de.tu_bs.cs.isf.cbc.util.FileUtil; -import diagnostics.DataCollector; -import diagnostics.DataType; +import de.tu_bs.cs.isf.cbc.util.InputData; +import de.tu_bs.cs.isf.cbc.util.JavaCondition; +import de.tu_bs.cs.isf.cbc.util.MethodHandler; +import de.tu_bs.cs.isf.cbc.util.TestUtilSPL; +import de.tu_bs.cs.isf.cbc.util.Token; +import de.tu_bs.cs.isf.cbc.util.TokenType; +import de.tu_bs.cs.isf.cbc.util.Tokenizer; +import de.tu_bs.cs.isf.cbc.util.Variable; +import de.tu_bs.cs.isf.cbc.util.diagnostics.DataCollector; +import de.tu_bs.cs.isf.cbc.util.diagnostics.DataType; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class for testing a single statement. @@ -146,9 +146,9 @@ public void execute(ICustomContext context, IProgressMonitor monitor) { e.printStackTrace(); return; } - FileHandler.getInstance().clearLog(this.projectPath); + FileHandler.instance.clearLog(this.projectPath); Features features = null; - if (FileHandler.getInstance().isSPL(uri)) { + if (FileHandler.instance.isSPL(uri)) { try { features = new Features(uri); } catch (FeatureCallerException e) { @@ -175,7 +175,7 @@ public void execute(ICustomContext context, IProgressMonitor monitor) { } dataCollector.addData(features.getCurConfigName(), getStatementPath(statement), pathTime); // save configuration in a separate file - FileHandler.getInstance().saveConfig(uri, formula, features, false); + FileHandler.instance.saveConfig(uri, formula, features, false); } } else { float pathTime; @@ -772,7 +772,7 @@ public boolean testStatement(final AbstractStatement statement, final JavaVariab } final var originalMethods = new ArrayList(); final var abstractMethods = new ArrayList(); - if (FileHandler.getInstance().isSPL(projectPath)) { + if (FileHandler.instance.isSPL(projectPath)) { if (code.contains("original") || statementName.contains("original")) { var testsdfjj = formula; TestUtilSPL.getInstance().handleOriginalCode(fp, projectPath, code.replaceAll(Pattern.quote(STATEMENT_PH), statementName), features, originalMethods, formula.getMethodObj().getSignature(), vars); diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyAllStatements.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyAllStatements.java index 3f7b417c2..a23ec2739 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyAllStatements.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyAllStatements.java @@ -35,20 +35,20 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Variant; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.tool.helper.FileHandler; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; -import de.tu_bs.cs.isf.cbc.tool.helper.IdAdder; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateDiagram; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; +import de.tu_bs.cs.isf.cbc.util.FileHandler; import de.tu_bs.cs.isf.cbc.util.FileUtil; +import de.tu_bs.cs.isf.cbc.util.IdAdder; import de.tu_bs.cs.isf.cbc.util.Parser; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; +import de.tu_bs.cs.isf.cbc.util.UpdateDiagram; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** @@ -97,7 +97,7 @@ public void execute(ICustomContext context, IProgressMonitor monitor) { URI uri = getDiagram().eResource().getURI(); // delete 'tests' folder if it exists because it will cause reference errors // since key doesn't use TestNG. - FileHandler.getInstance().deleteFolder(uri, "tests"); + FileHandler.instance.deleteFolder(uri, "tests"); IProject project = FileUtil.getProjectFromFileInProject(uri); @@ -105,7 +105,7 @@ public void execute(ICustomContext context, IProgressMonitor monitor) { verifyStmt = new VerifyStatement(super.getFeatureProvider()); genCode = new GenerateCodeForVariationalVerification(super.getFeatureProvider()); - if (FileHandler.getInstance().isSPL(uri)) { + if (FileHandler.instance.isSPL(uri)) { isVariational = true; } else { isVariational = false; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyMethodCallStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyMethodCallStatement.java index 6c1b1586a..5fae59151 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyMethodCallStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyMethodCallStatement.java @@ -19,16 +19,16 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; import de.tu_bs.cs.isf.cbc.cbcmodel.MethodStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.Parser; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; public class VerifyMethodCallStatement extends MyAbstractAsynchronousCustomFeature { diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyOriginalCallStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyOriginalCallStatement.java index 0cea1c5d9..75d3bb8af 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyOriginalCallStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyOriginalCallStatement.java @@ -16,15 +16,15 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; import de.tu_bs.cs.isf.cbc.cbcmodel.OriginalStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; public class VerifyOriginalCallStatement extends MyAbstractAsynchronousCustomFeature { diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPostRepetitionStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPostRepetitionStatement.java index 5621fcfcc..4b12373e6 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPostRepetitionStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPostRepetitionStatement.java @@ -16,14 +16,14 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.SmallRepetitionStatementImpl; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreRepetitionStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreRepetitionStatement.java index 4f50b2456..15d8c1c6d 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreRepetitionStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreRepetitionStatement.java @@ -16,14 +16,14 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.SmallRepetitionStatementImpl; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreSelectionStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreSelectionStatement.java index 65319735b..c9155a5ab 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreSelectionStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyPreSelectionStatement.java @@ -16,14 +16,14 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.SelectionStatementImpl; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStatement.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStatement.java index c8a12a422..b0c29f98a 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStatement.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStatement.java @@ -7,7 +7,6 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; @@ -17,7 +16,6 @@ import org.eclipse.graphiti.mm.pictograms.PictogramElement; import org.eclipse.graphiti.mm.pictograms.Shape; -import com.google.common.collect.ImmutableCollection; import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; @@ -27,18 +25,17 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.SkipStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.AbstractStatementImpl; -import de.tu_bs.cs.isf.cbc.mutation.feature.Mutator; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.tool.helper.FileHandler; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; -import de.tu_bs.cs.isf.cbc.tool.helper.GetDiagramUtil; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; +import de.tu_bs.cs.isf.cbc.util.FileHandler; import de.tu_bs.cs.isf.cbc.util.FileUtil; +import de.tu_bs.cs.isf.cbc.util.GetDiagramUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms @@ -104,11 +101,11 @@ void verifyStatement(ICustomContext context, IProgressMonitor monitor, boolean i URI uri = getDiagram().eResource().getURI(); // delete 'tests' folder if it exists because it will cause reference errors // since key doesn't use TestNG. - FileHandler.getInstance().deleteFolder(uri, "tests"); + FileHandler.instance.deleteFolder(uri, "tests"); IProject project = FileUtil.getProjectFromFileInProject(uri); boolean isVariational = false; - if (FileHandler.getInstance().isSPL(uri)) { + if (FileHandler.instance.isSPL(uri)) { isVariational = true; } diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStrengthWeakCorrect.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStrengthWeakCorrect.java index 096d933a6..f9470c623 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStrengthWeakCorrect.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyStrengthWeakCorrect.java @@ -15,14 +15,14 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; import de.tu_bs.cs.isf.cbc.cbcmodel.StrengthWeakStatement; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithInnerLoops.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithInnerLoops.java index 5cc63d19a..b6350f6c3 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithInnerLoops.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithInnerLoops.java @@ -18,15 +18,15 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Variant; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.SmallRepetitionStatementImpl; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithoutInnerLoops.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithoutInnerLoops.java index cb10e10bf..1e267492d 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithoutInnerLoops.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/VerifyVariantWithoutInnerLoops.java @@ -18,15 +18,15 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Variant; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.SmallRepetitionStatementImpl; -import de.tu_bs.cs.isf.cbc.statistics.StatDataCollector; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.GenerateCodeForVariationalVerification; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.ProveWithKey; import de.tu_bs.cs.isf.cbc.util.VerifyFeatures; +import de.tu_bs.cs.isf.cbc.util.statistics.StatDataCollector; /** * Class that changes the abstract value of algorithms diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionFirstFeature.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionFirstFeature.java index 564b92e16..ec448d8b9 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionFirstFeature.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionFirstFeature.java @@ -15,7 +15,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; /** * Class that to create an intermediate composition statement diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionSecondFeature.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionSecondFeature.java index d7b2be056..e69434b99 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionSecondFeature.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveCompositionSecondFeature.java @@ -15,7 +15,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; /** * Class that to create an intermediate composition statement diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveRepetitionFeature.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveRepetitionFeature.java index 05a746311..63a4cdda1 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveRepetitionFeature.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveRepetitionFeature.java @@ -15,7 +15,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; /** * Class that to create an intermediate composition statement diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveSelectionFeature.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveSelectionFeature.java index 69b7f6108..7f419bd72 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveSelectionFeature.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/AboveSelectionFeature.java @@ -15,7 +15,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; /** * Class that to create an intermediate composition statement diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/BelowImplementationFeature.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/BelowImplementationFeature.java index 54e0bcf48..961b7dfd4 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/BelowImplementationFeature.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/features/intermediate/BelowImplementationFeature.java @@ -13,7 +13,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.AbstractStatementImpl; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; /** * Class that to create an intermediate composition statement diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/CodeGenerator.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/CodeGenerator.java deleted file mode 100644 index e8a0462cc..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/CodeGenerator.java +++ /dev/null @@ -1,74 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.File; -import java.util.LinkedList; - -import org.eclipse.emf.common.util.URI; -import org.eclipse.graphiti.mm.pictograms.Diagram; - -import de.tu_bs.cs.isf.cbc.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariable; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; -import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; -import de.tu_bs.cs.isf.cbc.exceptions.CodeGeneratorException; -import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; -import de.tu_bs.cs.isf.cbc.util.FileUtil; - -public class CodeGenerator { - private static CodeGenerator instance; - - private CodeGenerator() { - - } - - public static CodeGenerator getInstance() { - if (instance == null) { - instance = new CodeGenerator(); - } - return instance; - } - - public String generateCodeFor(Diagram diag) throws CodeGeneratorException { - DiagramPartsExtractor extractor = new DiagramPartsExtractor(diag); - JavaVariables vars = extractor.getVars(); - GlobalConditions globalConditions = extractor.getConds(); - Renaming renaming = extractor.getRenaming(); - CbCFormula formula = extractor.getFormula(); - - String signatureString = formula.getMethodObj() != null ? formula.getMethodObj().getSignature() : ("public void " + formula.getName().toLowerCase() + " ()"); - - JavaVariable returnVariable = null; - int counter = 0; - LinkedList localVariables = new LinkedList(); - for(int i = 0; i < vars.getVariables().size(); i++) { - JavaVariable currentVariable = vars.getVariables().get(i); - if(currentVariable.getKind() == VariableKind.RETURN) { - counter++; - if(!signatureString.substring(0, signatureString.indexOf('(')).contains(currentVariable.getName().replace("non-null", "").trim().split(" ")[0])) { - //throw new CodeGeneratorException("Method return type and variable type does not match."); - } - if(counter > 1) { - //throw new CodeGeneratorException("Too much variables of kind RETURN."); - } - returnVariable = currentVariable; - }else if(currentVariable.getKind() == VariableKind.LOCAL) { - localVariables.add(currentVariable.getName().replace("non-null", "")); - } - } - String globalVariables =""; - for (Field field : vars.getFields()) { - globalVariables += ("\t" + field.getVisibility().getName().toLowerCase() + " /*@spec_public@*/ " + field.getType() + " " + field.getName().replace("non-null ", "") + ";\n"); - } - - URI uri = diag.eResource().getURI(); - String location = FileUtil.getProjectLocation(uri); - location += "/code-gen" + File.separator + (formula.getClassName().equals("") ? ("Class" + formula.getName()) : formula.getClassName()) + ".java"; - String code = ConstructCodeBlock.constructCodeBlockForExport(formula, globalConditions, renaming, localVariables, returnVariable, signatureString); - return code; - } - -} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/ConditionHandler.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/ConditionHandler.java index 7f9ac5324..808115945 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/ConditionHandler.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/ConditionHandler.java @@ -14,10 +14,13 @@ import de.tu_bs.cs.isf.cbc.exceptions.ExceptionMessages; import de.tu_bs.cs.isf.cbc.exceptions.ReferenceException; import de.tu_bs.cs.isf.cbc.exceptions.UnexpectedTokenException; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.ConditionParser; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.Node; +import de.tu_bs.cs.isf.cbc.util.CodeHandler; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.FileUtil; +import de.tu_bs.cs.isf.cbc.util.InputData; +import de.tu_bs.cs.isf.cbc.util.JavaCondition; +import de.tu_bs.cs.isf.cbc.util.conditionparser.ConditionParser; +import de.tu_bs.cs.isf.cbc.util.conditionparser.Node; public final class ConditionHandler { /** diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java index 433d5a6dd..cf80ecb04 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java @@ -25,9 +25,6 @@ import org.eclipse.graphiti.features.IFeatureProvider; import org.eclipse.graphiti.features.context.ICustomContext; import org.eclipse.graphiti.mm.pictograms.Diagram; -import org.eclipse.graphiti.mm.pictograms.Shape; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.graphics.RGB; import de.tu_bs.cs.isf.cbc.cbcclass.Field; import de.tu_bs.cs.isf.cbc.cbcclass.ModelClass; @@ -43,13 +40,15 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; import de.tu_bs.cs.isf.cbc.tool.features.MyAbstractAsynchronousCustomFeature; import de.tu_bs.cs.isf.cbc.util.ClassUtil; +import de.tu_bs.cs.isf.cbc.util.Colors; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; +import de.tu_bs.cs.isf.cbc.util.GetDiagramUtil; import de.tu_bs.cs.isf.cbc.util.IFileUtil; -import de.tu_bs.cs.isf.commands.toolbar.handler.family.MetaClass; -import de.tu_bs.cs.isf.cbc.util.ClassUtil; +import de.tu_bs.cs.isf.cbc.util.consts.MetaNames; public class GenerateCodeForVariationalVerification extends MyAbstractAsynchronousCustomFeature{ private IFileUtil fileHandler; @@ -92,7 +91,7 @@ private void deleteExistingClasses(String classDirectory) { private void removeMetaFiles(List classFiles) { for (int i = 0; i < classFiles.size(); i++) { - if (classFiles.get(i).getLocation().toOSString().contains(MetaClass.FOLDER_NAME)) { + if (classFiles.get(i).getLocation().toOSString().contains(MetaNames.FOLDER_NAME)) { classFiles.remove(i); i--; } diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeFromModel.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeFromModel.java index 09902c511..42214602e 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeFromModel.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeFromModel.java @@ -28,6 +28,7 @@ import de.tu_bs.cs.isf.cbc.tool.features.MyAbstractAsynchronousCustomFeature; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FileUtil; public class GenerateCodeFromModel extends MyAbstractAsynchronousCustomFeature { diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java deleted file mode 100644 index fb4046386..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java +++ /dev/null @@ -1,124 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.common.util.WrappedException; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.graphiti.mm.pictograms.Diagram; - -import de.tu_bs.cs.isf.commands.toolbar.handler.family.MetaClass; - -public class GetDiagramUtil { - - public static Collection getDiagrams(IProject p, boolean includeMetaDiagrams) { - final List files = getDiagramFiles(p); - final List diagramList = new ArrayList(); - final ResourceSet rSet = new ResourceSetImpl(); - for (final IFile file : files) { - if (!includeMetaDiagrams && file.getLocation().toOSString().contains(MetaClass.FOLDER_NAME)) { - continue; - } - final Diagram diagram = getDiagramFromFile(file, rSet); - if (diagram != null) { - diagramList.add(diagram); - } - } - return diagramList; - } - - public static Collection getDiagrams(IProject p) { - return getDiagrams(p, true); - } - - private static List getDiagramFiles(IContainer folder) { - final List ret = new ArrayList(); - try { - final IResource[] members = folder.members(); - for (final IResource resource : members) { - if (resource instanceof IContainer) { - ret.addAll(getDiagramFiles((IContainer) resource)); - } else if (resource instanceof IFile) { - final IFile file = (IFile) resource; - if (file.getName().endsWith(".diagram")) { - ret.add(file); - } - } - } - } catch (final CoreException e) { - e.printStackTrace(); - } - return ret; - } - - public static Diagram getDiagramFromFile(IFile file, ResourceSet resourceSet) { - final URI resourceURI = getFileURI(file, resourceSet); - Resource resource; - try { - resource = resourceSet.getResource(resourceURI, true); - if (resource != null) { - // does resource contain a diagram as root object? - final EList contents = resource.getContents(); - for (final EObject object : contents) { - if (object instanceof Diagram) { - return (Diagram) object; - } - } - } - } catch (final WrappedException e) { - e.printStackTrace(); - } - return null; - } - - public static Diagram getDiagramFromResource(Resource resource) { - if (resource != null) { - URI uri = resource.getURI(); - if (!uri.fileExtension().equals("diagram")) { - uri = uri.trimFragment(); - uri = uri.trimFileExtension(); - uri = uri.appendFileExtension("diagram"); - ResourceSet rSet = new ResourceSetImpl(); - resource = rSet.getResource(uri, true); - } - if (resource != null) { - // does resource contain a diagram as root object? - final EList contents = resource.getContents(); - for (final EObject object : contents) { - if (object instanceof Diagram) { - return (Diagram) object; - } - } - } - - } - return null; - } - - public static Resource getResourceFromFile(IFile file, ResourceSet resourceSet) { - final URI resourceURI = getFileURI(file, resourceSet); - Resource resource = resourceSet.getResource(resourceURI, true); - return resource; - } - - private static URI getFileURI(IFile file, ResourceSet resourceSet) { - final String pathName = file.getLocation().toPortableString(); - URI resourceURI = URI.createFileURI(pathName); - resourceURI = resourceSet.getURIConverter().normalize(resourceURI); - return resourceURI; - } -} \ No newline at end of file diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/PreConditionSolver.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/PreConditionSolver.java index 80a146688..789307a22 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/PreConditionSolver.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/PreConditionSolver.java @@ -1,12 +1,5 @@ package de.tu_bs.cs.isf.cbc.tool.helper; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.ConditionParser; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.Node; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.NotNode; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.OpNode; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.QuantorNode; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.RelNode; -import de.tu_bs.cs.isf.cbc.tool.helper.conditionparser.SingleNode; import java.util.ArrayList; import java.util.HashMap; @@ -27,6 +20,17 @@ import de.tu_bs.cs.isf.cbc.exceptions.TestFailedException; import de.tu_bs.cs.isf.cbc.exceptions.UnexpectedTokenException; import de.tu_bs.cs.isf.cbc.util.Console; +import de.tu_bs.cs.isf.cbc.util.FileHandler; +import de.tu_bs.cs.isf.cbc.util.InputData; +import de.tu_bs.cs.isf.cbc.util.TokenType; +import de.tu_bs.cs.isf.cbc.util.Variable; +import de.tu_bs.cs.isf.cbc.util.conditionparser.ConditionParser; +import de.tu_bs.cs.isf.cbc.util.conditionparser.Node; +import de.tu_bs.cs.isf.cbc.util.conditionparser.NotNode; +import de.tu_bs.cs.isf.cbc.util.conditionparser.OpNode; +import de.tu_bs.cs.isf.cbc.util.conditionparser.QuantorNode; +import de.tu_bs.cs.isf.cbc.util.conditionparser.RelNode; +import de.tu_bs.cs.isf.cbc.util.conditionparser.SingleNode; /** * Translates an AST into the syntax of the Z3-Solver. @@ -244,7 +248,7 @@ private Expr makeCondition(Node tree) { } } Console.printWarn("PreConditionSolverWarning: Type of identifier '" + tree.getRep() + "' is not supported."); - FileHandler.getInstance().log("PreConditionSolverWarning: Type of identifier '" + tree.getRep() + "' is not supported."); + FileHandler.instance.log("PreConditionSolverWarning: Type of identifier '" + tree.getRep() + "' is not supported."); return context.mkTrue(); } diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestAndAssertionListener.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestAndAssertionListener.java index 8a35e705a..4258d1f80 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestAndAssertionListener.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestAndAssertionListener.java @@ -19,13 +19,18 @@ import org.testng.ITestListener; import org.testng.ITestResult; +import de.tu_bs.cs.isf.cbc.util.CodeHandler; +import de.tu_bs.cs.isf.cbc.util.Colors; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.FileUtil; -import diagnostics.DataCollector; -import diagnostics.DataType; +import de.tu_bs.cs.isf.cbc.util.InputDataTupel; +import de.tu_bs.cs.isf.cbc.util.MethodHandler; +import de.tu_bs.cs.isf.cbc.util.Settings; +import de.tu_bs.cs.isf.cbc.util.TestCaseData; +import de.tu_bs.cs.isf.cbc.util.diagnostics.DataCollector; +import de.tu_bs.cs.isf.cbc.util.diagnostics.DataType; import de.tu_bs.cs.isf.cbc.exceptions.DiagnosticsException; import de.tu_bs.cs.isf.cbc.exceptions.SettingsException; -import de.tu_bs.cs.isf.cbc.tool.propertiesview.Settings; /** * Listener for checking the execution of test cases generated by the test generator. diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestStatementListener.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestStatementListener.java index f7261378e..9b1004a5b 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestStatementListener.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/TestStatementListener.java @@ -14,8 +14,11 @@ import org.testng.ITestResult; import de.tu_bs.cs.isf.cbc.exceptions.DiagnosticsException; +import de.tu_bs.cs.isf.cbc.util.CodeHandler; +import de.tu_bs.cs.isf.cbc.util.Colors; import de.tu_bs.cs.isf.cbc.util.Console; import de.tu_bs.cs.isf.cbc.util.FileUtil; +import de.tu_bs.cs.isf.cbc.util.TestCaseData; /** * Listener for checking the execution of statements. diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConditionPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConditionPattern.java index d8efb5233..0d4470036 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConditionPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConditionPattern.java @@ -48,12 +48,12 @@ import de.tu_bs.cs.isf.cbc.parser.exceptions.IFbCException; import de.tu_bs.cs.isf.cbc.tool.features.TestStatement; import de.tu_bs.cs.isf.cbc.tool.helper.GetProjectUtil; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateContractsToProve; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateInformationFlow; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateMethodCallsToProve; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateOriginalCallsToProve; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; import de.tu_bs.cs.isf.lattice.Lattice; import de.tu_bs.cs.isf.lattice.Lattices; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConnectionPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConnectionPattern.java index 60ce40244..c2b237f73 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConnectionPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ConnectionPattern.java @@ -26,8 +26,8 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.impl.SkipStatementImpl; import de.tu_bs.cs.isf.cbc.parser.exceptions.IFbCException; import de.tu_bs.cs.isf.cbc.tool.helper.GetProjectUtil; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateInformationFlow; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; import de.tu_bs.cs.isf.lattice.Lattice; import de.tu_bs.cs.isf.lattice.Lattices; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/FormulaPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/FormulaPattern.java index 9539ea659..1c761a53c 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/FormulaPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/FormulaPattern.java @@ -37,7 +37,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.tool.diagram.CbCImageProvider; -import de.tu_bs.cs.isf.cbc.tool.model.CbcModelUtil; +import de.tu_bs.cs.isf.cbc.util.CbcModelUtil; /** * Class that creates the graphical representation of Conditions diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/GlobalConditionsPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/GlobalConditionsPattern.java index 4455c567b..c1311a4ce 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/GlobalConditionsPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/GlobalConditionsPattern.java @@ -33,7 +33,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.tool.model.CbcModelUtil; +import de.tu_bs.cs.isf.cbc.util.CbcModelUtil; /** * Class that creates the graphical representation of global conditions diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/MethodStatementPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/MethodStatementPattern.java index b55eb4a7e..05dbbb0d1 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/MethodStatementPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/MethodStatementPattern.java @@ -44,8 +44,8 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; import de.tu_bs.cs.isf.cbc.tool.diagram.CbCImageProvider; import de.tu_bs.cs.isf.cbc.tool.features.TestStatement; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateModifiableOfConditions; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FileUtil; public class MethodStatementPattern extends IdPattern implements IPattern { diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/OriginalStatementPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/OriginalStatementPattern.java index 8a5e1e355..3f2f18e6d 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/OriginalStatementPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/OriginalStatementPattern.java @@ -44,10 +44,10 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; import de.tu_bs.cs.isf.cbc.tool.diagram.CbCImageProvider; import de.tu_bs.cs.isf.cbc.tool.features.TestStatement; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateModifiableOfConditions; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; public class OriginalStatementPattern extends IdPattern implements IPattern { diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/RenamingPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/RenamingPattern.java index 3adc01851..7d9601faa 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/RenamingPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/RenamingPattern.java @@ -32,7 +32,7 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; import de.tu_bs.cs.isf.cbc.cbcmodel.Rename; import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; -import de.tu_bs.cs.isf.cbc.tool.model.CbcModelUtil; +import de.tu_bs.cs.isf.cbc.util.CbcModelUtil; /** * Class that creates the graphical representation for renaming diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ReturnPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ReturnPattern.java index 8a12d91e2..068ce7c54 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ReturnPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/ReturnPattern.java @@ -40,13 +40,13 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; import de.tu_bs.cs.isf.cbc.parser.exceptions.IFbCException; import de.tu_bs.cs.isf.cbc.tool.diagram.CbCImageProvider; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.features.TestStatement; import de.tu_bs.cs.isf.cbc.tool.helper.GetProjectUtil; import de.tu_bs.cs.isf.cbc.tool.helper.HighlightHelper; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateInformationFlow; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateModifiableOfConditions; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.lattice.Lattice; import de.tu_bs.cs.isf.lattice.Lattices; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/StatementPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/StatementPattern.java index 05c602466..360bd30e2 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/StatementPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/StatementPattern.java @@ -45,12 +45,12 @@ import de.tu_bs.cs.isf.cbc.parser.exceptions.IFbCException; import de.tu_bs.cs.isf.cbc.tool.diagram.CbCImageProvider; import de.tu_bs.cs.isf.cbc.tool.helper.GetProjectUtil; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.tool.helper.HighlightHelper; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateInformationFlow; import de.tu_bs.cs.isf.cbc.tool.features.TestStatement; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateModifiableOfConditions; import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FileUtil; import de.tu_bs.cs.isf.lattice.Lattice; import de.tu_bs.cs.isf.lattice.Lattices; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/VariablesPattern.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/VariablesPattern.java index ce41601a9..1eac85be0 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/VariablesPattern.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/patterns/VariablesPattern.java @@ -44,9 +44,9 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; import de.tu_bs.cs.isf.cbc.cbcmodel.impl.CbCFormulaImpl; -import de.tu_bs.cs.isf.cbc.tool.helper.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.tool.model.CbcModelUtil; +import de.tu_bs.cs.isf.cbc.util.CbcModelUtil; import de.tu_bs.cs.isf.cbc.util.ClassUtil; +import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; import de.tu_bs.cs.isf.cbc.util.FeatureUtil; import de.tu_bs.cs.isf.cbc.util.FileUtil; diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/CodeReaderSection.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/CodeReaderSection.java index 93cf8813e..b52f04df4 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/CodeReaderSection.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/CodeReaderSection.java @@ -28,10 +28,10 @@ import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; import de.tu_bs.cs.isf.cbc.tool.diagram.CbCDiagramTypeProvider; -import de.tu_bs.cs.isf.cbc.tool.helper.UpdateConditionsOfChildren; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateContractsToProve; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateMethodCallsToProve; import de.tu_bs.cs.isf.cbc.tool.helper.UpdateOriginalCallsToProve; +import de.tu_bs.cs.isf.cbc.util.UpdateConditionsOfChildren; /** * Class for the Code-Reader-Tab of the Properties-View. Formats CorC-Code to diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/SettingsSection.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/SettingsSection.java index 190fc2c1b..66606217b 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/SettingsSection.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/SettingsSection.java @@ -30,7 +30,8 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; import de.tu_bs.cs.isf.cbc.exceptions.SettingsException; -import de.tu_bs.cs.isf.cbc.tool.helper.FileHandler; +import de.tu_bs.cs.isf.cbc.util.FileHandler; +import de.tu_bs.cs.isf.cbc.util.Settings; /** * Class for the Behavior-Tab of the Properties-View. diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/TestSection.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/TestSection.java index bc4739d69..40b028a89 100644 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/TestSection.java +++ b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/propertiesview/TestSection.java @@ -3,14 +3,9 @@ import java.util.ArrayList; import java.util.List; -import org.eclipse.emf.transaction.RecordingCommand; -import org.eclipse.emf.transaction.TransactionalEditingDomain; -import org.eclipse.emf.transaction.util.TransactionUtil; import org.eclipse.graphiti.ui.platform.GFPropertySection; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Device; import org.eclipse.swt.layout.GridData; @@ -27,6 +22,7 @@ import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; import de.tu_bs.cs.isf.cbc.exceptions.SettingsException; +import de.tu_bs.cs.isf.cbc.util.TestValues; public class TestSection extends GFPropertySection implements ITabbedPropertyConstants { final List