001package org.nasdanika.html.ecore; 002 003import java.util.ArrayList; 004import java.util.List; 005 006import org.eclipse.emf.codegen.ecore.genmodel.GenModel; 007import org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage; 008import org.eclipse.emf.codegen.ecore.genmodel.GenPackage; 009import org.eclipse.emf.ecore.EPackage; 010import org.eclipse.emf.ecore.EcorePackage; 011import org.eclipse.emf.ecore.resource.Resource; 012import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; 013import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 014 015public class GenModelResourceSet extends ResourceSetImpl { 016 017 public GenModelResourceSet() { 018 getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); 019 020 getPackageRegistry().put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE); 021 getPackageRegistry().put(GenModelPackage.eNS_URI, GenModelPackage.eINSTANCE); 022 } 023 024 /** 025 * @return Top level EPackage's. 026 */ 027 public List<EPackage> getEPackages() { 028 List<EPackage> ret = new ArrayList<>(); 029 for (Resource res: new ArrayList<>(getResources())) { 030 for (Object contents: res.getContents()) { 031 if (contents instanceof GenModel) { 032 for (GenPackage genPackage: ((GenModel) contents).getGenPackages()) { 033 ret.add(genPackage.getEcorePackage()); 034 } 035 } 036 } 037 } 038 return ret; 039 } 040 041}