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;
       }
  
  
  


Reply via email to