igors 02/02/27 05:25:36
Modified: java/src/org/apache/axis/wsdl/toJava Namespaces.java
Log:
Took care of namespaces like urn:mystd:api.
That is ':' may also be used as a name part separator.
WSDL2Java was choking on nsps like that.
Such nsps are extensively used in some standards schemas.
Revision Changes Path
1.2 +19 -6 xml-axis/java/src/org/apache/axis/wsdl/toJava/Namespaces.java
Index: Namespaces.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/Namespaces.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Namespaces.java 11 Dec 2001 15:08:47 -0000 1.1
+++ Namespaces.java 27 Feb 2002 13:25:36 -0000 1.2
@@ -71,6 +71,19 @@
private String defaultPackage = null;
/**
+ * Toknens in a namespace that are treated as package name part separators.
+ */
+ private static final char[] pkgSeparators = { '.', ':' };
+ private static final char javaPkgSeparator = pkgSeparators[0];
+
+ private static String normalizePackageName(String pkg, char separator)
+ {
+ for(int i=0; i<pkgSeparators.length; i++)
+ pkg = pkg.replace(pkgSeparators[i], separator);
+ return pkg;
+ }
+
+ /**
* Instantiate a Namespaces object whose packages will all reside under root.
*/
public Namespaces(String root) {
@@ -102,10 +115,10 @@
if (defaultPackage != null) {
return defaultPackage;
}
- Object value = super.get(key);
+ String value = (String)super.get(key);
if (value == null) {
- value = Utils.makePackageName((String) key);
- put(key, value);
+ value = (String)Utils.makePackageName(key);
+ put(key, normalizePackageName(value,javaPkgSeparator));
}
return (String) value;
} // getCreate
@@ -129,7 +142,7 @@
public String toDir(String pkg) {
String dir = null;
if (pkg != null) {
- pkg = pkg.replace('.', File.separatorChar);
+ pkg = normalizePackageName(pkg,File.separatorChar);
}
if (root == null) {
dir = pkg;
@@ -186,9 +199,9 @@
/**
* Set a package name that overrides the namespace map
- *
+ *
* @param a java package name (e.g. com.foo)
- */
+ */
public void setDefaultPackage(String defaultPackage) {
this.defaultPackage = defaultPackage;
}