You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by gd...@apache.org on 2007/03/28 17:37:10 UTC

svn commit: r523373 - in /webservices/commons/trunk/modules/axiom/modules: axiom-api/src/main/java/org/apache/axiom/om/impl/ axiom-api/src/main/java/org/apache/axiom/om/util/ axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ axiom-tests/src/test/ja...

Author: gdaniels
Date: Wed Mar 28 08:37:09 2007
New Revision: 523373

URL: http://svn.apache.org/viewvc?view=rev&rev=523373
Log:
Roll back the change disallowing null prefixes, because I didn't get that they're needed for "autoprefixed" namespaces.  Although I'd like to have a conversation about this design, make sure the behavior is consistent for now.

Make OMNamespaceImpl match the DOOM version in terms of disallowing null URIs, which really doesn't make any sense.


Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java
    webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java
    webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMNamespaceImplTest.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java?view=diff&rev=523373&r1=523372&r2=523373
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNamespaceImpl.java Wed Mar 28 08:37:09 2007
@@ -31,6 +31,10 @@
      * @param prefix
      */
     public OMNamespaceImpl(String uri, String prefix) {
+        if (uri == null) {
+            throw new IllegalArgumentException("Namespace URI may not be null");
+        }
+
         this.uri = uri;
         this.prefix = prefix;
     }
@@ -43,11 +47,19 @@
      * @return Returns boolean.
      */
     public boolean equals(String uri, String prefix) {
-        return (((prefix == null) && (this.prefix == null)) ||
-                ((prefix != null) && prefix.equals(this.prefix))) &&
-                ((uri == null) && (this.uri == null) ||
-                        (uri != null) && uri.equals(this.uri));
+        return (this.uri.equals(uri) &&
+                (this.prefix == null ? prefix == null :
+                        this.prefix.equals(prefix)));
+
+    }
 
+    public boolean equals(Object obj) {
+        if (!(obj instanceof OMNamespace)) return false;
+        OMNamespace other = (OMNamespace)obj;
+        String otherPrefix = other.getPrefix();
+        return (uri.equals(other.getNamespaceURI()) &&
+                (prefix == null ? otherPrefix == null :
+                        prefix.equals(otherPrefix)));
     }
 
     /**

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java?view=diff&rev=523373&r1=523372&r2=523373
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/util/StAXUtils.java Wed Mar 28 08:37:09 2007
@@ -31,7 +31,7 @@
             ObjectCreator oc = null;
             for (int i = 0; i < creators.length; i++) {
                 try {
-                    Object o = creators[i].newObject();
+                    creators[i].newObject();
                     oc = creators[i];
                     break;
                 } catch (Throwable t) {

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java?view=diff&rev=523373&r1=523372&r2=523373
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamespaceImpl.java Wed Mar 28 08:37:09 2007
@@ -21,7 +21,7 @@
 
     private String nsUri;
 
-    private String nsPrefix = "";
+    private String nsPrefix;
 
     public NamespaceImpl(String uri) {
         if (uri == null) {
@@ -32,9 +32,7 @@
 
     public NamespaceImpl(String uri, String prefix) {
         this(uri);
-        if (prefix != null) {
-            this.nsPrefix = prefix;
-        }
+        this.nsPrefix = prefix;
     }
 
     /*
@@ -44,14 +42,18 @@
      *      java.lang.String)
      */
     public boolean equals(String uri, String prefix) {
-        return (nsUri.equals(uri) && nsPrefix.equals(prefix));
+        return (nsUri.equals(uri) &&
+                (nsPrefix == null ? prefix == null :
+                        nsPrefix.equals(prefix)));
     }
 
     public boolean equals(Object obj) {
         if (!(obj instanceof OMNamespace)) return false;
         OMNamespace other = (OMNamespace)obj;
+        String otherPrefix = other.getPrefix();
         return (nsUri.equals(other.getNamespaceURI()) &&
-                nsPrefix.equals(other.getPrefix()));
+                (nsPrefix == null ? otherPrefix == null :
+                        nsPrefix.equals(otherPrefix)));
     }
 
     /*

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMNamespaceImplTest.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMNamespaceImplTest.java?view=diff&rev=523373&r1=523372&r2=523373
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMNamespaceImplTest.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/llom/OMNamespaceImplTest.java Wed Mar 28 08:37:09 2007
@@ -24,7 +24,6 @@
 import org.apache.axiom.om.impl.OMNamespaceImpl;
 
 import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 
 /** This class will test the methods and fields of the OMNamespaceImpl class. */
 public class OMNamespaceImplTest extends TestCase {
@@ -56,24 +55,20 @@
         return new TestSuite(OMNamespaceImplTest.class);
     }
 
-    /** This method will test the getPrefix method. */
-    public void testGetPrefix() {
+    public void testGetNamespaceURI() {
         OMNamespaceImpl omNsImpl =
                 new OMNamespaceImpl("http://www.w3.org/XML/1998/namespace",
                                     "xml");
         assertEquals("http://www.w3.org/XML/1998/namespace",
                      omNsImpl.getNamespaceURI());
-        omNsImpl = new OMNamespaceImpl(null, null);
-        assertNull(omNsImpl.getNamespaceURI());
     }
 
-    /** This method will test the getName method. */
-    public void testGetName() {
+    public void testGetPrefix() {
         OMNamespaceImpl omNsImpl =
                 new OMNamespaceImpl("http://www.w3.org/XML/1998/namespace",
                                     "xml");
         assertEquals("xml", omNsImpl.getPrefix());
-        omNsImpl = new OMNamespaceImpl(null, null);
+        omNsImpl = new OMNamespaceImpl("", null);
         assertNull(omNsImpl.getPrefix());
     }
 
@@ -98,16 +93,6 @@
                                     "xml"));
         assertTrue(!omNsImpl.equals(null,
                                     "xml"));
-
-        omNsImpl = new OMNamespaceImpl(null, null);
-        assertTrue(!omNsImpl.equals("http://www.w3.org/XML/1998/namespace",
-                                    "xml"));
-        assertTrue(!omNsImpl.equals("http://www.w3.org/XML/1998/namespace",
-                                    null));
-        assertTrue(!omNsImpl.equals(null,
-                                    "xml"));
-        assertTrue(omNsImpl.equals(null, null));
-
     }
 
     /**
@@ -131,9 +116,8 @@
         String[] method = new String[] { "setPrefix", "setUri", "setName" };
         for (int i = 0; i < method.length; i++) {
             try {
-                Method m =
-                        OMNamespaceImpl.class.getMethod(method[i],
-                                                        new Class[] { String.class });
+                OMNamespaceImpl.class.getMethod(method[i],
+                                                new Class[] { String.class });
                 fail("A NoSuchMethodException should have been thrown"
                         + " when trying to get method \"" + method[i]
                         + "\".");



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: commons-dev-help@ws.apache.org