EtlTransformer.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.IEtlTransformParameter;
00010 import org.eclipse.core.runtime.FileLocator;
00011 import org.eclipse.epsilon.common.parse.problem.ParseProblem;
00012 import org.eclipse.epsilon.emc.emf.EmfModel;
00013 import org.eclipse.epsilon.eol.IEolExecutableModule;
00014 import org.eclipse.epsilon.eol.exceptions.EolRuntimeException;
00015 import org.eclipse.epsilon.eol.exceptions.models.EolModelLoadingException;
00016 import org.eclipse.epsilon.etl.EtlModule;
00017 
00018 public class EtlTransformer {
00019 
00020         private IEtlTransformParameter parameter;
00021 
00022         
00023         public EtlTransformer(IEtlTransformParameter etlTransformParameter) {
00024                 parameter = etlTransformParameter;
00025                 
00026         }
00027 
00028         public void transform()
00029         {
00030 
00031 
00032                 //URL transformationEntry = Platform.getBundle(parameter.getPluginID()).getEntry(parameter.getEtlTransformPath());
00033                 URL transformationEntry = null;
00034                 try {
00035                         transformationEntry = new URL(parameter.getEtlTransformPath());
00036                 } catch (MalformedURLException e1) {
00037                         // TODO Auto-generated catch block
00038                         e1.printStackTrace();
00039                 }
00040                 
00041                 
00042                 URL resolvedTransformationURL = null;
00043                 URI transformURI = null;
00044                 try {
00045                         resolvedTransformationURL = FileLocator
00046                                         .resolve(transformationEntry);
00047                         transformURI = resolvedTransformationURL.toURI();
00048                 } catch (IOException e) {
00049                         e.printStackTrace();
00050                 } catch (URISyntaxException e) {
00051                         e.printStackTrace();
00052                 }
00053 
00054                 IEolExecutableModule etlModule = new EtlModule();
00055                 try {
00056                         etlModule.parse(transformURI);
00057                 } catch (Exception e) {
00058                         e.printStackTrace();
00059                 }
00060 
00061                 if (etlModule.getParseProblems().size() > 0) {
00062                         System.err.println("Parse errors occured...");
00063                         for (ParseProblem problem : etlModule.getParseProblems()) {
00064                                 System.err.println(problem.toString());
00065                         }
00066                 }
00067                 etlModule.getContext().getModelRepository().addModel(createSource());
00068                 etlModule.getContext().getModelRepository().addModel(createTarget());
00069                 try {
00070                         etlModule.execute();
00071                 } catch (EolRuntimeException e) {
00072                         e.printStackTrace();
00073                 }
00074 
00075 
00076                 etlModule.getContext().getModelRepository().dispose();
00077 
00078         }
00079 
00080         protected EmfModel createSource() {
00081                 EmfModel emfModel = new EmfModel();
00082                 emfModel.setName(parameter.getSourceName());
00083                 emfModel.setMetamodelUri(parameter.getSourceMetaModelURI());
00084                 emfModel.setModelFile(parameter.getSourceModelFilePath());
00085                 emfModel.setReadOnLoad(parameter.isSourceReadOnLoad());
00086                 emfModel.setStoredOnDisposal(parameter.isSourceStoreOnDisposal());
00087                 try {
00088                         emfModel.load();
00089                 } catch (EolModelLoadingException e) {
00090                         e.printStackTrace();
00091                 }
00092                 return emfModel;
00093         }
00094 
00095         protected EmfModel createTarget() {
00096                 EmfModel emfModel = new EmfModel();
00097                 emfModel.setName(parameter.getTargetName());
00098                 emfModel.setMetamodelUri(parameter.getTargetMetaModelURI());
00099                 emfModel.setModelFile(parameter.getTargetModelFilePath());
00100                 emfModel.setReadOnLoad(parameter.isTargetReadOnLoad());
00101                 emfModel.setStoredOnDisposal(parameter.isTargetStoreOnDisposal());
00102                 try {
00103                         emfModel.load();
00104                 } catch (EolModelLoadingException e) {
00105                         e.printStackTrace();
00106                 }
00107                 return emfModel;
00108         }
00109 
00110 
00111 }


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