001    package com.thaiopensource.relaxng.impl;
002    
003    import com.thaiopensource.xml.util.Name;
004    
005    class NsNameClass implements NameClass {
006    
007      private final String namespaceUri;
008    
009      NsNameClass(String namespaceUri) {
010        this.namespaceUri = namespaceUri;
011      }
012    
013      public boolean contains(Name name) {
014        return this.namespaceUri.equals(name.getNamespaceUri());
015      }
016    
017      public int containsSpecificity(Name name) {
018        return contains(name) ? SPECIFICITY_NS_NAME : SPECIFICITY_NONE;
019      }
020    
021      public int hashCode() {
022        return namespaceUri.hashCode();
023      }
024    
025      public boolean equals(Object obj) {
026        if (obj == null || !(obj instanceof NsNameClass))
027          return false;
028        return namespaceUri.equals(((NsNameClass)obj).namespaceUri);
029      }
030    
031      public void accept(NameClassVisitor visitor) {
032        visitor.visitNsName(namespaceUri);
033      }
034    
035      public boolean isOpen() {
036        return true;
037      }
038    }