/* * Copyright (c) 2011, 2012, 2015 Eike Stepper (Berlin, Germany) and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Martin Fluegge - initial API and implementation */ package org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.emf.ui.actions; import org.eclipse.emf.cdo.dawn.codegen.actions.GenerateDawnGenModelAction; import org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.DawnFragmentGenerator; import org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.emf.dawnEmfGenmodel.DawnEMFGenerator; import org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.emf.dawnEmfGenmodel.DawnEmfGenmodelFactory; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.core.resources.IFile; /** * @author Martin Fluegge */ public class GenerateDawnGenModelEMFAction extends GenerateDawnGenModelAction { protected final String emfGenmodelFileExtension = "emf"; @Override protected DawnFragmentGenerator getDawnFragmentGenerator(IFile genFile, ResourceSet resourceSet) { String genModelFile = genFile.getRawLocationURI().toString(); DawnEMFGenerator dawnEMFGenerator = DawnEmfGenmodelFactory.eINSTANCE.createDawnEMFGenerator(); URI emfGenModelResourceUri = URI.createURI(genModelFile); Resource emfGenModelResource = resourceSet.getResource(emfGenModelResourceUri, true); GenModel genModel = (GenModel)emfGenModelResource.getContents().get(0); dawnEMFGenerator.setDawnEditorClassName("Dawn" + genModel.getModelName() + "Editor"); dawnEMFGenerator.setFragmentName(genModel.getEditorPluginID() + ".dawn"); dawnEMFGenerator.setEmfGenModel(genModel); return dawnEMFGenerator; } @Override protected ResourceSet createResourceSet() { ResourceSet resourceSet = super.createResourceSet(); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("genmodel", new XMIResourceFactoryImpl()); return resourceSet; } @Override protected Resource getDawnFragmentModelResource(String path, String modelname, ResourceSet resourceSet) { return getResource(path, modelname, resourceSet, dawngenmodelFileExtension + "_" + emfGenmodelFileExtension); } }