| /******************************************************************************* |
| * Copyright (c) 2007, 2010 BMW Car IT, Technische Universitaet Muenchen, 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: |
| * BMW Car IT - Initial API and implementation |
| * Technische Universitaet Muenchen - Major refactoring and extension |
| *******************************************************************************/ |
| package org.eclipse.emf.edapt.cdo.migration.execution; |
| |
| import java.io.IOException; |
| import java.util.List; |
| |
| import org.eclipse.emf.common.util.URI; |
| import org.eclipse.emf.ecore.EPackage; |
| import org.eclipse.emf.ecore.resource.ResourceSet; |
| import org.eclipse.emf.edapt.cdo.migration.StrategyBackwardConverter; |
| import org.eclipse.emf.edapt.cdo.migration.StrategyForwardConverter; |
| import org.eclipse.emf.edapt.internal.common.MetamodelExtent; |
| import org.eclipse.emf.edapt.internal.common.ResourceUtils; |
| import org.eclipse.emf.edapt.internal.migration.internal.Persistency; |
| import org.eclipse.emf.edapt.spi.migration.Metamodel; |
| import org.eclipse.emf.edapt.spi.migration.Model; |
| |
| /** |
| * Helper class for loading and saving models. |
| * |
| * @author herrmama |
| * @author Christophe Bouhier |
| * @version $Rev$ |
| * @levd.rating YELLOW Hash: 7340771F1DE173BDAA2534B8901681B1 |
| */ |
| public class CDOPersistency extends Persistency { |
| |
| /** |
| * Save model to an explity URI. |
| * |
| * @param model |
| * @param extent |
| * @param list |
| * @throws IOException |
| */ |
| public static void saveModel(Model model, MetamodelExtent extent, |
| List<URI> list) throws IOException { |
| |
| final StrategyBackwardConverter bConverter = new StrategyBackwardConverter( |
| extent, list); |
| final ResourceSet resourceSet = bConverter.convert(model); |
| ResourceUtils.saveResourceSet(resourceSet, null); |
| } |
| |
| public static Model loadModel(List<URI> modelURIs, Metamodel metamodel, |
| ResourceSet set) throws IOException { |
| |
| // Register all our packages...otherwise proxy resolve won't work. |
| for (final EPackage pack : metamodel.getEPackages()) { |
| set.getPackageRegistry().put(pack.getNsURI(), pack); |
| } |
| |
| ResourceUtils.loadResourceSet(modelURIs, set); |
| final StrategyForwardConverter fConverter = new StrategyForwardConverter( |
| metamodel.getEPackages()); |
| final Model model = fConverter.convert(set); |
| model.setMetamodel(metamodel); |
| return model; |
| } |
| |
| } |