public List<GenPackage> createGenPackages(GenModel genModel, VirtualFile basedir) throws DatabaseException { ResourceSetImpl resourceSet = new ResourceSetImpl(); resourceSet .getResourceFactoryRegistry() .getExtensionToFactoryMap() .put("ecore", new EcoreResourceFactoryImpl()); Map<VirtualFile, Resource> resources = new HashMap<VirtualFile, Resource>(); genModel.initialize(schema.getEPackages()); for (GenPackage genPackage : genModel.getGenPackages()) { genPackage.setBasePackage("org.bimserver.models"); } for (EPackage ePackage : schema.getEPackages()) { // GenPackage genPackage = genModel.get // result.add(genPackage); // genModel.getGenPackages().add(genPackage); // genPackage.initialize(ePackage); // for (EClassifier eClassifier : ePackage.getEClassifiers()) { // if (eClassifier instanceof EClass) { // EClass eClass = (EClass) eClassifier; // GenClass genClass = GenModelFactory.eINSTANCE.createGenClass(); // genClass.initialize(eClass); // genPackage.getGenClasses().add(genClass); // for (EStructuralFeature eStructuralFeature : // eClass.getEStructuralFeatures()) { // GenFeature genFeature = // GenModelFactory.eINSTANCE.createGenFeature(); // genFeature.initialize(eStructuralFeature); // genFeature.setEcoreFeature(eStructuralFeature); // genClass.getGenFeatures().add(genFeature); // } // } else if (eClassifier instanceof EEnum) { // EEnum eEnum = (EEnum) eClassifier; // GenEnum genEnum = GenModelFactory.eINSTANCE.createGenEnum(); // genEnum.setEcoreEnum(eEnum); // genPackage.getGenEnums().add(genEnum); // for (EEnumLiteral eEnumLiteral : eEnum.getELiterals()) { // GenEnumLiteral genEnumLiteral = // GenModelFactory.eINSTANCE.createGenEnumLiteral(); // genEnumLiteral.setEcoreEnumLiteral(eEnumLiteral); // genEnum.getGenEnumLiterals().add(genEnumLiteral); // } // } else if (eClassifier instanceof EDataType) { // GenDataType genDataType = // GenModelFactory.eINSTANCE.createGenDataType(); // genDataType.setEcoreDataType((EDataType) eClassifier); // genPackage.getGenDataTypes().add(genDataType); // } // } Resource resource = resourceSet.createResource(URI.createURI(ePackage.getName() + ".ecore")); resource.getContents().add(ePackage); VirtualFile ecoreFile = basedir.createFile( MODEL_PACKAGE.replace(".", "/") + ePackage.getName() + "/impl/" + ePackage.getName() + ".ecore"); resources.put(ecoreFile, resource); } for (VirtualFile virtualFile : resources.keySet()) { try { Resource resource = resources.get(virtualFile); OutputStream openOutputStream = virtualFile.openOutputStream(); resource.save(openOutputStream, null); openOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } } return genModel.getGenPackages(); }