diff --git a/AlgebraicDataflowArchitectureModel/src/application/actions/NewResourceAction.java b/AlgebraicDataflowArchitectureModel/src/application/actions/NewResourceAction.java index d6b55cd..b01fc46 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/actions/NewResourceAction.java +++ b/AlgebraicDataflowArchitectureModel/src/application/actions/NewResourceAction.java @@ -22,7 +22,7 @@ public void actionPerformed(ActionEvent e) { String resName = JOptionPane.showInputDialog("Resourece Name:"); if (resName == null) return; - editor.addResourcePath(new ResourcePath(resName)); + editor.addResourcePath(null, resName); } } diff --git a/AlgebraicDataflowArchitectureModel/src/application/editor/Editor.java b/AlgebraicDataflowArchitectureModel/src/application/editor/Editor.java index b285ce0..fec5968 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/editor/Editor.java +++ b/AlgebraicDataflowArchitectureModel/src/application/editor/Editor.java @@ -35,8 +35,11 @@ import models.Edge; import models.EdgeAttribute; import models.Node; +import models.algebra.Expression; import models.dataConstraintModel.Channel; import models.dataConstraintModel.ChannelMember; +import models.dataConstraintModel.DataConstraintModel; +import models.dataConstraintModel.ResourceHierarchy; import models.dataConstraintModel.ResourcePath; import models.dataFlowModel.DataTransferModel; import models.dataFlowModel.DataTransferChannel; @@ -64,6 +67,8 @@ import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; import parser.exceptions.WrongRHSExpression; +import parser.exceptions.ExpectedRightCurlyBracket; +import parser.exceptions.WrongPathExpression; import parser.ParserDTRAM; public class Editor { @@ -185,7 +190,9 @@ return model; } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedModel | ExpectedGeometry | ExpectedNode | ExpectedResource | ExpectedFormulaChannel | ExpectedIoChannel e) { + | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedModel + | ExpectedGeometry | ExpectedNode | ExpectedResource | ExpectedFormulaChannel | ExpectedIoChannel + | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } @@ -218,7 +225,7 @@ return model; } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment e) { + | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) { @@ -468,13 +475,27 @@ } } - public void addResourcePath(ResourcePath res) { - getModel().addResourcePath(res); + public void addResourcePath(ResourcePath parentPath, String resName) { + ResourcePath resourcePath = null; + if (resName.startsWith(Parser.LEFT_CURLY_BRACKET) && resName.endsWith(Parser.RIGHT_CURLY_BRACKET)) { + TokenStream stream = new Parser.TokenStream(); + Parser parser = new Parser(stream); + stream.addLine(resName.substring(1, resName.length() - 1)); + try { + Expression exp = parser.parseTerm(stream, getModel()); + resourcePath = getModel().createResourcePath(parentPath, exp); + } catch (ExpectedRightBracket e) { + e.printStackTrace(); + return; + } + } else { + resourcePath = getModel().createResourcePath(parentPath, resName); + } resetDataFlowGraph(); graph.getModel().beginUpdate(); Object parent = graph.getDefaultParent(); try { - graph.insertVertex(parent, null, res.getResourceName(), 20, 20, 80, 30, + graph.insertVertex(parent, null, resName, 20, 20, 80, 30, "shape=ellipse;perimeter=ellipsePerimeter"); // insert a resource as a vertex } finally { graph.getModel().endUpdate(); @@ -649,7 +670,7 @@ resetDataFlowGraph(); } catch (ExpectedRightBracket | ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression - | WrongLHSExpression | WrongRHSExpression | ExpectedAssignment e) { + | WrongLHSExpression | WrongRHSExpression | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } diff --git a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java index 35b2aa7..9796011 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/DataConstraintModel.java @@ -1,14 +1,18 @@ package models.dataConstraintModel; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.List; +import models.algebra.Expression; import models.algebra.Symbol; import models.algebra.Type; import parser.Parser; public class DataConstraintModel { protected HashMap resourcePaths = null; + protected HashMap resourceHierarchies = null; protected HashMap channels = null; protected HashMap ioChannels = null; protected HashMap types = null; @@ -183,6 +187,7 @@ public DataConstraintModel() { resourcePaths = new HashMap<>(); + resourceHierarchies = new HashMap<>(); channels = new HashMap<>(); ioChannels = new HashMap<>(); types = new HashMap<>(); @@ -238,14 +243,40 @@ return resourcePaths.values(); } - public ResourcePath getResourcePath(String resourceName) { - return resourcePaths.get(resourceName); + public ResourcePath getResourcePath(String resourcePath) { + return resourcePaths.get(resourcePath); } - public void addResourcePath(ResourcePath resourcePath) { - resourcePaths.put(resourcePath.getResourceName(), resourcePath); + public ResourcePath createResourcePath(ResourcePath parent, String resourceName) { + List pathParams = new ArrayList<>(parent.getPathParams()); + ResourceHierarchy hierarchy = parent.getResourceHierarchy(); + hierarchy = new ResourceHierarchy(hierarchy, resourceName); + return createResourcePath(hierarchy, pathParams); } + public ResourcePath createResourcePath(ResourcePath parent, Expression param) { + List pathParams = new ArrayList<>(parent.getPathParams()); + pathParams.add(param); + ResourceHierarchy hierarchy = parent.getResourceHierarchy(); + hierarchy = new ResourceHierarchy(hierarchy, 1); + return createResourcePath(hierarchy, pathParams); + } + + public ResourcePath createResourcePath(ResourceHierarchy newHierarchy, List pathParams) { + ResourceHierarchy hierarchy = resourceHierarchies.get(newHierarchy.toString()); + if (hierarchy == null) { + resourceHierarchies.put(newHierarchy.toString(), newHierarchy); + hierarchy = newHierarchy; + } + ResourcePath resourcePath = new ResourcePath(hierarchy, pathParams); + resourcePaths.put(resourcePath.toString(), resourcePath); + return resourcePath; + } + +// public void addResourcePath(ResourcePath resourcePath) { +// resourcePaths.put(resourcePath.getResourceName(), resourcePath); +// } + public void setResourcePaths(HashMap resourcePaths) { this.resourcePaths = resourcePaths; } diff --git a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourceHierarchy.java b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourceHierarchy.java index fe25b4c..f861f26 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourceHierarchy.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourceHierarchy.java @@ -1,25 +1,39 @@ package models.dataConstraintModel; +import java.util.List; + +import models.algebra.Expression; import models.algebra.Type; public class ResourceHierarchy { - private ResourcePath parent; - private String resourceName; - private Type resourceStateType; - private int numParameters; + private ResourceHierarchy parent = null; + private String resourceName = null; + private Type resourceStateType = null; + private int numParameters = 0; + + public ResourceHierarchy(String resourceName) { + this.parent = null; + this.resourceName = resourceName; + this.numParameters = 0; + } - public ResourceHierarchy(ResourcePath parent, String resourceName, Type resourceStateType, int numParameters) { + public ResourceHierarchy(ResourceHierarchy parent, String resourceName) { this.parent = parent; this.resourceName = resourceName; - this.resourceStateType = resourceStateType; + this.numParameters = 0; + } + + public ResourceHierarchy(ResourceHierarchy parent, int numParameters) { + this.parent = parent; + this.resourceName = null; this.numParameters = numParameters; } - public ResourcePath getParent() { + public ResourceHierarchy getParent() { return parent; } - public void setParent(ResourcePath parent) { + public void setParent(ResourceHierarchy parent) { this.parent = parent; } @@ -42,10 +56,30 @@ public int getNumParameters() { if (parent == null) return numParameters; - return numParameters + parent.getNumberOfParameters(); + return numParameters + parent.getNumParameters(); } public void setNumParameters(int numParameters) { this.numParameters = numParameters; } + + public String toString() { + if (parent == null) return resourceName; + if (resourceName != null) { + return parent.toString() + "." + resourceName; + } else { + return parent.toString() + ".{}"; + } + } + + public String toString(List pathParams) { + if (parent == null) return resourceName; + if (resourceName != null) { + return parent.toString(pathParams) + "." + resourceName; + } else { + Expression lastParam = pathParams.get(pathParams.size() - 1); + pathParams = pathParams.subList(0, pathParams.size() - 1); + return parent.toString(pathParams) + ".{" + lastParam +"}"; + } + } } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourcePath.java b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourcePath.java index add437f..4688764 100644 --- a/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourcePath.java +++ b/AlgebraicDataflowArchitectureModel/src/models/dataConstraintModel/ResourcePath.java @@ -14,25 +14,21 @@ protected Expression initialValue; protected String initText; - public ResourcePath(String path, ResourceHierarchy resourceHierarchy) { - super(path, 2); + public ResourcePath(ResourceHierarchy resourceHierarchy) { + super(resourceHierarchy.toString(), 2); this.resourceHierarchy = resourceHierarchy; this.pathParams = new ArrayList<>(); } - public ResourcePath(String path, ResourceHierarchy resourceHierarchy, List pathParams) { - super(path, 2); + public ResourcePath(ResourceHierarchy resourceHierarchy, List pathParams) { + super(resourceHierarchy.toString(pathParams), 2); this.resourceHierarchy = resourceHierarchy; this.pathParams = pathParams; } - -// public ResourcePath getParent() { -// return resourceHierarchy.getParent(); -// } -// -// public void setParent(ResourcePath parent) { -// this.resourceHierarchy.setParent(parent); -// } + + public ResourceHierarchy getResourceHierarchy() { + return resourceHierarchy; + } public String getResourceName() { return resourceHierarchy.getResourceName(); @@ -82,6 +78,10 @@ public void setInitText(String initText) { this.initText = initText; } + + public String toString() { + return resourceHierarchy.toString(pathParams); + } public boolean equals(Object another) { if (!(another instanceof ResourcePath)) return false; diff --git a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java index e2c87d4..aa494ba 100644 --- a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java +++ b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java @@ -14,6 +14,7 @@ import models.algebra.Type; import models.algebra.Variable; import models.dataConstraintModel.ChannelMember; +import models.dataConstraintModel.ResourceHierarchy; import models.dataConstraintModel.ResourcePath; import models.dataConstraintModel.StateTransition; import models.dataConstraintModel.StateTransitionTerm; @@ -157,13 +158,13 @@ } public void parseInit(DataTransferModel model) - throws ExpectedLeftCurlyBracket, ExpectedAssignment, ExpectedRHSExpression, WrongRHSExpression, ExpectedRightBracket { + throws ExpectedLeftCurlyBracket, ExpectedAssignment, ExpectedRHSExpression, WrongRHSExpression, + ExpectedRightBracket, ExpectedRightCurlyBracket, WrongPathExpression { String leftBracket = stream.next(); if (!leftBracket.equals(LEFT_CURLY_BRACKET)) throw new ExpectedLeftCurlyBracket(stream.getLine()); - String resource = null; - while (stream.hasNext() && !(resource = stream.next()).equals(RIGHT_CURLY_BRACKET)) { + while (stream.hasNext() && !stream.checkNext().equals(RIGHT_CURLY_BRACKET)) { int fromLine = stream.getLine(); - ResourcePath resourcePath = model.createResourcePath(resource); + ResourcePath resourcePath = parseResourcePath(stream, model); if (!stream.hasNext()) throw new ExpectedAssignment(stream.getLine()); String colon = stream.next(); @@ -381,7 +382,7 @@ } public ResourcePath parseResourcePath(TokenStream stream, DataTransferModel model) throws ExpectedRightBracket, ExpectedRightCurlyBracket, WrongPathExpression { - String path = ""; + ResourceHierarchy hierarchy = null; List pathParams = new ArrayList<>(); do { String literalOrLeftCurlyBracket = stream.next(); @@ -391,15 +392,15 @@ pathParams.add(paramTerm); String rightCurlyBracket = stream.next(); if (rightCurlyBracket == null || !rightCurlyBracket.equals(RIGHT_CURLY_BRACKET)) throw new ExpectedRightCurlyBracket(stream.getLine()); - path += LEFT_CURLY_BRACKET + paramTerm + RIGHT_CURLY_BRACKET; + hierarchy = new ResourceHierarchy(hierarchy, 1); } else { // Path literal - path += literalOrLeftCurlyBracket; + hierarchy = new ResourceHierarchy(hierarchy, literalOrLeftCurlyBracket); } - if (stream.checkNext() == null) throw new WrongPathExpression(stream.getLine()); + if (!stream.hasNext()) throw new WrongPathExpression(stream.getLine()); if (stream.checkNext().equals(LEFT_BRACKET)) break; } while (stream.next().equals(DOT)); - return model.createResourcePath(path, pathParams); + return model.createResourcePath(hierarchy, pathParams); } protected Boolean doesMatchToKeyword(final String token, final String specificTokenName) { diff --git a/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAM.java b/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAM.java index bccc755..1fc0bfa 100644 --- a/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAM.java +++ b/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAM.java @@ -25,8 +25,10 @@ import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedResource; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class ParserDTRAM extends Parser { @@ -63,7 +65,7 @@ * @param reader */ public DataTransferModel doParseModel() - throws ExpectedRightBracket, ExpectedChannel, ExpectedChannelName, ExpectedLeftCurlyBracket, ExpectedInOrOutOrRefKeyword, ExpectedStateTransition, ExpectedEquals, ExpectedRHSExpression, WrongLHSExpression, WrongRHSExpression, ExpectedAssignment, ExpectedModel, ExpectedGeometry { + throws ExpectedRightBracket, ExpectedChannel, ExpectedChannelName, ExpectedLeftCurlyBracket, ExpectedInOrOutOrRefKeyword, ExpectedStateTransition, ExpectedEquals, ExpectedRHSExpression, WrongLHSExpression, WrongRHSExpression, ExpectedAssignment, ExpectedModel, ExpectedGeometry, ExpectedRightCurlyBracket, WrongPathExpression { DataTransferModel model = getParsedModel(); return model; } @@ -85,7 +87,7 @@ * @param stream */ private DataTransferModel getParsedModel() - throws ExpectedRightBracket, ExpectedChannel, ExpectedChannelName, ExpectedLeftCurlyBracket, ExpectedInOrOutOrRefKeyword, ExpectedStateTransition, ExpectedEquals, ExpectedRHSExpression, WrongLHSExpression, WrongRHSExpression, ExpectedAssignment, ExpectedModel, ExpectedGeometry { + throws ExpectedRightBracket, ExpectedChannel, ExpectedChannelName, ExpectedLeftCurlyBracket, ExpectedInOrOutOrRefKeyword, ExpectedStateTransition, ExpectedEquals, ExpectedRHSExpression, WrongLHSExpression, WrongRHSExpression, ExpectedAssignment, ExpectedModel, ExpectedGeometry, ExpectedRightCurlyBracket, WrongPathExpression { if (!stream.hasNext()) throw new NullPointerException(); diff --git a/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java b/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java index a89ea3c..59c3f52 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/CodeGeneratorTest.java @@ -22,8 +22,10 @@ import parser.exceptions.ExpectedLeftCurlyBracket; import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class CodeGeneratorTest { @@ -41,7 +43,7 @@ System.out.println(codetree); } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment e) { + | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataConstraintModelTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataConstraintModelTest.java index 63f7920..3980b83 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/DataConstraintModelTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataConstraintModelTest.java @@ -12,9 +12,13 @@ public void test() { // Construct a data constraint architecture model. DataConstraintModel model = new DataConstraintModel(); - ResourcePath customer_off = new ResourcePath("customers.{customer_id}.off", 1); - ResourcePath customer_add = new ResourcePath("customers.{customer_id}.add", 1); - ResourcePath company_add = new ResourcePath("companies.{company_id}.add", 1); + ResourcePath customers = model.createResourcePath(null, "customers"); // "customers" + ResourcePath customer = model.createResourcePath(customers, "{customer_id}"); // "customers.{customer_id}" + ResourcePath customer_off = model.createResourcePath(customer, "off"); // "customers.{customer_id}.off" + ResourcePath customer_add = model.createResourcePath(customer, "add"); // "customers.{customer_id}.add" + ResourcePath companies = model.createResourcePath(null, "companies"); // "companies" + ResourcePath company = model.createResourcePath(companies, "{company_id}"); // "companies.{company_id}" + ResourcePath company_add = model.createResourcePath(companies, "add"); // "companies.{company_id}.add" Channel gin_1 = new Channel("gin_1"); // set customer's office GroupSelector x1 = new GroupSelector(); diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataFlowModelTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataFlowModelTest.java index f2c383c..9a5f509 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/DataFlowModelTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataFlowModelTest.java @@ -14,10 +14,15 @@ public void test() { // Construct a data-flow architecture model. DataTransferModel model = new DataTransferModel(); - ResourcePath customer_off = new ResourcePath("customers.{x1}.off", 1); // an identifier template to specify a customer's office resource - ResourcePath company_add = new ResourcePath("companies.{x2}.add", 1); // an identifier template to specify a companie's address resource - ResourcePath customer_add = new ResourcePath("customers.{x1}.add", 1); // an identifier template to specify a customer's address resource + ResourcePath customers = model.createResourcePath(null, "customers"); // "customers" + ResourcePath customer = model.createResourcePath(customers, "{x1}"); // "customers.{x1}" + ResourcePath customer_off = model.createResourcePath(customer, "off"); // "customers.{x1}.off" + ResourcePath customer_add = model.createResourcePath(customer, "add"); // "customers.{x1}.add" + ResourcePath companies = model.createResourcePath(null, "companies"); // "companies" + ResourcePath company = model.createResourcePath(companies, "{x2}"); // "companies.{x2}" + ResourcePath company_add = model.createResourcePath(companies, "add"); // "companies.{x2}.add" + // === gin_1 === // // customers.{x1}.off(c, set(x)) == x diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java index 9d28936..c6f3cf3 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageDecisionTest.java @@ -18,8 +18,10 @@ import parser.exceptions.ExpectedLeftCurlyBracket; import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class DataStorageDecisionTest { @@ -39,7 +41,7 @@ } } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment e) { + | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java index 9a7c300..859be8f 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/DataStorageNecessityTest.java @@ -17,8 +17,10 @@ import parser.exceptions.ExpectedLeftCurlyBracket; import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class DataStorageNecessityTest { @@ -39,7 +41,7 @@ } } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment e) { + | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java b/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java index 847fb6f..a25fb7f 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/EdgeTransitionSelectableTest.java @@ -17,8 +17,10 @@ import parser.exceptions.ExpectedLeftCurlyBracket; import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class EdgeTransitionSelectableTest { @@ -38,7 +40,7 @@ } } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment e) { + | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java b/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java index 5f51af7..e0a6ff4 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/UpdateConflictCheckTest.java @@ -16,8 +16,10 @@ import parser.exceptions.ExpectedLeftCurlyBracket; import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class UpdateConflictCheckTest { @@ -25,41 +27,14 @@ File file = new File("models/POS2.model"); try { Parser parser = new Parser(new BufferedReader(new FileReader(file))); + DataTransferModel model; try { - DataTransferModel model = parser.doParse(); + model = parser.doParse(); System.out.println(Validation.checkUpdateConflict(model)); - } catch (ExpectedRightBracket e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedChannel e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedChannelName e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedLeftCurlyBracket e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedInOrOutOrRefKeyword e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedStateTransition e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedEquals e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedRHSExpression e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (WrongLHSExpression e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (WrongRHSExpression e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ExpectedAssignment e) { - // TODO Auto-generated catch block + } catch (ExpectedRightBracket | ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket + | ExpectedRightCurlyBracket | ExpectedInOrOutOrRefKeyword | ExpectedStateTransition | ExpectedEquals + | ExpectedRHSExpression | WrongLHSExpression | WrongRHSExpression | ExpectedAssignment + | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) { diff --git a/AlgebraicDataflowArchitectureModel/src/tests/parser/ParseTest.java b/AlgebraicDataflowArchitectureModel/src/tests/parser/ParseTest.java index a1ea0a3..96429bf 100644 --- a/AlgebraicDataflowArchitectureModel/src/tests/parser/ParseTest.java +++ b/AlgebraicDataflowArchitectureModel/src/tests/parser/ParseTest.java @@ -22,8 +22,10 @@ import parser.exceptions.ExpectedLeftCurlyBracket; import parser.exceptions.ExpectedRHSExpression; import parser.exceptions.ExpectedRightBracket; +import parser.exceptions.ExpectedRightCurlyBracket; import parser.exceptions.ExpectedStateTransition; import parser.exceptions.WrongLHSExpression; +import parser.exceptions.WrongPathExpression; import parser.exceptions.WrongRHSExpression; public class ParseTest { @@ -54,7 +56,7 @@ | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression | WrongRHSExpression | ExpectedRightBracket | ParameterizedIdentifierIsFutureWork | ResolvingMultipleDefinitionIsFutureWork | InvalidMessage - | UnificationFailed | ValueUndefined | ExpectedAssignment e) { + | UnificationFailed | ValueUndefined | ExpectedAssignment | ExpectedRightCurlyBracket | WrongPathExpression e) { e.printStackTrace(); } } catch (FileNotFoundException e) {