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;