diff --git a/AlgebraicDataflowArchitectureModel/models/A.dtram b/AlgebraicDataflowArchitectureModel/models/A.dtram deleted file mode 100644 index fef5480..0000000 --- a/AlgebraicDataflowArchitectureModel/models/A.dtram +++ /dev/null @@ -1,15 +0,0 @@ -model { - channel CIO{ - out A(a:Int, setA(a2)) == a2; - } -} -geometry { -node r A:180,90,80,30 -} - -services{ - service A{ - baseURL:"https://A/" - resources:A,B,C - } -} \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/POS.dtram b/AlgebraicDataflowArchitectureModel/models/POS.dtram index 68a3ac2..dc3d2d1 100644 --- a/AlgebraicDataflowArchitectureModel/models/POS.dtram +++ b/AlgebraicDataflowArchitectureModel/models/POS.dtram @@ -24,10 +24,4 @@ node r history:650,90,80,30 node r points:650,20,80,30 node ioc CIO:150,55,30,30 -} -services { - service SERVICE_NAME{ - baseURL : - resources: total, payment, history, points - } -} +} \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/WOS.dtram b/AlgebraicDataflowArchitectureModel/models/WOS.dtram index 139559f..45f640c 100644 --- a/AlgebraicDataflowArchitectureModel/models/WOS.dtram +++ b/AlgebraicDataflowArchitectureModel/models/WOS.dtram @@ -22,10 +22,4 @@ node r temp_f:250,100,80,30 node ioc CIO2:100,300,30,30 node ioc CIO1:100,100,30,30 -} -services { - service A{ - baseURL:http - resources:highest, temp_c, temp_f - } -} +} \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewWebServiceAction.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewWebServiceAction.java deleted file mode 100644 index b6e5c05..0000000 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/actions/NewWebServiceAction.java +++ /dev/null @@ -1,36 +0,0 @@ -package graphicalrefactor.actions; - -import java.awt.event.ActionEvent; -import graphicalrefactor.editor.Editor; -import graphicalrefactor.views.GraphicalRefactor; - -/**-------------------------------------------------------------------------------- - * this action's going to be called when you design of Web services. -/**-------------------------------------------------------------------------------- - * - */ -public class NewWebServiceAction extends AbstractSystemAction { - - /**-------------------------------------------------------------------------------- - * [constructor] - /**-------------------------------------------------------------------------------- - * - * @param frame - */ - public NewWebServiceAction(GraphicalRefactor frame) { - super("Create New Web Service", frame); - } - - /**-------------------------------------------------------------------------------- - * [public] - /**-------------------------------------------------------------------------------- - * - * @param e - */ - @Override - public void actionPerformed(ActionEvent e) { - frame.getEditor().clear(); - frame.setTitle(frame.title); - } - -} diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java deleted file mode 100644 index 0c16bdd..0000000 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/editor/WebServiceEditor.java +++ /dev/null @@ -1,205 +0,0 @@ -package graphicalrefactor.editor; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.util.Iterator; - -import com.mxgraph.model.mxGraphModel; -import com.mxgraph.view.mxCellState; -import com.mxgraph.view.mxGraph; -import com.mxgraph.view.mxGraphView; - -import algorithms.UpdateConflictCheck; -import models.dataConstraintModel.IdentifierTemplate; -import models.dataFlowModel.DataFlowModel; -import models.webServices.Service; -import models.webServices.WebServicesInfo; -import parser.ParserDTRAMForWebService; -import parser.exceptions.ExpectedAssignment; -import parser.exceptions.ExpectedChannel; -import parser.exceptions.ExpectedChannelName; -import parser.exceptions.ExpectedEquals; -import parser.exceptions.ExpectedFormulaChannel; -import parser.exceptions.ExpectedGeometry; -import parser.exceptions.ExpectedInOrOutOrRefKeyword; -import parser.exceptions.ExpectedIoChannel; -import parser.exceptions.ExpectedLeftCurlyBracket; -import parser.exceptions.ExpectedModel; -import parser.exceptions.ExpectedNode; -import parser.exceptions.ExpectedRHSExpression; -import parser.exceptions.ExpectedResource; -import parser.exceptions.ExpectedRightBracket; -import parser.exceptions.ExpectedStateTransition; -import parser.exceptions.WrongLHSExpression; -import parser.exceptions.WrongRHSExpression; -import parser.exceptions.webService.ExpectedBaseURL; -import parser.exceptions.webService.ExpectedResources; -import parser.exceptions.webService.ExpectedWebService; - -/**-------------------------------------------------------------------------------- - * this class is called when you design of Web services. -/**-------------------------------------------------------------------------------- - * - * @author k-fujii - */ -public class WebServiceEditor extends Editor{ - - private WebServicesInfo webServicesInfo = null; - - /**-------------------------------------------------------------------------------- - * [constructor] - /**-------------------------------------------------------------------------------- - * - * @param graph : the editor of generate prototype tool. - */ - public WebServiceEditor(final mxGraph graph) { - super(graph); - this.webServicesInfo = new WebServicesInfo(); - - } - - /**-------------------------------------------------------------------------------- - * [public] - /**-------------------------------------------------------------------------------- - /* open a file that has a ".dtram" extension. - * @param file - */ - @Override - public DataFlowModel open(final File file) { - String extension =""; - if(file != null && file.exists()) { - String name = file.getName(); - extension = name.substring(name.lastIndexOf(".")); - } - if(extension.contains(".model")) { - openModel(file); - } else { - try { - ParserDTRAMForWebService parser = new ParserDTRAMForWebService(new BufferedReader(new FileReader(file))); - try { - model = parser.doParseModel(); - graph = constructGraph(model); - - parser.doParseGeometry(graph); - parser.doParseWebService(this,model); - - curFilePath = file.getAbsolutePath(); - curFileName = file.getName(); - - if (!UpdateConflictCheck.run(model)) return null; - - updateResourceDependencyGraph(model); - - return model; - } catch (ExpectedChannel | ExpectedChannelName | ExpectedLeftCurlyBracket | ExpectedInOrOutOrRefKeyword - | ExpectedStateTransition | ExpectedEquals | ExpectedRHSExpression | WrongLHSExpression - | WrongRHSExpression | ExpectedRightBracket | ExpectedAssignment - | ExpectedModel | ExpectedGeometry | ExpectedNode | ExpectedResource - | ExpectedFormulaChannel | ExpectedIoChannel - | ExpectedWebService | ExpectedBaseURL| ExpectedResources e) { - e.printStackTrace(); - } - }catch(FileNotFoundException e) { - e.printStackTrace(); - } - } - - return null; - } - - /**-------------------------------------------------------------------------------- - /* - * @param service - */ - @Override - public void save() { - // note: geometry の書き込みが消える. - // 1. ファイルの情報をキャッシュしてもう一度書き込む - // 2. 規定クラスでメソッド化して呼び出す. - if (curFilePath != null) { - try { - File file = new File(curFilePath); - String extension =""; - if(file != null && file.exists()) { - String name = file.getName(); - extension = name.substring(name.lastIndexOf(".")); - } - - if(extension.contains(".model")) saveModel(file); - else { - try (FileWriter filewriter = new FileWriter(file)) { - filewriter.write(toOutputString()); - filewriter.write("services {\n"); - - for(Service service : this.webServicesInfo.getServices()) { - filewriter.write("\tservice " + service.getName() + "{\n"); - filewriter.write("\t\tbaseURL:" + service.getBaseURL() +"\n"); - filewriter.write("\t\tresources:"); - - Object root = graph.getDefaultParent(); - for (int i = 0; i < graph.getModel().getChildCount(root); i++) { - Object cell = graph.getModel().getChildAt(root, i); - - if (graph.getModel().isVertex(cell)) { - mxGraphView view = graph.getView(); - mxCellState cellState = view.getState(cell); - - // get resource's name - for (Iterator itr = model.getIdentifierTemplates().iterator(); itr.hasNext();){ - IdentifierTemplate resource = itr.next(); - - if( !(resource instanceof IdentifierTemplate)) continue; - if( !cellState.getLabel().equals(resource.getResourceName())) continue; - - filewriter.write(resource.getResourceName()); - if(itr.hasNext()) filewriter.write(", "); - } - } - } - filewriter.write("\n\t}\n"); - } - // end loop - filewriter.write("}\n"); - filewriter.close(); - } - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - } - - - /**-------------------------------------------------------------------------------- - * default - */ - private void constructWebServiceGraph() { - ((mxGraphModel)this.graph.getModel()).clear(); - - Object parent = graph.getDefaultParent(); - this.graph.getModel().beginUpdate(); - - try { - - } - finally { - this.graph.getModel().endUpdate(); - } - - } - - /**-------------------------------------------------------------------------------- - * setter - /**-------------------------------------------------------------------------------- - /** - * @param service - */ - public void addWebService(final Service service) { - this.webServicesInfo.addService(service); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactor.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactor.java index e3e900d..ab035a5 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactor.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactor.java @@ -17,7 +17,6 @@ import com.mxgraph.view.mxGraph; import graphicalrefactor.editor.Editor; -import graphicalrefactor.editor.WebServiceEditor; public class GraphicalRefactor extends JFrame { private static final long serialVersionUID = -8690140317781055614L; @@ -44,7 +43,7 @@ } }; - editor = new WebServiceEditor(graph); + editor = new Editor(graph); graphComponent = new mxGraphComponent(graph) { protected mxICellEditor createCellEditor() { diff --git a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java index f47de17..7c0d477 100644 --- a/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java +++ b/AlgebraicDataflowArchitectureModel/src/graphicalrefactor/views/GraphicalRefactorMenuBar.java @@ -4,18 +4,17 @@ import javax.swing.JMenuBar; import graphicalrefactor.actions.CircleLayoutAction; -import graphicalrefactor.actions.DeleteAction; import graphicalrefactor.actions.DAGLayoutAction; +import graphicalrefactor.actions.DeleteAction; import graphicalrefactor.actions.ExitAction; -import graphicalrefactor.actions.OpenAction; import graphicalrefactor.actions.JavaPrototypeGenerateAction; import graphicalrefactor.actions.JerseyPrototypeGenerateAction; import graphicalrefactor.actions.NewChannelAction; -import graphicalrefactor.actions.NewWebServiceAction; import graphicalrefactor.actions.NewFormulaChannelAction; import graphicalrefactor.actions.NewIOChannelAction; import graphicalrefactor.actions.NewModelAction; import graphicalrefactor.actions.NewResourceAction; +import graphicalrefactor.actions.OpenAction; import graphicalrefactor.actions.SaveAction; import graphicalrefactor.actions.SaveAsAction; import graphicalrefactor.actions.TreeLayoutAction; @@ -43,7 +42,6 @@ JMenu newMenu = new JMenu("New"); newMenu.add(new NewModelAction(graphicalModelRefactor)); - newMenu.add(new NewWebServiceAction(graphicalModelRefactor)); newMenu.add(newResourceAction = new NewResourceAction(graphicalModelRefactor.getEditor())); newMenu.add(newChannelAction = new NewChannelAction(graphicalModelRefactor.getEditor())); diff --git a/AlgebraicDataflowArchitectureModel/src/models/webServices/Service.java b/AlgebraicDataflowArchitectureModel/src/models/webServices/Service.java deleted file mode 100644 index 42a5cc4..0000000 --- a/AlgebraicDataflowArchitectureModel/src/models/webServices/Service.java +++ /dev/null @@ -1,80 +0,0 @@ -package models.webServices; - -import java.util.ArrayList; -import java.util.List; - -import models.dataConstraintModel.IdentifierTemplate; - -public class Service { - private String name = null; - private String baseURL = null; - private ArrayList identifireTemplates = null; - - /**-------------------------------------------------------------------------------- - * [Constructor] - /**-------------------------------------------------------------------------------- - * identifireTemplates are Empty - * - * @param name : it's Web services name. - */ - public Service(final String name, final String baseURL) { - this.name = name; - this.baseURL = baseURL; - this.identifireTemplates = new ArrayList<>(); - } - - /**-------------------------------------------------------------------------------- - * - * @param name : it's Web services name. - * @param identifierTemplates : the list of resources which formal model of DTRAM. - */ - public Service(final String name, final ArrayList identifierTemplates) { - this.name = name; - this.identifireTemplates = identifierTemplates; - } - - /**-------------------------------------------------------------------------------- - * Copy Constructor - * - * @param name : it's Web services name. - */ - private Service(final Service copy) { - this.name = copy.name; - this.baseURL = copy.baseURL; - this.identifireTemplates = copy.identifireTemplates; - } - - /**-------------------------------------------------------------------------------- - * [public] - /**-------------------------------------------------------------------------------- - * [getter] - * - * @return you'll get name of service. - */ - public String getName() { - return this.name; - } - - /**-------------------------------------------------------------------------------- - * @return you'll get services's baseURL - */ - public String getBaseURL() { - return this.baseURL; - } - - /**-------------------------------------------------------------------------------- - * @return you'll get list of an identifier template. - */ - public List getIdentifierTemplates(){ - return this.identifireTemplates; - } - - /**-------------------------------------------------------------------------------- - * add new to List - * - * @param identifierTemplate - */ - public void addIdentifireTemplate(final IdentifierTemplate identifierTemplate) { - this.identifireTemplates.add(identifierTemplate); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/models/webServices/WebServicesInfo.java b/AlgebraicDataflowArchitectureModel/src/models/webServices/WebServicesInfo.java deleted file mode 100644 index 4e9eeb6..0000000 --- a/AlgebraicDataflowArchitectureModel/src/models/webServices/WebServicesInfo.java +++ /dev/null @@ -1,46 +0,0 @@ -package models.webServices; - -import java.util.ArrayList; -import java.util.List; - -public class WebServicesInfo { - - private ArrayList services = null; - - /**-------------------------------------------------------------------------------- - * [Constructor] - /**-------------------------------------------------------------------------------- - * - */ - public WebServicesInfo() { - this.services = new ArrayList<>(); - } - - /**-------------------------------------------------------------------------------- - * copy constructor - */ - private WebServicesInfo(final WebServicesInfo webServicesInfo) { - this.services = webServicesInfo.services; - } - - - /**-------------------------------------------------------------------------------- - * [public] - /**-------------------------------------------------------------------------------- - * [getter] - * - * @return you'll get list of a service. - */ - public List getServices(){ - return this.services; - } - - /**-------------------------------------------------------------------------------- - * [setter] - * - * @param service - */ - public void addService(final Service service) { - this.services.add(service); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAMForWebService.java b/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAMForWebService.java deleted file mode 100644 index 38c4b1d..0000000 --- a/AlgebraicDataflowArchitectureModel/src/parser/ParserDTRAMForWebService.java +++ /dev/null @@ -1,112 +0,0 @@ -package parser; - -import java.io.BufferedReader; - -import graphicalrefactor.editor.WebServiceEditor; -import models.dataConstraintModel.IdentifierTemplate; -import models.dataFlowModel.DataFlowModel; -import models.webServices.Service; -import parser.exceptions.ExpectedAssignment; -import parser.exceptions.ExpectedLeftCurlyBracket; -import parser.exceptions.ExpectedRightBracket; -import parser.exceptions.webService.ExpectedBaseURL; -import parser.exceptions.webService.ExpectedResources; -import parser.exceptions.webService.ExpectedWebService; - -/**-------------------------------------------------------------------------------- - * This parser is selected, if somebody designs a web-service. - * @author k-Fujii - */ -public class ParserDTRAMForWebService extends ParserDTRAM { - - private static final String SERVICES_GROUP = "services"; - private static final String SERVICE_GROUP = "service"; - private static final String BASE_URL_OPTION = "baseURL"; - private static final String RESOURCES_OPTION = "resources"; - - /**-------------------------------------------------------------------------------- - * [constructor] - /**-------------------------------------------------------------------------------- - * - * @param reader - */ - public ParserDTRAMForWebService(final TokenStream stream) { - super(stream); - } - - /**-------------------------------------------------------------------------------- - * - * @param reader - */ - public ParserDTRAMForWebService(final BufferedReader reader) { - super(reader); - } - - /**-------------------------------------------------------------------------------- - * [public] - /**-------------------------------------------------------------------------------- - * execute to parse the DTRAM file. - * - * @param editor - * @param model - */ - public void doParseWebService(WebServiceEditor editor, DataFlowModel model) - throws - ExpectedWebService, ExpectedBaseURL, ExpectedResources, - ExpectedLeftCurlyBracket, ExpectedRightBracket, ExpectedAssignment - { - parseWebService(editor, model); - } - - /**-------------------------------------------------------------------------------- - * [private] - /**-------------------------------------------------------------------------------- - * parse to Web service's options in the DTRAM file. - * - * @param stream - */ - private void parseWebService(WebServiceEditor editor, DataFlowModel model) - throws - ExpectedWebService, ExpectedBaseURL, ExpectedResources, - ExpectedLeftCurlyBracket, ExpectedRightBracket, ExpectedAssignment - { - if (!isMatchKeyword(stream.next(), SERVICES_GROUP )) throw new ExpectedWebService(stream.getLine()); - if (!isMatchKeyword(stream.next(), LEFT_CURLY_BRACKET)) throw new ExpectedLeftCurlyBracket(stream.getLine()); - - String serviceTokenNode = stream.next(); - while (isMatchKeyword(serviceTokenNode, SERVICE_GROUP)) { - String serviceName = stream.next(); // it gets a service name here. - - if (!isMatchKeyword(stream.next(), LEFT_CURLY_BRACKET)) throw new ExpectedLeftCurlyBracket(stream.getLine()); - if (!isMatchKeyword(stream.next(), BASE_URL_OPTION)) throw new ExpectedBaseURL(stream.getLine()); - if (!isMatchKeyword(stream.next(), COLON)) throw new ExpectedAssignment(stream.getLine()); - - String baseURL = stream.next(); // it gets a service's base URL here. - - if (!isMatchKeyword(stream.next(), RESOURCES_OPTION)) throw new ExpectedResources(stream.getLine()); - if (!isMatchKeyword(stream.next(), COLON)) throw new ExpectedAssignment(stream.getLine()); - - // get specific resources from DataFlowModel. - Service service = new Service(serviceName, baseURL); - - while (true) { - // generate here. - String resourceName = stream.next(); - IdentifierTemplate identifierTemplate = model.getIdentifierTemplate(resourceName); - service.addIdentifireTemplate(identifierTemplate); - - if (!isMatchKeyword(stream.checkNext(), COMMA)) break; - - stream.next(); // advance to next token - } - - editor.addWebService(service); // reflect to instance of "WebServiceEditor". - - if (!isMatchKeyword(stream.next(), RIGHT_CURLY_BRACKET)) throw new ExpectedRightBracket(stream.getLine()); - - serviceTokenNode = stream.next(); // serviceTokenNode'll store "}" token. - } - - if (!isMatchKeyword(serviceTokenNode, RIGHT_CURLY_BRACKET)) throw new ExpectedRightBracket(stream.getLine()); - } -} diff --git a/AlgebraicDataflowArchitectureModel/src/tests/parser/ParserDTRAMForWebServiceTest.java b/AlgebraicDataflowArchitectureModel/src/tests/parser/ParserDTRAMForWebServiceTest.java deleted file mode 100644 index 1b83f50..0000000 --- a/AlgebraicDataflowArchitectureModel/src/tests/parser/ParserDTRAMForWebServiceTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package tests.parser; - -import static org.junit.Assert.*; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; - -import org.junit.Test; - -import com.mxgraph.view.mxGraph; - -import graphicalrefactor.editor.WebServiceEditor; -import models.dataFlowModel.DataFlowModel; -import parser.ParserDTRAMForWebService; - -public class ParserDTRAMForWebServiceTest { - - @Test - public void test() { -// File file = new File("models/WOS.dtram"); -// -// try { -// mxGraph graph = new mxGraph(); -// WebServiceEditor editor = new WebServiceEditor(graph); -// -// ParserDTRAMForWebService parser = new ParserDTRAMForWebService(new BufferedReader(new FileReader(file))); -// -// try { -// editor.open(file); -// parser.doParseGeometry(graph); -// parser.doParseWebService(, model) -// }catch() { -// -// } -// } -// catch(FileNotFoundException e) { -// e.printStackTrace(); -// } - } - -}