diff --git a/src/main/java/cli/Interpreter.java b/src/main/java/cli/Interpreter.java index e3e796692e7045349b6f762ad1e8b4a51df80cdd..ae29dea7ab7bae5bdd4da6de0bfa19bb0b456dba 100644 --- a/src/main/java/cli/Interpreter.java +++ b/src/main/java/cli/Interpreter.java @@ -152,6 +152,26 @@ public class Interpreter implements Runnable, TerminalProviderInterface { System.out.flush(); } + public String interpretUntilError() { + Scanner scanner = new Scanner(script); + currentLine = 0; + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + currentLine++; + for (String subCommand: line.split(";")) { + executeLine(subCommand, currentLine, false); + if (error != "" && error != null) { + scanner.close(); + return error; + } + } + } + scanner.close(); + printInterface.print("All done. See you soon."); + printInterface.exit(0); + return null; + } + public void interpret() { Scanner scanner = new Scanner(script); currentLine = 0; diff --git a/src/main/java/cli/PatternHandling.java b/src/main/java/cli/PatternHandling.java index b62641bcb8b6756910b51503fa511d6168e3c715..e9b582645e64997ed0c2e47b69a6430ed2e4bb21 100644 --- a/src/main/java/cli/PatternHandling.java +++ b/src/main/java/cli/PatternHandling.java @@ -89,7 +89,7 @@ public class PatternHandling extends Command { private final static String PATTERN_NOT_EXIST = "Pattern does not exist"; private final static String NO_PATTERN_SELECTED = "No pattern selected"; - private final static String PATTERN_NOT_CONNECTED = "Some pattern ports are not connected yet"; + public final static String PATTERN_NOT_CONNECTED = "Some pattern ports are not connected yet"; private final static String PORT_CONFIGURATION_NOT_FINISHED = "Some ports configuration are missing"; private final static String CLONE_TASK_EXIST = "Cloned task already exists"; private final static String TASK_TO_CLONE_NOT_EXIST = "Task to clone does not exist"; diff --git a/src/main/java/tmltranslator/patternhandling/AttributeTaskJsonFile.java b/src/main/java/tmltranslator/patternhandling/AttributeTaskJsonFile.java index e37069ca5c3212c8d5ffd0f2ec57aeb78c964b73..b79e5c9dfad01952e69104ebdf6eff5699963125 100644 --- a/src/main/java/tmltranslator/patternhandling/AttributeTaskJsonFile.java +++ b/src/main/java/tmltranslator/patternhandling/AttributeTaskJsonFile.java @@ -51,9 +51,9 @@ import tmltranslator.*; public class AttributeTaskJsonFile { - String name; - String type; - String value; + private String name; + private String type; + private String value; public AttributeTaskJsonFile(String name, String type, String value) { this.name = name; diff --git a/src/main/java/tmltranslator/patternhandling/MappingPatternChannel.java b/src/main/java/tmltranslator/patternhandling/MappingPatternChannel.java index c6870893e4ad24a504f420740bb55a1a73ca4fd4..2f675da34ba042df241c73ed29f68acb71298f5a 100644 --- a/src/main/java/tmltranslator/patternhandling/MappingPatternChannel.java +++ b/src/main/java/tmltranslator/patternhandling/MappingPatternChannel.java @@ -63,13 +63,13 @@ public class MappingPatternChannel { public final static int ORIGIN_CLONE = 1; public final static int ORIGIN_MODEL = 2; - String taskOfChannelToMap; - String channelToMapName; - int origin; - String taskOfChannelInSameMem; - String channelInSameMemAs; - int sameMemAsOrigin; - String busNameForNewMem; + private String taskOfChannelToMap; + private String channelToMapName; + private int origin; + private String taskOfChannelInSameMem; + private String channelInSameMemAs; + private int sameMemAsOrigin; + private String busNameForNewMem; public MappingPatternChannel(String taskOfChannelToMap, String channelToMapName, int origin) { diff --git a/src/main/java/tmltranslator/patternhandling/MappingPatternTask.java b/src/main/java/tmltranslator/patternhandling/MappingPatternTask.java index 9c4507ee079449a44cd5c670d3abb8e22cb8653c..0b825f485db7d50209fe7ee3aa4e221a83e64f28 100644 --- a/src/main/java/tmltranslator/patternhandling/MappingPatternTask.java +++ b/src/main/java/tmltranslator/patternhandling/MappingPatternTask.java @@ -62,11 +62,11 @@ public class MappingPatternTask { public final static int ORIGIN_CLONE = 1; public final static int ORIGIN_MODEL = 2; - String taskToMapName; - String sameHwAs; - int sameHwAsOrigin; - String busNameForNewHw; - int origin; + private String taskToMapName; + private String sameHwAs; + private int sameHwAsOrigin; + private String busNameForNewHw; + private int origin; public MappingPatternTask(String taskToMapName, int origin) { this.taskToMapName = taskToMapName; diff --git a/src/main/java/tmltranslator/patternhandling/PatternAttributeUpdate.java b/src/main/java/tmltranslator/patternhandling/PatternAttributeUpdate.java index f09c49e215c29fe6494a33d248886838f970f1f5..12b1408b98f223fbd98ea3fdaeecc18a1d48c34a 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternAttributeUpdate.java +++ b/src/main/java/tmltranslator/patternhandling/PatternAttributeUpdate.java @@ -51,9 +51,9 @@ import tmltranslator.*; public class PatternAttributeUpdate { - String taskOfAttributeToUpdate; - String attributeName; - String newAttributeValue; + private String taskOfAttributeToUpdate; + private String attributeName; + private String newAttributeValue; public PatternAttributeUpdate(String taskOfAttributeToUpdate, String attributeName, String newAttributeValue) { this.taskOfAttributeToUpdate = taskOfAttributeToUpdate; diff --git a/src/main/java/tmltranslator/patternhandling/PatternChannelWithSecurity.java b/src/main/java/tmltranslator/patternhandling/PatternChannelWithSecurity.java index d75ee4f57a3c12db3a04130c9d1d388ec68fbe58..745c561576a878ce363f9bf6675eb0e22d6369c5 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternChannelWithSecurity.java +++ b/src/main/java/tmltranslator/patternhandling/PatternChannelWithSecurity.java @@ -55,11 +55,11 @@ public class PatternChannelWithSecurity { public static final int WEAK_AUTHENTICITY = 1; public static final int STRONG_AUTHENTICITY = 2; - String channelTaskName; - String channelName; - String channelMode; - Boolean isConf; - int auth; + private String channelTaskName; + private String channelName; + private String channelMode; + private Boolean isConf; + private int auth; public PatternChannelWithSecurity(String channelTaskName, String channelName, String channelMode) { this.channelTaskName = channelTaskName; diff --git a/src/main/java/tmltranslator/patternhandling/PatternCloneTask.java b/src/main/java/tmltranslator/patternhandling/PatternCloneTask.java index 4c2e378539e90709c5760902c8f316e442d75c27..e5d554ba519a83be9b72bbddfc6c4089a1f8dd55 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternCloneTask.java +++ b/src/main/java/tmltranslator/patternhandling/PatternCloneTask.java @@ -55,8 +55,8 @@ import tmltranslator.*; public class PatternCloneTask { public final static String CLONE_TASK_SEPARATOR = " clone of "; - String clonedTask; - String taskToClone; + private String clonedTask; + private String taskToClone; public PatternCloneTask(String clonedTask, String taskToClone) { this.clonedTask = clonedTask; diff --git a/src/main/java/tmltranslator/patternhandling/PatternConfig2Json.java b/src/main/java/tmltranslator/patternhandling/PatternConfig2Json.java index 0d1180d89f8b6fc3320093a0e5823ec3be015f95..316759b13993576593ceb5c5973765176e27a969 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternConfig2Json.java +++ b/src/main/java/tmltranslator/patternhandling/PatternConfig2Json.java @@ -107,8 +107,8 @@ public class PatternConfig2Json { public final static String CHANNELS_WITH_SECURITY_IN_PATTERN = "Channels_With_Security_In_Pattern"; public final static String TASK_CHANNEL_WITH_SECURITY_NAME = "Task_Name_Channel"; - String patternConfigurationPathName; - PatternConfiguration patternConfiguration; + private String patternConfigurationPathName; + private PatternConfiguration patternConfiguration; public PatternConfiguration getPaternConfiguration() { diff --git a/src/main/java/tmltranslator/patternhandling/PatternConfiguration.java b/src/main/java/tmltranslator/patternhandling/PatternConfiguration.java index 5e006a0fb203eedd90fd1a8bc0aacb4ab11993e5..87521a5f4dee88e3ec997163e599b8785b70cc65 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternConfiguration.java +++ b/src/main/java/tmltranslator/patternhandling/PatternConfiguration.java @@ -52,13 +52,13 @@ import java.util.*; public class PatternConfiguration { - List<PatternConnection> portsConnection; - List<PatternCloneTask> clonedTasks; - List<PatternPortsConfig> portsConfig; - List<MappingPatternTask> tasksMapping; - List<MappingPatternChannel> channelsMapping; - LinkedHashMap<String, List<AttributeTaskJsonFile>> updatedPatternAttributes; - List<PatternChannelWithSecurity> channelsWithSecurity; + private List<PatternConnection> portsConnection; + private List<PatternCloneTask> clonedTasks; + private List<PatternPortsConfig> portsConfig; + private List<MappingPatternTask> tasksMapping; + private List<MappingPatternChannel> channelsMapping; + private LinkedHashMap<String, List<AttributeTaskJsonFile>> updatedPatternAttributes; + private List<PatternChannelWithSecurity> channelsWithSecurity; public PatternConfiguration(List<PatternConnection> portsConnection, List<PatternCloneTask> clonedTasks, List<PatternPortsConfig> portsConfig, List<MappingPatternTask> tasksMapping, List<MappingPatternChannel> channelsMapping, LinkedHashMap<String, List<AttributeTaskJsonFile>> updatedPatternAttributes, List<PatternChannelWithSecurity> channelsWithSecurity) { this.portsConnection = portsConnection; diff --git a/src/main/java/tmltranslator/patternhandling/PatternConnection.java b/src/main/java/tmltranslator/patternhandling/PatternConnection.java index aa0ee1fec04dee607ae30e7e86d44616c53d523c..55591278a4b1f1699d78bd7bc5d5f29a9a94a6d4 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternConnection.java +++ b/src/main/java/tmltranslator/patternhandling/PatternConnection.java @@ -62,11 +62,11 @@ public class PatternConnection { public final static String NEW_PORT_OPTION = " New port"; public final static String TASK_CHANNEL_SEPARATOR = "::"; - String patternTaskName; - String patternChannel; - String modelTaskName; - String modelChannelName; - Boolean isNewPort; + private String patternTaskName; + private String patternChannel; + private String modelTaskName; + private String modelChannelName; + private Boolean isNewPort; public PatternConnection(String patternTaskName, String patternChannel, String modelTaskName, String modelChannelName, Boolean isNewPort) { this.patternTaskName = patternTaskName; diff --git a/src/main/java/tmltranslator/patternhandling/PatternCreation.java b/src/main/java/tmltranslator/patternhandling/PatternCreation.java index e511ef54b1f899e8d0ed3016d74b81bb0355148c..71dca2d4fbbf2e11dd87ec28a87012628a5a89ab 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternCreation.java +++ b/src/main/java/tmltranslator/patternhandling/PatternCreation.java @@ -81,10 +81,10 @@ public class PatternCreation implements Runnable { public final static String INTERNALPORTS = "internalPorts"; public final static String ATTRIBUTES = "attributes"; - List<String> selectedTasks; - String patternName; - String patternsPath; - TMLMapping<?> tmap; + private List<String> selectedTasks; + private String patternName; + private String patternsPath; + private TMLMapping<?> tmap; public PatternCreation(List<String> _selectedTasks, String _patternName, String _patternsPath, TMLMapping<?> tmap) { this.selectedTasks = _selectedTasks; diff --git a/src/main/java/tmltranslator/patternhandling/PatternIntegration.java b/src/main/java/tmltranslator/patternhandling/PatternIntegration.java index 329c0b674285675271efb870279a695a2c97e49d..5f710b0c3414983612c1dab564322584441e5285 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternIntegration.java +++ b/src/main/java/tmltranslator/patternhandling/PatternIntegration.java @@ -57,24 +57,22 @@ import java.util.Map.Entry; public class PatternIntegration implements Runnable { - String appTab; - String patternPath; - String patternName; - PatternConfiguration patternConfiguration; - LinkedHashMap<String, TaskPattern> patternTasks; - TMLMapping<?> tmapModel; - TMLMapping<?> tmapPattern; + private String appTab; + private String patternPath; + private String patternName; + private PatternConfiguration patternConfiguration; + private LinkedHashMap<String, TaskPattern> patternTasks; + private TMLMapping<?> tmapModel; + private TMLMapping<?> tmapPattern; - HashMap<String, String> tasksClonedIntoModel = new HashMap<String, String>(); - HashMap<Entry<String, String>, String> channelsClonedIntoModel = new HashMap<Entry<String, String>, String>(); + private HashMap<String, String> tasksClonedIntoModel = new HashMap<String, String>(); + private HashMap<Entry<String, String>, String> channelsClonedIntoModel = new HashMap<Entry<String, String>, String>(); - HashMap<String, String> tasksOfPatternIntoModel = new HashMap<String, String>(); - HashMap<Entry<String, String>, String> channelsOfPatternIntoModel = new HashMap<Entry<String, String>, String>(); + private HashMap<String, String> tasksOfPatternIntoModel = new HashMap<String, String>(); + private HashMap<Entry<String, String>, String> channelsOfPatternIntoModel = new HashMap<Entry<String, String>, String>(); - HashMap<Entry<String, String>, String> renamedModelChannels = new HashMap<Entry<String, String>, String>(); - HashMap<TMLTask, List<TMLActivityElement>> clonedTasksToRemElems = new HashMap<TMLTask, List<TMLActivityElement>>(); - //List<TMLChannel> channelsFromPatternToMap = new ArrayList<TMLChannel>(); - //List<TMLChannel> channelsFromClonedToMap = new ArrayList<TMLChannel>(); + private HashMap<Entry<String, String>, String> renamedModelChannels = new HashMap<Entry<String, String>, String>(); + private HashMap<TMLTask, List<TMLActivityElement>> clonedTasksToRemElems = new HashMap<TMLTask, List<TMLActivityElement>>(); public PatternIntegration(String _appTab, String _patternPath, String _patternName, PatternConfiguration _patternConfiguration, LinkedHashMap<String, TaskPattern> _patternTasks, TMLMapping<?> _tmapModel) { this.appTab = _appTab; @@ -342,7 +340,6 @@ public class PatternIntegration implements Runnable { public void renamePatternChannelsName() { TMLModeling<?> tmlmModel = tmapModel.getTMLModeling(); - TMLModeling<?> tmlmPattern = tmapPattern.getTMLModeling(); //Map<String, String> oldNewChannelName = new HashMap<String,String>(); //Map<String, String> oldNewEventName = new HashMap<String,String>(); for (String taskName : patternTasks.keySet()) { @@ -379,7 +376,7 @@ public class PatternIntegration implements Runnable { } else if (tmlmModel.getEventByName(extPort.getName()) != null) { int indexEvent = 0; - String eventNameWithIndex = extPort.name + indexEvent; + String eventNameWithIndex = extPort.getName() + indexEvent; while (tmlmModel.getEventByName(eventNameWithIndex) != null || channelsOfPatternIntoModel.containsValue(eventNameWithIndex) || channelsClonedIntoModel.containsValue(eventNameWithIndex)) { indexEvent += 1; eventNameWithIndex= extPort.getName() + indexEvent; @@ -477,7 +474,7 @@ public class PatternIntegration implements Runnable { try { TMLModeling<?> _tmlmPatternClone = _tmlmPattern.deepClone(); for (String taskName : _patternTasks.keySet()) { - for (PortTaskJsonFile portTask : _patternTasks.get(taskName).internalPorts) { + for (PortTaskJsonFile portTask : _patternTasks.get(taskName).getInternalPorts()) { TMLChannel channelPattern = _tmlmPatternClone.getChannelByName(portTask.getName()); TMLEvent eventPattern = _tmlmPatternClone.getEventByName(portTask.getName()); if (portTask.getMode().equals(PatternCreation.MODE_OUTPUT)) { @@ -564,8 +561,8 @@ public class PatternIntegration implements Runnable { List<TMLActivityElement> actElemsToAdd = new ArrayList<TMLActivityElement>(); TMLChannel channelInModel = _tmlmModel.getChannelByName(channelsOfPatternIntoModel.get(Map.entry(_patternTaskName, _portPatternName))); TMLEvent eventInModel = _tmlmModel.getEventByName(channelsOfPatternIntoModel.get(Map.entry(_patternTaskName, _portPatternName))); - for (PortTaskJsonFile pTaskJson : tp.externalPorts) { - if (pTaskJson.name.equals(_portPatternName)) { + for (PortTaskJsonFile pTaskJson : tp.getExternalPorts()) { + if (pTaskJson.getName().equals(_portPatternName)) { if (pTaskJson.getMode().equals(PatternCreation.MODE_INPUT)) { if (pTaskJson.getType().equals(PatternCreation.CHANNEL)) { _taskToAddPort.addWriteTMLChannel(channelInModel); diff --git a/src/main/java/tmltranslator/patternhandling/PatternPortsConfig.java b/src/main/java/tmltranslator/patternhandling/PatternPortsConfig.java index e502f71985e4c9b239209a25665ae1ffa9026b70..5fbca829d5b92dfe9fcaf996ba165ce643f646bf 100644 --- a/src/main/java/tmltranslator/patternhandling/PatternPortsConfig.java +++ b/src/main/java/tmltranslator/patternhandling/PatternPortsConfig.java @@ -59,10 +59,10 @@ public class PatternPortsConfig { public final static String MERGE_PORT_OPTION = " Merge with "; public final static String TASK_CHANNEL_SEPARATOR = "::"; - String taskOfChannelToConfig; - String channelToConfig; - Boolean isChannelToRemove; - String mergeWith; + private String taskOfChannelToConfig; + private String channelToConfig; + private Boolean isChannelToRemove; + private String mergeWith; public PatternPortsConfig(String taskOfChannelToConfig, String channelToConfig) { this.taskOfChannelToConfig = taskOfChannelToConfig; diff --git a/src/main/java/tmltranslator/patternhandling/PortTaskJsonFile.java b/src/main/java/tmltranslator/patternhandling/PortTaskJsonFile.java index 4f113604a01d4808fe882d099267d04905b409b8..3fa86c34bb28fd124253deb7f2d7dc38f24c7678 100644 --- a/src/main/java/tmltranslator/patternhandling/PortTaskJsonFile.java +++ b/src/main/java/tmltranslator/patternhandling/PortTaskJsonFile.java @@ -51,11 +51,11 @@ import tmltranslator.*; public class PortTaskJsonFile { - String name; - String type; - String mode; - String confidentiality; - String authenticity; + private String name; + private String type; + private String mode; + private String confidentiality; + private String authenticity; public PortTaskJsonFile(String name, String type, String mode) { this.name = name; diff --git a/src/main/java/tmltranslator/patternhandling/SecurityGenerationForTMAP.java b/src/main/java/tmltranslator/patternhandling/SecurityGenerationForTMAP.java index fa9fd1caca4a9ba5bc5d60a18bd0bda1d4f8362e..05da50072671cc83fade4553583f820982d405c7 100644 --- a/src/main/java/tmltranslator/patternhandling/SecurityGenerationForTMAP.java +++ b/src/main/java/tmltranslator/patternhandling/SecurityGenerationForTMAP.java @@ -67,33 +67,27 @@ import java.util.*; public class SecurityGenerationForTMAP implements Runnable { - String appName; - TMLMapping<?> tmap; - String encComp; - String overhead; - String decComp; - Map<String, List<String>> selectedCPUTasks; - int channelIndex = 0; + private String appName; + private TMLMapping<?> tmap; + private String encComp; + private String overhead; + private String decComp; + private Map<String, List<String>> selectedCPUTasks; + private int channelIndex = 0; - AVATAR2ProVerif avatar2proverif; - AvatarSpecification avatarspec; - ProVerifSpec proverif; - Map<String, HSMChannel> hsmChannels = new HashMap<String, HSMChannel>(); + private AVATAR2ProVerif avatar2proverif; - Map<String, HSMChannel> secChannels = new HashMap<String, HSMChannel>(); + private Map<String, Integer> channelIndexMap = new HashMap<String, Integer>(); - Map<String, Integer> channelIndexMap = new HashMap<String, Integer>(); + private Map<String, List<HSMChannel>> hsmChannelMap = new HashMap<String, List<HSMChannel>>(); - Map<String, List<HSMChannel>> hsmChannelMap = new HashMap<String, List<HSMChannel>>(); + private Map<String, String> taskHSMMap = new HashMap<String, String>(); + private List<String> hsmTasks = new ArrayList<String>(); - Map<String, String> taskHSMMap = new HashMap<String, String>(); - List<String> hsmTasks = new ArrayList<String>(); - - Map<String, SecurityPattern> channelSecMap = new HashMap<String, SecurityPattern>(); - TMLMapping<?> newMap; + private Map<String, SecurityPattern> channelSecMap = new HashMap<String, SecurityPattern>(); + private TMLMapping<?> newMap; public SecurityGenerationForTMAP(String appName, TMLMapping<?> tmap, String encComp, String overhead, String decComp, Map<String, List<String>> selectedCPUTasks) { - this.appName = appName; this.tmap = tmap; this.newMap = tmap; @@ -125,7 +119,7 @@ public class SecurityGenerationForTMAP implements Runnable { avatar2proverif = new AVATAR2ProVerif(avatarspec); try { - proverif = avatar2proverif.generateProVerif(true, true, 3, true, true); + ProVerifSpec proverif = avatar2proverif.generateProVerif(true, true, 3, true, true); //warnings = avatar2proverif.getWarnings(); if (!avatar2proverif.saveInFile("pvspec")) { diff --git a/src/main/java/tmltranslator/patternhandling/TMRGeneration.java b/src/main/java/tmltranslator/patternhandling/TMRGeneration.java index db61ddc3dbdd02d2f0f00a3b5b1a929e165667e9..1bb60747a4773e1d14a98010d207cf63570c521d 100644 --- a/src/main/java/tmltranslator/patternhandling/TMRGeneration.java +++ b/src/main/java/tmltranslator/patternhandling/TMRGeneration.java @@ -53,12 +53,12 @@ import tmltranslator.*; import java.util.*; public class TMRGeneration implements Runnable { - Map<String, List<String>> selectedSensorsTasks; - String selectedRecieverTask; - String interpretersCompTime; - String voterCompTime; - String voterTimeOut; - TMLMapping<?> tmap; + private Map<String, List<String>> selectedSensorsTasks; + private String selectedRecieverTask; + private String interpretersCompTime; + private String voterCompTime; + private String voterTimeOut; + private TMLMapping<?> tmap; public TMRGeneration(Map<String, List<String>> selectedSensorsTasks, String selectedRecieverTask, String interpretersCompTime, String voterCompTime, String voterTimeOut, TMLMapping<?> tmap) { this.selectedSensorsTasks = selectedSensorsTasks; diff --git a/src/main/java/tmltranslator/patternhandling/TaskPattern.java b/src/main/java/tmltranslator/patternhandling/TaskPattern.java index 62daaad4ac6d6439f8e006df18571258b172c255..cb48dfaf28a131eec3a614f7060f7403b052cb2c 100644 --- a/src/main/java/tmltranslator/patternhandling/TaskPattern.java +++ b/src/main/java/tmltranslator/patternhandling/TaskPattern.java @@ -59,9 +59,9 @@ import org.json.JSONArray; public class TaskPattern { - List<AttributeTaskJsonFile> attributes; - List<PortTaskJsonFile> internalPorts; - List<PortTaskJsonFile> externalPorts; + private List<AttributeTaskJsonFile> attributes; + private List<PortTaskJsonFile> internalPorts; + private List<PortTaskJsonFile> externalPorts; public TaskPattern(List<AttributeTaskJsonFile> attributes, List<PortTaskJsonFile> internalPorts, List<PortTaskJsonFile> externalPorts) { this.attributes = attributes; diff --git a/src/main/java/tmltranslator/patternhandling/TaskPorts.java b/src/main/java/tmltranslator/patternhandling/TaskPorts.java index 2ca998189fa05c10619516cbd9545bb56bfd65ea..4365b9a5f9407291450cf792d53006be4f48e62d 100644 --- a/src/main/java/tmltranslator/patternhandling/TaskPorts.java +++ b/src/main/java/tmltranslator/patternhandling/TaskPorts.java @@ -57,10 +57,10 @@ public class TaskPorts { public final static int SEND_EVENT = 3; public final static int WAIT_EVENT = 4; - List<String> writeChannels = new ArrayList<String>(); - List<String> readChannels = new ArrayList<String>(); - List<String> sendEvents = new ArrayList<String>(); - List<String> waitEvents = new ArrayList<String>(); + private List<String> writeChannels = new ArrayList<String>(); + private List<String> readChannels = new ArrayList<String>(); + private List<String> sendEvents = new ArrayList<String>(); + private List<String> waitEvents = new ArrayList<String>(); public TaskPorts(List<String> writeChannels, List<String> readChannels, List<String> sendEvents, List<String> waitEvents) { this.writeChannels = writeChannels; diff --git a/src/main/java/ui/window/JDialogPatternHandling.java b/src/main/java/ui/window/JDialogPatternHandling.java index 527a97f3292ef8ec1496e9f8376a4f2e72d71e7d..fa39890726f2cb642be67e7f11be892fb99f8c7e 100644 --- a/src/main/java/ui/window/JDialogPatternHandling.java +++ b/src/main/java/ui/window/JDialogPatternHandling.java @@ -52,33 +52,14 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; -import java.io.BufferedReader; -import java.io.BufferedWriter; import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.PipedInputStream; -import java.io.PipedOutputStream; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.AbstractMap; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; import java.util.LinkedHashMap; -import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Vector; -import java.util.Map.Entry; -import javax.swing.Box; import javax.swing.ButtonGroup; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; @@ -87,9 +68,7 @@ import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JList; -import javax.swing.JMenuItem; import javax.swing.JPanel; -import javax.swing.JPopupMenu; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; @@ -123,7 +102,6 @@ import tmltranslator.patternhandling.PortTaskJsonFile; import tmltranslator.patternhandling.TaskPattern; import tmltranslator.patternhandling.TaskPorts; import ui.*; -import ui.interactivesimulation.JFrameSimulationSDPanel; import ui.util.IconManager; /** @@ -139,7 +117,6 @@ import ui.util.IconManager; public class JDialogPatternHandling extends JDialog implements ActionListener, ListSelectionListener, MouseListener, Runnable, MasterProcessInterface { - private static final Insets insets = new Insets(0, 0, 0, 0); private static final Insets WEST_INSETS = new Insets(0, 0, 0, 0); protected MainGUI mgui; @@ -148,148 +125,141 @@ public class JDialogPatternHandling extends JDialog implements ActionListener, L protected final static int STARTED = 2; protected final static int STOPPED = 3; - String pathPatterns; - TURTLEPanel currPanel; + private String pathPatterns; - int mode; + private int mode; // Pattern Creation - String newPatternName; - protected JTextField jFieldNewPatternName; - protected JButton buttonAddAllTasksAsPattern, buttonAddSelectedTasksAsPattern, buttonRemoveAllTasksAsPattern, buttonRemoveSelectedTasksAsPattern; - JList<String> jListNoSelectedTasksAsPattern, jListSelectedTasksAsPattern; - Vector<String> selectedTasksAsPattern = new Vector<String>(); - Vector<String> noSelectedTasksAsPattern = new Vector<String>(); - Map<String, String> tasksFullName = new LinkedHashMap<String, String>(); - JPanel jPanelPatternSelection; + private String newPatternName; + private JTextField jFieldNewPatternName; + private JButton buttonAddAllTasksAsPattern, buttonAddSelectedTasksAsPattern, buttonRemoveAllTasksAsPattern, buttonRemoveSelectedTasksAsPattern; + private JList<String> jListNoSelectedTasksAsPattern, jListSelectedTasksAsPattern; + private Vector<String> selectedTasksAsPattern = new Vector<String>(); + private Vector<String> noSelectedTasksAsPattern = new Vector<String>(); + private Map<String, String> tasksFullName = new LinkedHashMap<String, String>(); + private JPanel jPanelPatternSelection; // Pattern Configuration - Vector<String> listPatterns = new Vector<String>(); - Vector<String> tasksOfPatternWithExternalPort = new Vector<String>(); - Vector<String> externalPortsOfTaskInPattern = new Vector<String>(); - Vector<String> tasksOfModel = new Vector<String>(); - Vector<String> portsOfTaskInModel = new Vector<String>(); - JComboBox<String> jComboBoxPatterns; - JComboBox<String> jComboBoxPatternsTaskWithExternalPort; - DefaultComboBoxModel<String> modelPatternsTaskWithExternalPort = new DefaultComboBoxModel<>(tasksOfPatternWithExternalPort); - JComboBox<String> jComboBoxPatternExternalPortOfATask; - DefaultComboBoxModel<String> modelPatternExternalPortOfATask = new DefaultComboBoxModel<>(externalPortsOfTaskInPattern); - JComboBox<String> jComboBoxModelsTask; - DefaultComboBoxModel<String> modelTask = new DefaultComboBoxModel<>(tasksOfModel); - JComboBox<String> jComboBoxModelsPortOfTask; - DefaultComboBoxModel<String> modelPortOfATask = new DefaultComboBoxModel<>(portsOfTaskInModel); - JCheckBox jCheckBoxConnectToNewPort; - JCheckBox jCheckBoxAddConfidentiality; - JLabel jLabelAddAuthenticity; - Vector<String> authenticityModes = new Vector<String>(Arrays.asList(PatternCreation.WITHOUT_AUTHENTICITY, PatternCreation.WEAK_AUTHENTICITY, PatternCreation.STRONG_AUTHENTICITY)); - JComboBox<String> jComboBoxAddAuthenticity; - JList<String> jListConnectedPorts; - Vector<String> connectedPorts = new Vector<String>(); - List<PatternConnection> patternConnectionList = new ArrayList<PatternConnection>(); - JButton addConnectionBetweenSelectedPorts, removeConnectionBetweenPorts; - //JPanel jPanelPatternIntegration; - JButton buttonCloneTask, buttonAddPortInTask; - Vector<String> portsConfig = new Vector<String>(); - JComboBox<String> jComboBoxPortsConfig; - DefaultComboBoxModel<String> modelPortsConfig = new DefaultComboBoxModel<>(portsConfig); - ButtonGroup portsConfigGroup; - JRadioButton jRadioPortConfigRemove, jRadioPortConfigMerge; - Vector<String> portsConfigMerge = new Vector<String>(); - DefaultComboBoxModel<String> modelPortsConfigMerge = new DefaultComboBoxModel<>(portsConfigMerge); - JComboBox<String> jComboBoxPortsConfigMerge; - JList<String> jListConfigPorts; - Vector<String> configuredPorts = new Vector<String>(); - List<PatternPortsConfig> configuredPortsList = new ArrayList<PatternPortsConfig>(); - JButton addConfigPorts, removeConfigPorts; - JButton buttonTasksMapInArch; - JButton buttonChannelsMapInArch; - JButton buttonUpdatePatternsAttributes; - - Vector<String> tasksCanBeCloned = new Vector<String>(); - DefaultComboBoxModel<String> modelTaskToClone = new DefaultComboBoxModel<>(tasksCanBeCloned); - JComboBox<String> jComboBoxTaskToClone; - String newClonedTaskName; - protected JTextField jFieldNewClonedTaskName; - JButton addClonedTask, removeClonedTask; - JList<String> jListClonedTasks; - Vector<String> clonedTasks = new Vector<String>(); - List<PatternCloneTask> clonedTasksList = new ArrayList<PatternCloneTask>(); - - ButtonGroup mapTaskGroup; - JRadioButton jRadioMapTaskInExistingHw, jRadioMapTaskInNewHw; - Vector<String> tasksToMap = new Vector<String>(); - List<MappingPatternTask> tasksToMapList = new ArrayList<MappingPatternTask>(); - Vector<String> tasksToMapInSameHw = new Vector<String>(); - List<MappingPatternTask> tasksToMapInSameHwList = new ArrayList<MappingPatternTask>(); - Vector<String> busToLinkNewHw = new Vector<String>(); - DefaultComboBoxModel<String> modelTaskToMap = new DefaultComboBoxModel<>(tasksToMap); - DefaultComboBoxModel<String> modelMapTaskInSameHwAs = new DefaultComboBoxModel<>(tasksToMapInSameHw); - JComboBox<String> jComboBoxTaskToMap, jComboBoxMapTaskInSameHwAs, jComboBoxMapTaskInNewHw; - JButton addMappedTask, removeMappedTask; - JList<String> jListMappedTasks; - Vector<String> mappedTasks = new Vector<String>(); - List<MappingPatternTask> mappedTasksList = new ArrayList<MappingPatternTask>(); - - ButtonGroup mapChannelGroup; - JRadioButton jRadioMapChannelInExistingMem, jRadioMapChannelInNewMem; - Vector<String> channelsToMap = new Vector<String>(); - List<MappingPatternChannel> channelsToMapList = new ArrayList<MappingPatternChannel>(); - Vector<String> channelsToMapInSameMem = new Vector<String>(); - List<MappingPatternChannel> channelsToMapInSameMemList = new ArrayList<MappingPatternChannel>(); - Vector<String> busToLinkNewMem = new Vector<String>(); - DefaultComboBoxModel<String> modelChannelToMap = new DefaultComboBoxModel<>(channelsToMap); - DefaultComboBoxModel<String> modelMapChannelInSameMemAs = new DefaultComboBoxModel<>(channelsToMapInSameMem); - JComboBox<String> jComboBoxChannelToMap, jComboBoxMapChannelInSameMemAs, jComboBoxMapChannelInNewMem; - JButton addMappedChannel, removeMappedChannel; - JList<String> jListMappedChannels; - Vector<String> mappedChannels = new Vector<String>(); - List<MappingPatternChannel> mappedChannelsList = new ArrayList<MappingPatternChannel>(); - - Vector<String> tasksToUpdateAttributes = new Vector<String>(); - DefaultComboBoxModel<String> modelTasksToUpdateAttributes = new DefaultComboBoxModel<>(tasksToUpdateAttributes); - JComboBox<String> jComboBoxTasksToUpdateAttributes; - Vector<String> attributesOfTaskToUpdate = new Vector<String>(); - DefaultComboBoxModel<String> modelAttributesOfTaskToUpdate = new DefaultComboBoxModel<>(attributesOfTaskToUpdate); - JComboBox<String> jComboBoxAttributesOfTaskToUpdate; - String newTaskAttibuteValue; - protected JTextField jFieldNewTaskAttibuteValue; - JButton buttonUpdateTaskAttributeValue; + private Vector<String> listPatterns = new Vector<String>(); + private Vector<String> tasksOfPatternWithExternalPort = new Vector<String>(); + private Vector<String> externalPortsOfTaskInPattern = new Vector<String>(); + private Vector<String> tasksOfModel = new Vector<String>(); + private Vector<String> portsOfTaskInModel = new Vector<String>(); + private JComboBox<String> jComboBoxPatterns; + private JComboBox<String> jComboBoxPatternsTaskWithExternalPort; + private DefaultComboBoxModel<String> modelPatternsTaskWithExternalPort = new DefaultComboBoxModel<>(tasksOfPatternWithExternalPort); + private JComboBox<String> jComboBoxPatternExternalPortOfATask; + private DefaultComboBoxModel<String> modelPatternExternalPortOfATask = new DefaultComboBoxModel<>(externalPortsOfTaskInPattern); + private JComboBox<String> jComboBoxModelsTask; + private DefaultComboBoxModel<String> modelTask = new DefaultComboBoxModel<>(tasksOfModel); + private JComboBox<String> jComboBoxModelsPortOfTask; + private DefaultComboBoxModel<String> modelPortOfATask = new DefaultComboBoxModel<>(portsOfTaskInModel); + private JCheckBox jCheckBoxConnectToNewPort; + private JCheckBox jCheckBoxAddConfidentiality; + private JLabel jLabelAddAuthenticity; + private Vector<String> authenticityModes = new Vector<String>(Arrays.asList(PatternCreation.WITHOUT_AUTHENTICITY, PatternCreation.WEAK_AUTHENTICITY, PatternCreation.STRONG_AUTHENTICITY)); + private JComboBox<String> jComboBoxAddAuthenticity; + private JList<String> jListConnectedPorts; + private Vector<String> connectedPorts = new Vector<String>(); + private List<PatternConnection> patternConnectionList = new ArrayList<PatternConnection>(); + private JButton addConnectionBetweenSelectedPorts, removeConnectionBetweenPorts; + private JButton buttonCloneTask; + private Vector<String> portsConfig = new Vector<String>(); + private JComboBox<String> jComboBoxPortsConfig; + private DefaultComboBoxModel<String> modelPortsConfig = new DefaultComboBoxModel<>(portsConfig); + private ButtonGroup portsConfigGroup; + private JRadioButton jRadioPortConfigRemove, jRadioPortConfigMerge; + private Vector<String> portsConfigMerge = new Vector<String>(); + private DefaultComboBoxModel<String> modelPortsConfigMerge = new DefaultComboBoxModel<>(portsConfigMerge); + private JComboBox<String> jComboBoxPortsConfigMerge; + private JList<String> jListConfigPorts; + private Vector<String> configuredPorts = new Vector<String>(); + private List<PatternPortsConfig> configuredPortsList = new ArrayList<PatternPortsConfig>(); + private JButton addConfigPorts, removeConfigPorts; + private JButton buttonTasksMapInArch; + private JButton buttonChannelsMapInArch; + private JButton buttonUpdatePatternsAttributes; + + private Vector<String> tasksCanBeCloned = new Vector<String>(); + private DefaultComboBoxModel<String> modelTaskToClone = new DefaultComboBoxModel<>(tasksCanBeCloned); + private JComboBox<String> jComboBoxTaskToClone; + private String newClonedTaskName; + private JTextField jFieldNewClonedTaskName; + private JButton addClonedTask, removeClonedTask; + private JList<String> jListClonedTasks; + private Vector<String> clonedTasks = new Vector<String>(); + private List<PatternCloneTask> clonedTasksList = new ArrayList<PatternCloneTask>(); + + private ButtonGroup mapTaskGroup; + private JRadioButton jRadioMapTaskInExistingHw, jRadioMapTaskInNewHw; + private Vector<String> tasksToMap = new Vector<String>(); + private List<MappingPatternTask> tasksToMapList = new ArrayList<MappingPatternTask>(); + private Vector<String> tasksToMapInSameHw = new Vector<String>(); + private List<MappingPatternTask> tasksToMapInSameHwList = new ArrayList<MappingPatternTask>(); + private Vector<String> busToLinkNewHw = new Vector<String>(); + private DefaultComboBoxModel<String> modelTaskToMap = new DefaultComboBoxModel<>(tasksToMap); + private DefaultComboBoxModel<String> modelMapTaskInSameHwAs = new DefaultComboBoxModel<>(tasksToMapInSameHw); + private JComboBox<String> jComboBoxTaskToMap, jComboBoxMapTaskInSameHwAs, jComboBoxMapTaskInNewHw; + private JButton addMappedTask, removeMappedTask; + private JList<String> jListMappedTasks; + private Vector<String> mappedTasks = new Vector<String>(); + private List<MappingPatternTask> mappedTasksList = new ArrayList<MappingPatternTask>(); + + private ButtonGroup mapChannelGroup; + private JRadioButton jRadioMapChannelInExistingMem, jRadioMapChannelInNewMem; + private Vector<String> channelsToMap = new Vector<String>(); + private List<MappingPatternChannel> channelsToMapList = new ArrayList<MappingPatternChannel>(); + private Vector<String> channelsToMapInSameMem = new Vector<String>(); + private List<MappingPatternChannel> channelsToMapInSameMemList = new ArrayList<MappingPatternChannel>(); + private Vector<String> busToLinkNewMem = new Vector<String>(); + private DefaultComboBoxModel<String> modelChannelToMap = new DefaultComboBoxModel<>(channelsToMap); + private DefaultComboBoxModel<String> modelMapChannelInSameMemAs = new DefaultComboBoxModel<>(channelsToMapInSameMem); + private JComboBox<String> jComboBoxChannelToMap, jComboBoxMapChannelInSameMemAs, jComboBoxMapChannelInNewMem; + private JButton addMappedChannel, removeMappedChannel; + private JList<String> jListMappedChannels; + private Vector<String> mappedChannels = new Vector<String>(); + private List<MappingPatternChannel> mappedChannelsList = new ArrayList<MappingPatternChannel>(); + + private Vector<String> tasksToUpdateAttributes = new Vector<String>(); + private DefaultComboBoxModel<String> modelTasksToUpdateAttributes = new DefaultComboBoxModel<>(tasksToUpdateAttributes); + private JComboBox<String> jComboBoxTasksToUpdateAttributes; + private Vector<String> attributesOfTaskToUpdate = new Vector<String>(); + private DefaultComboBoxModel<String> modelAttributesOfTaskToUpdate = new DefaultComboBoxModel<>(attributesOfTaskToUpdate); + private JComboBox<String> jComboBoxAttributesOfTaskToUpdate; + private String newTaskAttibuteValue; + private JTextField jFieldNewTaskAttibuteValue; + private JButton buttonUpdateTaskAttributeValue; //LinkedHashMap<String, List<AttributeTaskJsonFile>> patternTasksAttributes = new LinkedHashMap<String, List<AttributeTaskJsonFile>>(); //LinkedHashMap<String, List<PortTaskJsonFile>> patternTasksExternalPorts = new LinkedHashMap<String, List<PortTaskJsonFile>>(); //LinkedHashMap<String, List<PortTaskJsonFile>> patternTasksInternalPorts = new LinkedHashMap<String, List<PortTaskJsonFile>>(); - LinkedHashMap<String, TaskPattern> patternTasksAll = new LinkedHashMap<String, TaskPattern>(); - LinkedHashMap<String, TaskPattern> patternTasksNotConnected = new LinkedHashMap<String, TaskPattern>(); - LinkedHashMap<String, TaskPorts> portsTaskOfModelAll = new LinkedHashMap<String, TaskPorts>(); - LinkedHashMap<String, TaskPorts> portsTaskOfModelLeft = new LinkedHashMap<String, TaskPorts>(); - List<PatternPortsConfig> portsTaskConfig = new ArrayList<PatternPortsConfig>(); - LinkedHashMap<String, List<AttributeTaskJsonFile>> updatedPatternAttributes = new LinkedHashMap<String, List<AttributeTaskJsonFile>>(); - List<PatternChannelWithSecurity> channelsWithSecurity = new ArrayList<PatternChannelWithSecurity>(); + private LinkedHashMap<String, TaskPattern> patternTasksAll = new LinkedHashMap<String, TaskPattern>(); + private LinkedHashMap<String, TaskPattern> patternTasksNotConnected = new LinkedHashMap<String, TaskPattern>(); + private LinkedHashMap<String, TaskPorts> portsTaskOfModelAll = new LinkedHashMap<String, TaskPorts>(); + private LinkedHashMap<String, TaskPorts> portsTaskOfModelLeft = new LinkedHashMap<String, TaskPorts>(); + private List<PatternPortsConfig> portsTaskConfig = new ArrayList<PatternPortsConfig>(); + private LinkedHashMap<String, List<AttributeTaskJsonFile>> updatedPatternAttributes = new LinkedHashMap<String, List<AttributeTaskJsonFile>>(); + private List<PatternChannelWithSecurity> channelsWithSecurity = new ArrayList<PatternChannelWithSecurity>(); - List<String> busesOfModel = new ArrayList<String>(); + private List<String> busesOfModel = new ArrayList<String>(); // Pattern Integration - Vector<String> listPatternsJson = new Vector<String>(); - JComboBox<String> jComboBoxPatternsJson; - String patternJsonPathValue; - protected JTextField jFieldPatternJsonPath; + private Vector<String> listPatternsJson = new Vector<String>(); + private JComboBox<String> jComboBoxPatternsJson; + private String patternJsonPathValue; + private JTextField jFieldPatternJsonPath; //components - protected JScrollPane jsp; - protected JPanel jta; + private JScrollPane jsp; + private JPanel jta; private JButton startButton; - protected JButton stop; - protected JButton close; - - public TGHelpButton myButton; - public static String helpString = "securityverification.html"; - + private JButton stop; + private JButton close; private boolean go = false; - protected RshClient rshc; - - protected JTabbedPane jp1; + private RshClient rshc; + private JTabbedPane jp1; /* * Creates new form @@ -324,7 +294,6 @@ public class JDialogPatternHandling extends JDialog implements ActionListener, L tasksFullName.put(taskShortName, taskFullName); noSelectedTasksAsPattern.add(taskShortName); } - currPanel = mgui.getCurrentTURTLEPanel(); listPatterns = getFoldersName(_pathPatterns); listPatternsJson = getFoldersName(_pathPatterns); portsTaskOfModelAll = TaskPorts.getListPortsTask(mgui.gtm.getTMLMapping().getTMLModeling()); @@ -1875,7 +1844,6 @@ public class JDialogPatternHandling extends JDialog implements ActionListener, L jComboBoxModelsPortOfTask.setEnabled(true); jCheckBoxConnectToNewPort.setEnabled(true); String selectedModelTask = jComboBoxModelsTask.getSelectedItem().toString(); - TaskPorts pT = portsTaskOfModelLeft.get(selectedModelTask); String selectedPatternTask = jComboBoxPatternsTaskWithExternalPort.getSelectedItem().toString(); int selectedIndexPatternPort = jComboBoxPatternExternalPortOfATask.getSelectedIndex(); @@ -1918,8 +1886,6 @@ public class JDialogPatternHandling extends JDialog implements ActionListener, L portsOfTaskInModel.add(st); } } - for (String st : portsOfTaskInModel) { - } } else { jComboBoxModelsPortOfTask.setEnabled(false); @@ -2248,12 +2214,6 @@ public class JDialogPatternHandling extends JDialog implements ActionListener, L t.start(); } - private void testGo() throws InterruptedException { - if (!go) { - throw new InterruptedException("Stopped by user"); - } - } - @Override public void run() { TraceManager.addDev("Thread started"); diff --git a/ttool/src/test/java/cli/CLIPatternHandlingTest.java b/ttool/src/test/java/cli/CLIPatternHandlingTest.java index d841708b38ba1a0c1dfa17a8bc5a09cb9712d744..5ee0b0ad13cb3b62dab5ea7939ff6267e43221e1 100644 --- a/ttool/src/test/java/cli/CLIPatternHandlingTest.java +++ b/ttool/src/test/java/cli/CLIPatternHandlingTest.java @@ -53,6 +53,7 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; +import java.util.List; import common.ConfigurationTTool; import common.SpecConfigTTool; @@ -68,6 +69,7 @@ import tmltranslator.TMLMapping; import tmltranslator.TMLMappingTextSpecification; import tmltranslator.TMLSyntaxChecking; import tmltranslator.TMLError; +import cli.PatternHandling; public class CLIPatternHandlingTest extends AbstractTest implements InterpreterOutputInterface { @@ -86,7 +88,12 @@ public class CLIPatternHandlingTest extends AbstractTest implements InterpreterO private static final String OBTAINED_MODELS_AFTER_INTEGRATING_TMR_TMAP [] = {"modelsAfterIntegratingTMR/modelWithOneSensorIntegTMR.tmap", "modelsAfterIntegratingTMR/modelWithThreeSensorsIntegTMR.tmap"}; private static final String OBTAINED_MODELS_AFTER_INTEGRATING_TMR_TARCHI [] = {"modelsAfterIntegratingTMR/modelWithOneSensorIntegTMR.tarchi", "modelsAfterIntegratingTMR/modelWithThreeSensorsIntegTMR.tarchi"}; private static final String OBTAINED_MODELS_AFTER_INTEGRATING_TMR_TML [] = {"modelsAfterIntegratingTMR/modelWithOneSensorIntegTMR.tml", "modelsAfterIntegratingTMR/modelWithThreeSensorsIntegTMR.tml"}; + + private static final String PATH_CLI_CONFIGURATION_WITH_ERRORS_TMR_IN_MODELS [] = {"cli/incomplete-configuration-tmr-for-modelWithOneSensor"}; + private StringBuilder outputResult; + private List<String> errorOutputs = new ArrayList<String>(); + public CLIPatternHandlingTest() { // @@ -99,6 +106,7 @@ public class CLIPatternHandlingTest extends AbstractTest implements InterpreterO public void printError(String error) { TraceManager.addDev("Error=" + error); + errorOutputs.add(error); } public void print(String s) { @@ -218,6 +226,24 @@ public class CLIPatternHandlingTest extends AbstractTest implements InterpreterO //TraceManager.addDev("\nExpected TML:>" + expectedOutputTML + "<"); //TraceManager.addDev("\nObtained TML:>" + obtainedOutputTML + "<"); } + + for (int i = 0; i < PATH_CLI_CONFIGURATION_WITH_ERRORS_TMR_IN_MODELS.length; i++) { + String filePathConfigModel = getBaseResourcesDir() + PATH_PATTERNS[0] + PATH_CLI_CONFIGURATION_WITH_ERRORS_TMR_IN_MODELS[i]; + String scriptConfig; + outputResult = new StringBuilder(); + File fConfig = new File(filePathConfigModel); + assertTrue(myutil.FileUtils.checkFileForOpen(fConfig)); + scriptConfig = myutil.FileUtils.loadFileData(fConfig); + assertTrue(scriptConfig.length() > 0); + Interpreter interpretConfigModel = new Interpreter(scriptConfig, (InterpreterOutputInterface)this, false); + String interp = interpretConfigModel.interpretUntilError(); + assertTrue("expected error: ", interp.equals(PatternHandling.PATTERN_NOT_CONNECTED)); + + //TraceManager.addDev("\noutputResult:>" + outputResult); + //assertTrue("comparing between 2 TML files", outputResult.equals(PatternHandling.PATTERN_NOT_CONNECTED)); + + + } } }