Re: Problem with href [message #493202] |
Fri, 23 October 2009 15:12 |
Eclipse User |
|
|
|
Originally posted by: fabrice.lima.lopes.gmail.com
Thank u for reply Cédric.
Yes i registered all the required ecore models in the EPackage registry
in my Java code.
------------------------------------------------------------ -------------
------------------------------------------------------------ -------------
package atl;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.HashMap;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.m2m.atl.core.ATLCoreException;
import org.eclipse.m2m.atl.core.IReferenceModel;
import org.eclipse.m2m.atl.core.emf.EMFExtractor;
import org.eclipse.m2m.atl.core.emf.EMFInjector;
import org.eclipse.m2m.atl.core.emf.EMFModel;
import org.eclipse.m2m.atl.core.emf.EMFModelFactory;
import org.eclipse.m2m.atl.core.launch.ILauncher;
import org.eclipse.m2m.atl.engine.emfvm.launch.EMFVMLauncher;
import
com.sebastian2.server.domainobject.emfobject.referential.Ref erentialPackage;
import fcp.FcpPackage;
import fcp.util.FcpResourceFactoryImpl;
public class ToReferential {
public static void main(String[] args) throws ATLCoreException,
FileNotFoundException {
// Préparation de la factory EMF
FcpPackage fcpPackage = FcpPackage.eINSTANCE;
ReferentialPackage refPackage = ReferentialPackage.eINSTANCE;
EMFModelFactory factory = new EMFModelFactory();
factory.getResourceSet().getResourceFactoryRegistry()
.getExtensionToFactoryMap().put("xml",
new FcpResourceFactoryImpl());
factory.getResourceSet().getResourceFactoryRegistry()
.getExtensionToFactoryMap().put("xmi",
new XMIResourceFactoryImpl());
factory.getResourceSet().getPackageRegistry().put(
fcpPackage.getNsURI(), fcpPackage);
factory.getResourceSet().getPackageRegistry().put(
refPackage.getNsURI(), refPackage);
// Chargement des metamodèles
EMFInjector injector = new EMFInjector();
IReferenceModel fcpMetaModel = factory.newReferenceModel();
injector.inject(fcpMetaModel, fcpPackage.eResource());
IReferenceModel refMetaModel = factory.newReferenceModel();
injector.inject(refMetaModel, refPackage.eResource());
// Chargement du montage Fcp
EMFModel fcpModel = (EMFModel) factory.newModel(fcpMetaModel);
injector.inject(fcpModel, "file:/"
+ new File("Model/fcp.xml").getAbsolutePath());
// Lancement de la transformation ATL
EMFModel refModel = (EMFModel) factory.newModel(refMetaModel);
EMFVMLauncher launcher = new EMFVMLauncher();
launcher.initialize(null);
launcher.addInModel(fcpModel, "IN", "FCP");
launcher.addOutModel(refModel, "OUT", "Sebastian");
InputStream atlStream = new FileInputStream(
"Transformations/FCPToSebastian.asm");
HashMap<String, Object> parameters = new HashMap<String, Object>();
launcher.launch(ILauncher.RUN_MODE, new NullProgressMonitor(),
parameters, atlStream);
// Ecriture du modèle Fcp
HashMap<String, Object> options = new HashMap<String, Object>();
EMFExtractor extractor = new EMFExtractor();
extractor.extract(refModel, "file:/"
+ new File("Model/Sebastian.xmi").getAbsolutePath(),options);
}
}
|
|
|
Powered by
FUDForum. Page generated in 0.02723 seconds