blob: 85a43af7757f5db0d97d737b2a14390e4babe0f9 [file] [log] [blame]
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);