Skip to content
This repository has been archived by the owner on Feb 22, 2019. It is now read-only.

Commit

Permalink
Workaround for null EClassifier name.
Browse files Browse the repository at this point in the history
  • Loading branch information
pvlasov committed Oct 8, 2018
1 parent 7464f0e commit f638c62
Showing 1 changed file with 10 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -219,27 +219,32 @@ public String getNamedElementFileName(ENamedElement namedElement) {
return Hex.encodeHexString(((EPackage) namedElement).getNsURI().getBytes(StandardCharsets.UTF_8));
}

String name = namedElement.getName();
if (isBlank(namedElement.getName())) {
name = Integer.toString(namedElement.hashCode(), Character.MAX_RADIX); // Should never happen, but sometimes happens :-(
}

if (namedElement instanceof EClassifier) {
for (int i = -1; i < 1000000; ++i) {
try {
String urlEncodedName = URLEncoder.encode(namedElement.getName(), "UTF-8");
if (urlEncodedName.equals(namedElement.getName())) {
String urlEncodedName = URLEncoder.encode(name, "UTF-8");
if (urlEncodedName.equals(name)) {
return urlEncodedName;
}
String fileName = Hex.encodeHexString(namedElement.getName().getBytes(StandardCharsets.UTF_8));
String fileName = Hex.encodeHexString(name.getBytes(StandardCharsets.UTF_8));
if (i > -1) {
fileName += "-"+Integer.toString(i, Character.MAX_RADIX);
}
if (validateNamedElementFileName(namedElement, fileName)) {
return fileName;
}
} catch (UnsupportedEncodingException e) {
return namedElement.getName();
return name;
}
}
}

return namedElement.getName();
return name;
}

/**
Expand Down

0 comments on commit f638c62

Please sign in to comment.