|
Lines 53-59
Link Here
|
| 53 |
List<String> fragments = new ArrayList<String>(); |
53 |
List<String> fragments = new ArrayList<String>(); |
| 54 |
EPackage p = e; |
54 |
EPackage p = e; |
| 55 |
while (nonEmptySuperPackage(p) != null) { |
55 |
while (nonEmptySuperPackage(p) != null) { |
| 56 |
fragments.add(p.getNsPrefix()); |
56 |
fragments.add(p.getName()); |
| 57 |
p = nonEmptySuperPackage(p); |
57 |
p = nonEmptySuperPackage(p); |
| 58 |
uriString = p.getNsURI(); |
58 |
uriString = p.getNsURI(); |
| 59 |
|
59 |
|
|
Lines 109-120
Link Here
|
| 109 |
*/ |
109 |
*/ |
| 110 |
for (EPackage p : uriToEPackageMap.values()) { |
110 |
for (EPackage p : uriToEPackageMap.values()) { |
| 111 |
EObject eObject = p.eResource().getEObject(fragment); |
111 |
EObject eObject = p.eResource().getEObject(fragment); |
|
|
112 |
EPackage e = p; |
| 112 |
if(eObject != null) { |
113 |
if(eObject != null) { |
| 113 |
if(eObject instanceof ENamedElement) { |
114 |
if(eObject instanceof ENamedElement) { |
|
|
115 |
remainingFragment = ""; |
| 116 |
EObject parent = eObject.eContainer(); |
| 117 |
/* |
| 118 |
* Because this element was found by ID, p may not be the containing |
| 119 |
* package. We must find the correct parent package along with all |
| 120 |
* name elements inbetween. |
| 121 |
*/ |
| 122 |
while (parent!= null && !(parent instanceof EPackage)){ |
| 123 |
if (parent instanceof ENamedElement){ |
| 124 |
remainingFragment += "/" + ((ENamedElement) parent).getName(); |
| 125 |
} |
| 126 |
parent = parent.eContainer(); |
| 127 |
} |
| 128 |
if (parent instanceof EPackage){ |
| 129 |
e = (EPackage)parent; |
| 130 |
} |
| 114 |
String name = ((ENamedElement) eObject).getName(); |
131 |
String name = ((ENamedElement) eObject).getName(); |
| 115 |
remainingFragment = "/" + name; |
132 |
remainingFragment += "/" + name; |
| 116 |
} |
133 |
} |
| 117 |
URI newUri = packageUriMap.get(p); |
134 |
URI newUri = packageUriMap.get(e); |
| 118 |
String newFragment = newUri.fragment() == null ? "/" + remainingFragment : newUri.fragment() |
135 |
String newFragment = newUri.fragment() == null ? "/" + remainingFragment : newUri.fragment() |
| 119 |
+ remainingFragment; |
136 |
+ remainingFragment; |
| 120 |
newUri = newUri.appendFragment(newFragment); |
137 |
newUri = newUri.appendFragment(newFragment); |