package graphicalrefactor.editor; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import com.mxgraph.view.mxGraph; import algorithms.UpdateConflictCheck; 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 webServices = null; /**-------------------------------------------------------------------------------- * [constructor] /**-------------------------------------------------------------------------------- * * @param graph : the editor of generate prototype tool. * */ public WebServiceEditor(final mxGraph graph) { super(graph); this.webServices = new WebServicesInfo(); } /**-------------------------------------------------------------------------------- * [public] /**-------------------------------------------------------------------------------- /** * @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; } /**-------------------------------------------------------------------------------- * setter /**-------------------------------------------------------------------------------- /** * @param service */ public void addWebService(final Service service) { this.webServices.addService(service); } }