package org.eclipselabs.spray.xtext.ui.internal; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.emf.codegen.ecore.genmodel.GenModel; import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; 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.mwe.core.ConfigurationException; import org.eclipse.emf.mwe.utils.GenModelHelper; public class MweGenModelHelperExt extends GenModelHelper { private Log log = LogFactory.getLog(getClass()); public void unregisterGenModel(ResourceSet rs, URI genmodelURI) throws ConfigurationException { Resource res = rs.getResource(genmodelURI, true); if (res == null) throw new ConfigurationException("Couldn't find resource under " + genmodelURI); for (EObject object : res.getContents()) if (object instanceof GenModel) unregisterGenModel((GenModel) object); } public void unregisterGenModel(GenModel genModel) { Map<String, URI> registry = EcorePlugin.getEPackageNsURIToGenModelLocationMap(); for (GenPackage pkg : collectGenPackages(genModel)) { String nsURI = pkg.getEcorePackage().getNsURI(); if (nsURI != null) { if (log.isInfoEnabled()) log.info("Unregistered GenModel '" + nsURI + "' from '" + registry.get(nsURI) + "'"); registry.remove(nsURI); } } } }