EGLTransformer.java
Go to the documentation of this file.
00001 package org.best_of_robotics.transform.ros.to.cplusplus;
00002 
00003 import java.io.IOException;
00004 import java.net.MalformedURLException;
00005 import java.net.URI;
00006 import java.net.URISyntaxException;
00007 import java.net.URL;
00008 
00009 import org.best_of_robotics.transform.service.parameter.IEglTransformParameter;
00010 import org.eclipse.core.runtime.FileLocator;
00011 import org.eclipse.epsilon.common.parse.problem.ParseProblem;
00012 import org.eclipse.epsilon.egl.EglFileGeneratingTemplateFactory;
00013 import org.eclipse.epsilon.egl.EglTemplateFactoryModuleAdapter;
00014 import org.eclipse.epsilon.egl.exceptions.EglRuntimeException;
00015 import org.eclipse.epsilon.emc.emf.EmfModel;
00016 import org.eclipse.epsilon.eol.IEolExecutableModule;
00017 import org.eclipse.epsilon.eol.dt.ExtensionPointToolNativeTypeDelegate;
00018 import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
00019 import org.eclipse.epsilon.eol.exceptions.models.EolModelLoadingException;
00020 
00021 public class EGLTransformer {
00022         
00023         IEglTransformParameter parameter;
00024         
00025         public EGLTransformer(IEglTransformParameter param) {
00026                 parameter = param;
00027                 
00028         }
00029         
00030         public void transform()
00031         {
00032                 //URL transformationEntry = Platform.getBundle(parameter.getPluginID()).getEntry(parameter.getEglTransformation());
00033                 URL transformationEntry = null;
00034                 try {
00035                         transformationEntry = new URL(parameter.getEglTransformation());
00036                 } catch (MalformedURLException e1) {
00037                         // TODO Auto-generated catch block
00038                         e1.printStackTrace();
00039                 }
00040                 URL resolvedTransformationURL = null;
00041                 URI transformURI = null;
00042                 
00043                 try {
00044                         resolvedTransformationURL = FileLocator
00045                                         .resolve(transformationEntry);
00046                         transformURI = resolvedTransformationURL.toURI();
00047                 } catch (IOException e) {
00048                         e.printStackTrace();
00049                 } catch (URISyntaxException e) {
00050                         e.printStackTrace();
00051                 }
00052                 
00053                 
00054 
00055                 EglFileGeneratingTemplateFactory eglTemplateFactory = new EglFileGeneratingTemplateFactory();
00056                 IEolExecutableModule eglModule = new EglTemplateFactoryModuleAdapter(
00057                                 eglTemplateFactory);
00058                 try {
00059                         eglTemplateFactory.setOutputRoot(parameter.getOutputRoot());
00060                         eglModule.parse(transformURI);
00061                 } catch (EglRuntimeException e2) {
00062                         e2.printStackTrace();
00063                 } catch (Exception e) {
00064                         e.printStackTrace();
00065                 }
00066 
00067                 if (eglModule.getParseProblems().size() > 0) {
00068                         System.err.println("Parse errors occured...");
00069                         for (ParseProblem problem : eglModule.getParseProblems()) {
00070                                 System.err.println(problem.toString());
00071                         }
00072                 }
00073                 eglModule.getContext().getNativeTypeDelegates().add(new ExtensionPointToolNativeTypeDelegate());
00074                 
00075                 EmfModel emfModel = new EmfModel();
00076                 emfModel.setName(parameter.getSourceName());
00077                 emfModel.setMetamodelUri(parameter.getSourceMetaModelURI());
00078                 emfModel.setModelFile(parameter.getSourceModelFilePath());
00079                 emfModel.setReadOnLoad(parameter.isSourceReadOnLoad());
00080                 emfModel.setStoredOnDisposal(parameter.isSourceStoreOnDisposal());
00081                 try {
00082                         emfModel.load();
00083                 } catch (EolModelLoadingException e) {
00084                         e.printStackTrace();
00085                 }
00086                 
00087                 eglModule.getContext().getModelRepository().addModel(emfModel);
00088                 try {
00089                         eglModule.execute();
00090                 } catch (EolRuntimeException e) {
00091                         e.printStackTrace();
00092                 }
00093                 eglModule.getContext().getModelRepository().dispose();
00094         }
00095 
00096 }


bride_plugin_source
Author(s): Alexander Bubeck
autogenerated on Sun Oct 5 2014 22:38:34