[526568] Optimizing computation of base URIs.
diff --git a/plugins/org.eclipse.uml2.uml.resources/src/org/eclipse/uml2/uml/resources/util/UMLResourcesUtil.java b/plugins/org.eclipse.uml2.uml.resources/src/org/eclipse/uml2/uml/resources/util/UMLResourcesUtil.java
index 8f45f26..79b998d 100644
--- a/plugins/org.eclipse.uml2.uml.resources/src/org/eclipse/uml2/uml/resources/util/UMLResourcesUtil.java
+++ b/plugins/org.eclipse.uml2.uml.resources/src/org/eclipse/uml2/uml/resources/util/UMLResourcesUtil.java
@@ -469,11 +469,11 @@
resultURL = UMLUtil.class.getResource("UMLUtil.class"); //$NON-NLS-1$
String baseURL = resultURL.toExternalForm();
-
- if (baseURL.contains("/bin/")) { //$NON-NLS-1$
- baseURL = baseURL.substring(0, baseURL.lastIndexOf("/bin/")); //$NON-NLS-1$
- } else {
- baseURL = "/"; //$NON-NLS-1$
+
+ int index = baseURL.lastIndexOf("/bin/"); //$NON-NLS-1$
+
+ if (index != -1) {
+ baseURL = baseURL.substring(0, index);
}
result = URI.createURI(baseURL, true);
@@ -502,10 +502,10 @@
String baseURL = resultURL.toExternalForm();
- if (baseURL.contains("/bin/")) { //$NON-NLS-1$
- baseURL = baseURL.substring(0, baseURL.lastIndexOf("/bin/")); //$NON-NLS-1$
- } else {
- baseURL = "/"; //$NON-NLS-1$
+ int index = baseURL.lastIndexOf("/bin/"); //$NON-NLS-1$
+
+ if (index != -1) {
+ baseURL = baseURL.substring(0, index);
}
result = URI.createURI(baseURL, true);
diff --git a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/util/StandaloneSupport.java b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/util/StandaloneSupport.java
index cc7f685..77c4208 100644
--- a/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/util/StandaloneSupport.java
+++ b/tests/org.eclipse.uml2.uml.tests/src/org/eclipse/uml2/uml/tests/util/StandaloneSupport.java
@@ -203,13 +203,14 @@
}
private static URI getBaseUMLURI() {
- URL resultURL = UMLPlugin.class.getClassLoader().getResource(
- "model/UML2_2_UML.ecore2xml"); //$NON-NLS-1$
+ URL resultURL = UMLPlugin.class.getClassLoader()
+ .getResource("model/UML2_2_UML.ecore2xml"); //$NON-NLS-1$
URI result;
if (resultURL != null) {
- // remove the model/UML2_2_UML.ecore2xml segments of the resource we found
+ // remove the model/UML2_2_UML.ecore2xml segments of the resource we
+ // found
result = URI.createURI(resultURL.toExternalForm(), true)
.trimSegments(2);
} else {
@@ -218,11 +219,11 @@
resultURL = UMLPlugin.class.getResource("UMLPlugin.class"); //$NON-NLS-1$
String baseURL = resultURL.toExternalForm();
-
- if (baseURL.contains("/bin/")) { //$NON-NLS-1$
- baseURL = baseURL.substring(0, baseURL.lastIndexOf("/bin/")); //$NON-NLS-1$
- } else {
- baseURL = "/"; //$NON-NLS-1$
+
+ int index = baseURL.lastIndexOf("/bin/"); //$NON-NLS-1$
+
+ if (index != -1) {
+ baseURL = baseURL.substring(0, index);
}
result = URI.createURI(baseURL, true);
@@ -248,12 +249,14 @@
String baseURL = resultURL.toExternalForm();
- if (baseURL.contains("/bin/")) { //$NON-NLS-1$
- baseURL = baseURL.substring(0, baseURL.lastIndexOf("/bin/")); //$NON-NLS-1$
- } else if (baseURL.contains("/target/classes/")) { //$NON-NLS-1$
- baseURL = baseURL.substring(0, baseURL.indexOf("/target/classes/")); //$NON-NLS-1$
- } else {
- baseURL = "/"; //$NON-NLS-1$
+ int index = baseURL.lastIndexOf("/bin/"); //$NON-NLS-1$
+
+ if (index == -1) {
+ index = baseURL.lastIndexOf("/target/classes/"); //$NON-NLS-1$
+ }
+
+ if (index != -1) {
+ baseURL = baseURL.substring(0, index);
}
result = URI.createURI(baseURL, true);