Я хочу запустить свою модель (.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) {}
}
}