Author: veithen
Date: Fri Feb 27 17:05:21 2009
New Revision: 748599

URL: http://svn.apache.org/viewvc?rev=748599&view=rev
Log:
OMNamespace objects are supposed to be immutable. Added this information to the 
Javadoc of the OMNamespace interface. Also changed the existing implementations 
to make this apparent (by declaring the attributes as final).

Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMNamespace.java
    
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/xpath/DocumentNavigator.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-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMNamespace.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMNamespace.java?rev=748599&r1=748598&r2=748599&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMNamespace.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMNamespace.java
 Fri Feb 27 17:05:21 2009
@@ -19,7 +19,13 @@
 
 package org.apache.axiom.om;
 
-/** Interface OMNamespace */
+/**
+ * Interface OMNamespace.
+ * <p>
+ * Implementations of this interface must be immutable or behave as if they 
were immutable,
+ * i.e. {...@link #getPrefix()} and {...@link #getNamespaceURI()} must always 
return the same
+ * values when invoked on the same instance.
+ */
 public interface OMNamespace {
     /**
      * Method equals.

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?rev=748599&r1=748598&r2=748599&view=diff
==============================================================================
--- 
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
 Fri Feb 27 17:05:21 2009
@@ -24,10 +24,10 @@
 /** Class OMNamespaceImpl */
 public class OMNamespaceImpl implements OMNamespace {
     /** Field prefix */
-    private String prefix;
+    private final String prefix;
 
     /** Field uri */
-    private String uri;
+    private final String uri;
 
     /**
      * @param uri

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java?rev=748599&r1=748598&r2=748599&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/xpath/DocumentNavigator.java
 Fri Feb 27 17:05:21 2009
@@ -687,8 +687,8 @@
     }
 
     class OMNamespaceEx implements OMNamespace {
-        OMNamespace originalNsp = null;
-        OMContainer parent = null;
+        final OMNamespace originalNsp;
+        final OMContainer parent;
 
         OMNamespaceEx(OMNamespace nsp, OMContainer parent) {
             originalNsp = nsp;

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?rev=748599&r1=748598&r2=748599&view=diff
==============================================================================
--- 
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
 Fri Feb 27 17:05:21 2009
@@ -23,19 +23,19 @@
 
 public class NamespaceImpl implements OMNamespace {
 
-    private String nsUri;
+    private final String nsUri;
 
-    private String nsPrefix;
+    private final String nsPrefix;
 
     public NamespaceImpl(String uri) {
+        this(uri, null);
+    }
+
+    public NamespaceImpl(String uri, String prefix) {
         if (uri == null) {
             throw new IllegalArgumentException("Namespace URI may not be 
null");
         }
         this.nsUri = uri;
-    }
-
-    public NamespaceImpl(String uri, String prefix) {
-        this(uri);
         this.nsPrefix = prefix;
     }
 

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java?rev=748599&r1=748598&r2=748599&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
 Fri Feb 27 17:05:21 2009
@@ -1108,7 +1108,7 @@
     
     class DeferredNamespace implements OMNamespace {
         
-        String uri;
+        final String uri;
         
         DeferredNamespace(String ns) {
             this.uri = ns;


Reply via email to