Javolution 6.0.0 java
AttributesImpl.java
Go to the documentation of this file.
1 package javolution.xml.internal.stream;
2 
6 
11 public final class AttributesImpl implements Attributes {
12 
16  private static class AttributeImpl {
18  CharArray prefix; // null if no namespace URI.
21  public String toString() {
22  return qName + "=" + value;
23  }
24  }
25 
26  private static final CharArray CDATA = new CharArray("CDATA");
27 
28  private static final CharArray EMPTY = new CharArray();
29 
34 
38  private int length;
39 
43  private final NamespacesImpl namespaces;
44 
49  this.namespaces = namespaces;
50  }
51 
60  public void addAttribute(CharArray localName, CharArray prefix,
61  CharArray qName, CharArray value) {
62  AttributeImpl attribute;
63  if (length >= attributes.size()) {
64  attribute = new AttributeImpl();
65  attributes.add(attribute);
66  } else {
67  attribute = attributes.get(length);
68  }
69  attribute.localName = localName;
70  attribute.prefix = prefix;
71  attribute.qName = qName;
72  attribute.value = value;
73  length++;
74  }
75 
76  @Override
77  public int getIndex(CharSequence qName) {
78  for (int i = 0; i < length; i++) {
79  if (qName.equals(attributes.get(i).qName))
80  return i;
81  }
82  return -1;
83  }
84 
85  @Override
86  public int getIndex(CharSequence uri, CharSequence localName) {
87  for (int i = 0; i < length; i++) {
88  AttributeImpl attribute = attributes.get(i);
89  if (localName.equals(attribute.localName)) {
90  if (attribute.prefix == null) { // No namespace URI.
91  if (uri.length() == 0)
92  return i;
93  } else { // Check if matching namespace URI.
94  if (uri.equals(namespaces.getNamespaceURI(attribute.prefix)))
95  return i;
96  }
97  }
98  }
99  return -1;
100  }
101 
102  @Override
103  public int getLength() {
104  return length;
105  }
106 
107  @Override
108  public CharArray getLocalName(int index) {
109  if ((index < 0) || (index >= length)) return null;
110  return attributes.get(index).localName;
111  }
112 
113  public CharArray getPrefix(int index) {
114  if ((index < 0) || (index >= length)) return null;
115  return attributes.get(index).prefix;
116  }
117 
118  @Override
119  public CharArray getQName(int index) {
120  if ((index < 0) || (index >= length)) return null;
121  return attributes.get(index).qName;
122  }
123 
124  @Override
125  public CharArray getType(CharSequence qName) {
126  return (getIndex(qName) >= 0) ? CDATA : null;
127  }
128 
129  @Override
130  public CharArray getType(CharSequence uri, CharSequence localName) {
131  return (getIndex(uri, localName) >= 0) ? CDATA : null;
132  }
133 
134  @Override
135  public CharArray getType(int index) {
136  if ((index < 0) || (index >= length)) return null;
137  return CDATA;
138  }
139  @Override
140  public CharArray getURI(int index) {
141  if ((index < 0) || (index >= length)) return null;
142  CharArray prefix = attributes.get(index).prefix;
143  return (prefix == null) ? EMPTY : namespaces.getNamespaceURI(prefix);
144  }
145 
146  @Override
147  public CharArray getValue(CharSequence qName) {
148  final int index = getIndex(qName);
149  return (index >= 0) ? attributes.get(index).value : null;
150  }
151 
152  @Override
153  public CharArray getValue(CharSequence uri, CharSequence localName) {
154  final int index = getIndex(uri, localName);
155  return (index >= 0) ? attributes.get(index).value : null;
156  }
157 
158  @Override
159  public CharArray getValue(int index) {
160  if ((index < 0) || (index >= length)) return null;
161  return attributes.get(index).value;
162  }
163 
167  public void reset() {
168  length = 0;
169  }
170 }
javolution.xml.internal.stream.AttributesImpl.getType
CharArray getType(CharSequence qName)
Definition: AttributesImpl.java:125
javolution.text.CharArray
Definition: CharArray.java:36
javolution.xml.internal.stream.AttributesImpl.addAttribute
void addAttribute(CharArray localName, CharArray prefix, CharArray qName, CharArray value)
Definition: AttributesImpl.java:60
javolution.xml.internal.stream.AttributesImpl.AttributeImpl.prefix
CharArray prefix
Definition: AttributesImpl.java:18
javolution
javolution.xml.internal.stream.AttributesImpl.length
int length
Definition: AttributesImpl.java:38
javolution.xml.sax
Definition: Attributes.java:9
javolution.xml.internal.stream.AttributesImpl.getPrefix
CharArray getPrefix(int index)
Definition: AttributesImpl.java:113
javolution.xml.internal.stream.AttributesImpl.AttributeImpl.localName
CharArray localName
Definition: AttributesImpl.java:17
javolution.xml.internal.stream.AttributesImpl.AttributesImpl
AttributesImpl(NamespacesImpl namespaces)
Definition: AttributesImpl.java:48
javolution.xml.internal.stream.AttributesImpl.namespaces
final NamespacesImpl namespaces
Definition: AttributesImpl.java:43
javolution.xml.internal.stream.AttributesImpl.getValue
CharArray getValue(int index)
Definition: AttributesImpl.java:159
javolution.xml.internal.stream.AttributesImpl.getValue
CharArray getValue(CharSequence qName)
Definition: AttributesImpl.java:147
javolution.xml.internal.stream.AttributesImpl.attributes
final FastTable< AttributeImpl > attributes
Definition: AttributesImpl.java:33
javolution.xml.internal.stream.AttributesImpl.reset
void reset()
Definition: AttributesImpl.java:167
javolution.xml.internal.stream.AttributesImpl.AttributeImpl
Definition: AttributesImpl.java:16
javolution.xml.internal.stream.NamespacesImpl
Definition: NamespacesImpl.java:22
javolution.xml.internal.stream.AttributesImpl.AttributeImpl.value
CharArray value
Definition: AttributesImpl.java:20
javolution.xml.internal.stream.AttributesImpl.getQName
CharArray getQName(int index)
Definition: AttributesImpl.java:119
javolution.text
Definition: CharArray.java:9
javolution.xml.internal.stream.AttributesImpl.getType
CharArray getType(CharSequence uri, CharSequence localName)
Definition: AttributesImpl.java:130
javolution.xml.internal.stream.AttributesImpl.AttributeImpl.qName
CharArray qName
Definition: AttributesImpl.java:19
javolution.xml.internal.stream.AttributesImpl
Definition: AttributesImpl.java:11
javolution.xml.internal.stream.AttributesImpl.getURI
CharArray getURI(int index)
Definition: AttributesImpl.java:140
javolution.xml.internal.stream.NamespacesImpl.getNamespaceURI
CharArray getNamespaceURI(CharSequence prefix)
Definition: NamespacesImpl.java:95
javolution.xml.internal.stream.AttributesImpl.getValue
CharArray getValue(CharSequence uri, CharSequence localName)
Definition: AttributesImpl.java:153
javolution.xml.internal.stream.AttributesImpl.getIndex
int getIndex(CharSequence uri, CharSequence localName)
Definition: AttributesImpl.java:86
javolution.xml.internal.stream.AttributesImpl.EMPTY
static final CharArray EMPTY
Definition: AttributesImpl.java:28
javolution.xml.sax.Attributes
Definition: Attributes.java:27
javolution.xml.internal.stream.AttributesImpl.getLocalName
CharArray getLocalName(int index)
Definition: AttributesImpl.java:108
javolution.xml.internal.stream.AttributesImpl.CDATA
static final CharArray CDATA
Definition: AttributesImpl.java:26
javolution.xml
Definition: DefaultXMLFormat.java:9
javolution.xml.internal.stream.AttributesImpl.getType
CharArray getType(int index)
Definition: AttributesImpl.java:135
javolution.xml.internal.stream.AttributesImpl.getLength
int getLength()
Definition: AttributesImpl.java:103
javolution.util
Definition: FastBitSet.java:9
javolution.xml.internal.stream.AttributesImpl.getIndex
int getIndex(CharSequence qName)
Definition: AttributesImpl.java:77
javolution.xml.internal.stream.AttributesImpl.AttributeImpl.toString
String toString()
Definition: AttributesImpl.java:21
javolution.util.FastTable
Definition: FastTable.java:88