Как создать автономную модель из проекта .edit в EMF? - PullRequest
0 голосов
/ 05 октября 2019

Я хочу запустить свою модель (.genmodel) вне Eclipse (то есть как отдельную модель). Я сделал обширный поиск по этому вопросу. Я знаю, что редактировать проекты могут работать автономно. Сейчас я пытаюсь добиться этого с помощью нового проекта плагина. Ниже приведен код. Я просто не уверен, что это правильный метод для достижения этой цели. Любые предложения будут высоко оценены. Я новичок в EMF, так что не знаю, где поместить в основной класс, который я написал. Должен ли он идти в рамках проекта редактирования или как отдельный плагин?

import java.util.Collections;

import java.io.IOException;
import org.eclipse.emf.common.util.URI;
//import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
//import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl;
import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;

import asdl.asdlPackage;



public class UsingEMFModel {
/** Create Resource Manager**/
public static void startResourceManager() {

    /** Register factory**/
    Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("ecore", new EcoreResourceFactoryImpl());

    /** Register package**/
    asdlPackage.eINSTANCE.eClass();
}

/**Create ResourceSet**/
public static ResourceSet createResourceSet() {
    ResourceSet rs= new ResourceSetImpl();
    rs.getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION, new EcoreResourceFactoryImpl());
    rs.getURIConverter().getURIMap().putAll(EcorePlugin.computePlatformURIMap(false));
    return rs;

}

    public static void main(String[] args) {
    // TODO Auto-generated method stub
        /**Initiate Resource Manager**/
        UsingEMFModel.startResourceManager();
        ResourceSet rs=UsingEMFModel.createResourceSet();

        /**Get URI for model**/
        URI fileURI= URI.createPlatformPluginURI("platform:/resource/TestFullIntegration/DepartureIntegration/model/landingIntegration.ecore", false);

        /**Load resource for the file**/
        Resource resource=rs.getResource(fileURI,true);

        try {
            resource.save(System.out, Collections.EMPTY_MAP);

        }
        catch(IOException e) {}
}

}

...