From 0864927e30678f708725c1c1e64f77f080390d09 Mon Sep 17 00:00:00 2001 From: Rohith Kumar Date: Wed, 6 Dec 2023 10:23:08 +0100 Subject: [PATCH 1/5] Run Analysis - Bug Fix --- .../fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java index 4ff069e..96d3b51 100644 --- a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java +++ b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java @@ -13,6 +13,7 @@ import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.ui.popup.Balloon; import com.intellij.openapi.ui.popup.JBPopupFactory; +import de.fraunhofer.iem.swan.assist.actions.RunSwanAction; import de.fraunhofer.iem.swan.assist.data.JSONFileLoader; import de.fraunhofer.iem.swan.assist.util.Constants; import org.apache.commons.io.FileUtils; @@ -250,7 +251,8 @@ private void setParameters() { PropertiesComponent.getInstance(project).setValue(Constants.SOURCE_DIRECTORY, sourceDirTextbox.getText()); PropertiesComponent.getInstance(project).setValue(Constants.LAST_SRM_LIST, parameters.get(Constants.OUTPUT_DIRECTORY) + File.separator + config.getProperty("output_json_suffix")); PropertiesComponent.getInstance(project).setValue(Constants.TOOLKIT, toolkitButtonGroup.getSelection().getActionCommand()); - + RunSwanAction runSwanAction = new RunSwanAction(); + runSwanAction.runSwan(project); super.doOKAction(); } From f455d02ef9c0a2bb8224d1e1e84a4e8bc7bd9862 Mon Sep 17 00:00:00 2001 From: ssegit Date: Wed, 10 Jan 2024 16:18:26 +0100 Subject: [PATCH 2/5] Implement equals method to compare Pair objects --- .../fraunhofer/iem/swan/assist/util/Pair.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/util/Pair.java b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/util/Pair.java index 91232d6..bff2607 100644 --- a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/util/Pair.java +++ b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/util/Pair.java @@ -1,5 +1,7 @@ package de.fraunhofer.iem.swan.assist.util; +import java.util.Objects; + public class Pair { private final T key; private final U value; @@ -16,4 +18,31 @@ public T getKey() { public U getValue() { return this.value; } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + + if (obj == null || getClass() != obj.getClass()) { + return false; + } + + Pair pair = (Pair) obj; + + if (!Objects.equals(key, pair.key)) { + return false; + } + + return Objects.equals(value, pair.value); + } + + @Override + public int hashCode() { + int result = key != null ? key.hashCode() : 0; + result = 31 * result + (value != null ? value.hashCode() : 0); + return result; + } + } From b3d349dea75d16b31e9829a2bfb97518357786d8 Mon Sep 17 00:00:00 2001 From: ssegit Date: Wed, 10 Jan 2024 16:20:43 +0100 Subject: [PATCH 3/5] Set identifier for training methods --- .../de/fraunhofer/iem/swan/assist/ui/MethodListTree.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/MethodListTree.java b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/MethodListTree.java index f072f0e..e5efd9a 100644 --- a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/MethodListTree.java +++ b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/MethodListTree.java @@ -587,10 +587,12 @@ private void loadMethods() { classNode.add(addCategoriesToNode(method)); - if (method.getMethod().isKnown()) + if (method.getMethod().isKnown()) { + method.setTrainingMethod(true); standardSrms.add(classNode); - else + }else{ currentProject.add(classNode); + } } } From 5726fa904575f5f3598978ad97cb6716e00bd256 Mon Sep 17 00:00:00 2001 From: ssegit Date: Wed, 10 Jan 2024 16:21:41 +0100 Subject: [PATCH 4/5] Refactor filters for training methods --- .../iem/swan/assist/data/JSONFileLoader.java | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/data/JSONFileLoader.java b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/data/JSONFileLoader.java index 60ee5ee..d5a06f5 100644 --- a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/data/JSONFileLoader.java +++ b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/data/JSONFileLoader.java @@ -140,7 +140,7 @@ public static ArrayList getMethods(ArrayList for (MethodWrapper method : methods.values()) { - if (method.getUpdateOperation().equals(Constants.METHOD_DELETED) || method.isTrainingMethod()) + if (method.getUpdateOperation().equals(Constants.METHOD_DELETED)) continue; filteredList.add(method); @@ -187,20 +187,31 @@ private static ArrayList filterList(ArrayList(Constants.FILTER_TYPE, Formatter.toTitleCase(category.toString()))) - || filters.contains(new Pair<>(Constants.FILTER_CWE, Formatter.toTitleCase(category.toString()))) - || (methods.get(methodSignature).isTrainingMethod() && filters.contains(Constants.TRAIN_FILTER))) { - - filteredList.add(methods.get(methodSignature)); - break; + if(filters.size()==1 && filters.contains(Constants.TRAIN_FILTER) && methods.get(methodSignature).isTrainingMethod()){ + filteredList.add(methods.get(methodSignature)); + }else if((filters.contains(Constants.FILE_FILTER) && !methodSignature.contains(currentFile)) + || (!filters.contains(Constants.DELETED_FILTER) && methods.get(methodSignature).getUpdateOperation().equals(Constants.METHOD_DELETED))){ + } else if (filters.size()>1 && filters.contains(Constants.TRAIN_FILTER)) { + for (Category category : methods.get(methodSignature).getCategories()) { + Pair typePair = new Pair<>(Constants.FILTER_TYPE, Formatter.toTitleCase(category.toString())); + Pair cwePair = new Pair<>(Constants.FILTER_CWE, Formatter.toTitleCase(category.toString())); + boolean isDeleted = filters.contains(Constants.DELETED_FILTER) && methods.get(methodSignature).getUpdateOperation().equals(Constants.METHOD_DELETED); + boolean isTypeFilter = filters.contains(typePair) || filters.contains(cwePair); + if ((isDeleted || isTypeFilter) && methods.get(methodSignature).isTrainingMethod()){ + filteredList.add(methods.get(methodSignature)); + break; + } + } + } else{ + for (Category category : methods.get(methodSignature).getCategories()) { + Pair typePair = new Pair<>(Constants.FILTER_TYPE, Formatter.toTitleCase(category.toString())); + Pair cwePair = new Pair<>(Constants.FILTER_CWE, Formatter.toTitleCase(category.toString())); + boolean isDeleted = filters.contains(Constants.DELETED_FILTER) && methods.get(methodSignature).getUpdateOperation().equals(Constants.METHOD_DELETED); + boolean isTypeFilter = filters.contains(typePair) || filters.contains(cwePair); + if (isDeleted || isTypeFilter ){ + filteredList.add(methods.get(methodSignature)); + break; + } } } } From 78e0cb01ca00bfce0898bf9992edb8eaf37ecea0 Mon Sep 17 00:00:00 2001 From: ssegit Date: Wed, 10 Jan 2024 16:27:55 +0100 Subject: [PATCH 5/5] Revert "Run Analysis - Bug Fix" This reverts commit 0864927e30678f708725c1c1e64f77f080390d09. --- .../fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java index 96d3b51..4ff069e 100644 --- a/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java +++ b/swan-assist/src/main/java/de/fraunhofer/iem/swan/assist/ui/dialog/SettingsDialog.java @@ -13,7 +13,6 @@ import com.intellij.openapi.ui.MessageType; import com.intellij.openapi.ui.popup.Balloon; import com.intellij.openapi.ui.popup.JBPopupFactory; -import de.fraunhofer.iem.swan.assist.actions.RunSwanAction; import de.fraunhofer.iem.swan.assist.data.JSONFileLoader; import de.fraunhofer.iem.swan.assist.util.Constants; import org.apache.commons.io.FileUtils; @@ -251,8 +250,7 @@ private void setParameters() { PropertiesComponent.getInstance(project).setValue(Constants.SOURCE_DIRECTORY, sourceDirTextbox.getText()); PropertiesComponent.getInstance(project).setValue(Constants.LAST_SRM_LIST, parameters.get(Constants.OUTPUT_DIRECTORY) + File.separator + config.getProperty("output_json_suffix")); PropertiesComponent.getInstance(project).setValue(Constants.TOOLKIT, toolkitButtonGroup.getSelection().getActionCommand()); - RunSwanAction runSwanAction = new RunSwanAction(); - runSwanAction.runSwan(project); + super.doOKAction(); }