Manipulation des transformations QVTO
Bonjour,
J'essaie d'exécuter une transformation, essentiellement via le code donné ici : http://wiki.eclipse.org/QVTOML/Examples/InvokeInJava.
Cela fonctionne pour mes ressources:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| URI transformationURI = URI.createURI("platform:/resource/tests/transforms/ecore2uml.qvto");
TransformationExecutor executor = new TransformationExecutor(transformationURI);
ResourceSet resourceSet = new ResourceSetImpl();
Resource inResource = resourceSet.getResource(URI.createURI("platform:/resource/tests/model/Model1.ecore"), true);
EList<EObject> inObjects = inResource.getContents();
ModelExtent input = new BasicModelExtent(inObjects);
ModelExtent output = new BasicModelExtent();
ExecutionContextImpl context = new ExecutionContextImpl();
context.setConfigProperty("keepModeling",true);
ExecutionDiagnostic result = executor.execute(context, input, output);
if(result.getSeverity() == Diagnostic.OK) {
// the output objects got captured in the output extent
List<EObject> outObjects = output.getContents();
// let's persist them using a resource
ResourceSet resourceSet2 = new ResourceSetImpl();
Resource outResource = resourceSet2.getResource(URI.createURI("platform:/resource/tests/model/Model2.uml"), true); |
Mais un message d'erreur se produit lorsque j'exécute cette transformation qvto :
Citation:
Exception in thread "main" java.lang.RuntimeException: Cannot create a resource for 'platform:/resource/tests/model/Model1.ecore'; a registered resource factory is needed
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource (ResourceSetImpl.java:394) :
Ce qu'il a déclaré lors de la ressource est nul.
Je suis habitué d'une ressource .ecore.
Quelqu'un saurait-il m'expliquer ce qui ne va pas ?
Merci d'avance pour votre aide.