Author: jsdelfino
Date: Mon Apr 10 13:40:41 2006
New Revision: 393052
URL: http://svn.apache.org/viewcvs?rev=393052&view=rev
Log:
Fix for TUSCANY-166, removed dependency on the EMF URI class
Modified:
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/util/XMLNameUtil.java
Modified:
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/util/XMLNameUtil.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/util/XMLNameUtil.java?rev=393052&r1=393051&r2=393052&view=diff
==============================================================================
---
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/util/XMLNameUtil.java
(original)
+++
incubator/tuscany/java/sca/model/src/main/java/org/apache/tuscany/model/util/XMLNameUtil.java
Mon Apr 10 13:40:41 2006
@@ -16,13 +16,13 @@
*/
package org.apache.tuscany.model.util;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import org.eclipse.emf.common.util.URI;
-
/**
* A utility class that converts between XML names and Java names.
*/
@@ -45,10 +45,15 @@
*/
public static String getPackageNameFromNamespace(String namespace) {
- URI uri = URI.createURI(namespace);
+ URI uri;
+ try {
+ uri = new URI(namespace);
+ } catch (URISyntaxException e) {
+ throw new IllegalArgumentException(e.getMessage(), e);
+ }
List<String> parsedName;
- if (uri.isHierarchical()) {
- String host = uri.host();
+ if (uri.isAbsolute()) {
+ String host = uri.getHost();
if (host != null && host.startsWith("www.")) {
host = host.substring(4);
}
@@ -58,12 +63,12 @@
parsedName.set(0, parsedName.get(0).toLowerCase());
}
- parsedName.addAll(parseName(uri.trimFileExtension().path(), '/'));
+ parsedName.addAll(parseName(trimFileExtension(uri.getPath()),
'/'));
} else {
- String opaquePart = uri.opaquePart();
+ String opaquePart = uri.getAuthority();
int index = opaquePart.indexOf(":");
- if (index != -1 && "urn".equalsIgnoreCase(uri.scheme())) {
+ if (index != -1 && "urn".equalsIgnoreCase(uri.getScheme())) {
parsedName = parseName(opaquePart.substring(0, index), '-');
if (parsedName.size() > 0 &&
DOMAINS.contains(parsedName.get(parsedName.size() - 1))) {
Collections.reverse(parsedName);
@@ -90,6 +95,21 @@
}
/**
+ * Trim the file extension from a path.
+ * @param path
+ * @return
+ */
+ private static String trimFileExtension(String path) {
+ int s=path.lastIndexOf('/');
+ int d=path.lastIndexOf('.');
+ if (d>s) {
+ return path.substring(0,d);
+ } else {
+ return path;
+ }
+ }
+
+ /**
* Returns a namespace prefix for the given package Name.
*
* @param packageName
@@ -233,4 +253,4 @@
}
}
-}
\ No newline at end of file
+}