public String StateChartToIAC(String filename, String Path) { String file = new String(); statechart.Model old = (statechart.Model) StatechartFactory.eINSTANCE.createModel(); ResourceSet resourceSet1 = new ResourceSetImpl(); resourceSet1 .getResourceFactoryRegistry() .getExtensionToFactoryMap() .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); resourceSet1.getPackageRegistry().put(StatechartPackage.eNS_URI, StatechartPackage.eINSTANCE); Resource resource = resourceSet1.createResource(URI.createURI(StatechartPackage.eNS_URI)); try { File source = new File(filename); resource.load(new FileInputStream(source), new HashMap<Object, Object>()); resource.load(null); old = (statechart.Model) resource.getContents().get(0); root = old.getNodes().get(0); IACroot = StatechartNodeToIACNode(root); IACModel.getNodes().add(IACroot); for (int i = 0; i < root.getChildren().size(); i++) { IACModel.getNodes().add(StatechartNodeToIACNode(root.getChildren().get(i))); DFAccess(root.getChildren().get(i)); } IAC.Transition item = IACFactory.eINSTANCE.createTransition(); for (Iterator<statechart.Transition> it = old.getTransitions().iterator(); it.hasNext(); ) { statechart.Transition cur = it.next(); item = IACFactory.eINSTANCE.createTransition(); item.setName(cur.getName()); if (cur.getTE() != null) item.setTE(cur.getTE()); item.setSource(getNodeIAC(cur.getSource().getLabel())); item.setTarget(getNodeIAC(cur.getTarget().getLabel())); IACModel.getTransitions().add(item); } IAC.Variable var; for (int i = 0; i < old.getVariables().size(); i++) { var = IACFactory.eINSTANCE.createVariable(); var.setName(old.getVariables().get(i).getName()); var.setType(old.getVariables().get(i).getType()); IACModel.getVariables().add(var); } DFAddVariables(root); IACModel.setName(old.getName()); ResourceSet resourceSet = new ResourceSetImpl(); // Register the appropriate resource factory to handle all file // extensions. // resourceSet .getResourceFactoryRegistry() .getExtensionToFactoryMap() .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); // Register the package to ensure it is available during loading. // resourceSet.getPackageRegistry().put(StatechartPackage.eNS_URI, IACPackage.eINSTANCE); Resource resource1 = resourceSet.createResource(URI.createURI(IACPackage.eNS_URI)); resource1.getContents().add(IACModel); try { file = Path + File.separator + IACModel.getName() + "_new.iac"; FileOutputStream out = new FileOutputStream(new File(file)); resource1.save(out, null); // createDialog("The new Model is in the file : " +file); } catch (Exception e) { // TODO: handle exception // createDialog(e.getMessage()); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block // createDialog(e.getMessage()); } catch (IOException e) { // TODO Auto-generated catch block // createDialog(e.getMessage()); } return file; }