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