String cdoSuffix = (String) ctx.getValue("cdoSuffix"); | |
newGenModel.setModelPluginID(newGenModel.getModelPluginID() + "." + cdoSuffix); | |
newGenModel.setModelDirectory(newGenModel.getModelDirectory().replace(genModel.getModelPluginID(), newGenModel.getModelPluginID())); | |
//replace usedGenPackages by cdo usedGenPackages | |
List<GenPackage> usedGenPackages = new ArrayList<GenPackage>(); | |
for (GenPackage genPackage : genModel.getUsedGenPackages()) { | |
URI uri = EcoreUtil.getURI(genPackage); | |
URI newURI = null; | |
if (uri.toString().contains(genPackage.getGenModel().getModelPluginID())) { | |
newURI = URI.createURI(uri.toString().replace(genPackage.getGenModel().getModelPluginID(), genPackage.getGenModel().getModelPluginID() + "." + cdoSuffix)); | |
} else { | |
newURI = URI.createPlatformResourceURI(genPackage.getGenModel().getModelPluginID() + "." + cdoSuffix + "/model/" + uri.lastSegment(), true).appendFragment(uri.fragment()); | |
} | |
try { | |
Resource resource = genPackage.eResource().getResourceSet().getResource(newURI.trimFragment(), true); | |
GenPackage newGenPackage = (GenPackage) resource.getEObject(newURI.fragment()); | |
if (newGenPackage != null) | |
usedGenPackages.add(newGenPackage); | |
else | |
usedGenPackages.add(genPackage); | |
} catch (Exception exception) { | |
usedGenPackages.add(genPackage); | |
} | |
} | |
newGenModel.getUsedGenPackages().clear(); | |
newGenModel.getUsedGenPackages().addAll(usedGenPackages); |