protected void updateExternalPackagesRelativePaths(Package pkg, String newFilename) {
XPDLHandler xpdlhandler = JaWEManager.getInstance().getXPDLHandler();
File f = new File(newFilename);
String parentF = f.getParent();
Path newPath = new Path(parentF);
Iterator eps = pkg.getExternalPackages().toElements().iterator();
while (eps.hasNext()) {
ExternalPackage ep = (ExternalPackage) eps.next();
String oldRelativePath = ep.getHref();
try {
Package extP = xpdlhandler.getExternalPackageByRelativeFilePath(oldRelativePath,
pkg);
String oldFullPath = xpdlhandler.getAbsoluteFilePath(extP);
String relativePath = Path.getRelativePath(new Path(oldFullPath), newPath);
ep.setHref(XMLUtil.replaceBackslashesWithSlashes(relativePath));
} catch (Exception ex) {
System.err.println("Failed to update old external package's relative path " + oldRelativePath + " for main package " + pkg.getId() + " with a new filename " + newFilename);
}
}