1 28 29 package com.caucho.relaxng.program; 30 31 import com.caucho.xml.QName; 32 33 import java.util.HashSet ; 34 35 38 public class NsNameItem extends NameClassItem { 39 private String _ns; 40 41 private NameClassItem _except; 42 43 public NsNameItem(String ns) 44 { 45 _ns = ns; 46 } 47 48 public void setExcept(NameClassItem except) 49 { 50 _except = except; 51 } 52 53 56 public void firstSet(HashSet <QName> set) 57 { 58 set.add(new QName("*", _ns)); 59 } 60 61 64 public boolean matches(QName name) 65 { 66 if (! _ns.equals(name.getNamespaceURI())) 67 return false; 68 else if (_except != null && _except.matches(name)) 69 return false; 70 else 71 return true; 72 } 73 74 77 public String toSyntaxDescription(String prefix) 78 { 79 if (_except != null) { 80 if (prefix.equals("")) 81 return "<{" + _ns + "}:* -" + _except.toSyntaxDescription(" ") + ">"; 82 else 83 return prefix + "(" + "{" + _ns + "}:* -" + _except.toSyntaxDescription(" ") + ")"; 84 } 85 else if (prefix.equals("")) 86 return "<{" + _ns + "}:*>"; 87 else 88 return prefix + "{" + _ns + "}:*"; 89 } 90 91 public int hashCode() 92 { 93 return _ns.hashCode(); 94 } 95 96 public boolean equals(Object o) 97 { 98 if (this == o) 99 return true; 100 101 if (! (o instanceof NsNameItem)) 102 return false; 103 104 NsNameItem name = (NsNameItem) o; 105 106 if (! _ns.equals(name._ns)) 107 return false; 108 109 if (_except == null) 110 return name._except == null; 111 else 112 return _except.equals(name._except); 113 } 114 } 115 116 | Popular Tags |