#include <ACEXML/common/AttributesImpl.h>
Inheritance diagram for ACEXML_AttributesImpl:


Public Member Functions | |
| ACEXML_AttributesImpl (int size=ACEXML_AttributesImpl_Default_Size) | |
| ACEXML_AttributesImpl (const ACEXML_AttributesImpl &attrs) | |
| virtual | ~ACEXML_AttributesImpl (void) |
| virtual int | addAttribute (const ACEXML_Char *uri, const ACEXML_Char *localName, const ACEXML_Char *qName, const ACEXML_Char *type, const ACEXML_Char *value) |
| virtual int | addAttribute (const ACEXML_Attribute &att) |
| virtual int | isDuplicate (const ACEXML_Char *uri, const ACEXML_Char *localName, const ACEXML_Char *qName) |
| virtual int | removeAttribute (size_t index) |
| virtual int | getIndex (const ACEXML_Char *qName) |
| virtual int | getIndex (const ACEXML_Char *uri, const ACEXML_Char *localPart) |
| virtual size_t | getLength (void) |
| virtual const ACEXML_Char * | getLocalName (size_t index) |
| virtual const ACEXML_Char * | getQName (size_t index) |
| virtual const ACEXML_Char * | getType (size_t index) |
| virtual const ACEXML_Char * | getType (const ACEXML_Char *qName) |
| virtual const ACEXML_Char * | getType (const ACEXML_Char *uri, const ACEXML_Char *localPart) |
| virtual const ACEXML_Char * | getURI (size_t index) |
| virtual const ACEXML_Char * | getValue (size_t index) |
| virtual const ACEXML_Char * | getValue (const ACEXML_Char *qName) |
| virtual const ACEXML_Char * | getValue (const ACEXML_Char *uri, const ACEXML_Char *localPart) |
| virtual int | setAttribute (size_t index, const ACEXML_Char *uri, const ACEXML_Char *localName, const ACEXML_Char *qName, const ACEXML_Char *type, const ACEXML_Char *value) |
| virtual int | setLocalName (size_t index, const ACEXML_Char *localName) |
| virtual int | setQName (size_t index, const ACEXML_Char *qName) |
| virtual int | setURI (size_t index, const ACEXML_Char *uri) |
| virtual int | setType (size_t index, const ACEXML_Char *type) |
| virtual int | setValue (size_t index, const ACEXML_Char *value) |
Private Attributes | |
| ACEXML_Attribute_Array | attrs_ |
| Container for all attributes. | |
This class provides a default implementation of the SAX2 Attributes interface, with the addition of manipulators so that the list can be modified or reused.
There are two typical uses of this class:
This class replaces the now-deprecated SAX1 AttributeListImpl class; in addition to supporting the updated Attributes interface rather than the deprecated AttributeList interface, it also includes a much more efficient implementation using a single array rather than a set of Vectors.
Definition at line 143 of file AttributesImpl.h.
|
|
Initialize an AttributesImpl that holds attributes. Definition at line 9 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
|
Definition at line 15 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
|
Definition at line 24 of file AttributesImpl.cpp.
00025 {
00026 }
|
|
|
Definition at line 49 of file AttributesImpl.cpp. References attrs_, isDuplicate(), ACEXML_Attribute::localName(), ACEXML_Attribute::qName(), ACE_Array_Base< T >::size(), and ACEXML_Attribute::uri().
|
|
||||||||||||||||||||||||
|
Add a new attribute using the argument(s) supplied. Return -1 if an attribute with the same name already exists. Definition at line 29 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, isDuplicate(), setAttribute(), and ACE_Array_Base< T >::size(). Referenced by ACEXML_Parser::parse_element().
00034 {
00035 if (this->isDuplicate (uri, localName, qName))
00036 return -1;
00037 size_t length = this->attrs_.size ();
00038 this->attrs_.size (length+1);
00039 this->setAttribute (length,
00040 uri,
00041 localName,
00042 qName,
00043 type,
00044 value);
00045 return static_cast<int> (length);
00046 }
|
|
||||||||||||
|
Look up the index of an attribute by Namespace name. Return -1 if we fail to find a match. Implements ACEXML_Attributes. Definition at line 106 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp().
00108 {
00109 for (size_t i = 0; i < this->attrs_.size (); i++)
00110 if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 &&
00111 ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0)
00112 return static_cast<int> (i);
00113
00114 return -1;
00115 }
|
|
|
Look up the index of an attribute by XML 1.0 qualified name. Return -1 if we fail to find a match. Implements ACEXML_Attributes. Definition at line 96 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp().
00097 {
00098 for (size_t i = 0; i < this->attrs_.size (); i++)
00099 if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0)
00100 return static_cast<int> (i);
00101
00102 return -1;
00103 }
|
|
|
Return the number of attributes in the list. Implements ACEXML_Attributes. Definition at line 118 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
|
Look up an attribute's local name by index. Return 0 if index is out of range. Implements ACEXML_Attributes. Definition at line 124 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
|
Look up an attribute's XML 1.0 qualified name by index. Return 0 if index is out of range. Implements ACEXML_Attributes. Definition at line 133 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||
|
Look up an attribute's type by Namespace name. Return 0 if we fail to find a match. Implements ACEXML_Attributes. Definition at line 160 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp().
00162 {
00163 for (size_t i = 0; i < this->attrs_.size (); i++)
00164 if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 &&
00165 ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0)
00166 return this->attrs_[i].type ();
00167
00168 return 0;
00169 }
|
|
|
Look up an attribute's type by XML 1.0 qualified name. Return 0 if we fail to find a match. Implements ACEXML_Attributes. Definition at line 150 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp().
00151 {
00152 for (size_t i = 0; i < this->attrs_.size (); i++)
00153 if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0)
00154 return this->attrs_[i].type ();
00155
00156 return 0;
00157 }
|
|
|
Look up an attribute's type by index. Return 0 if index is out of range. Implements ACEXML_Attributes. Definition at line 141 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
|
Look up an attribute's Namespace URI by index. Return 0 if index is out of range. Implements ACEXML_Attributes. Definition at line 173 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||
|
Look up an attribute's value by Namespace name. Return 0 if we fail to find a match. Implements ACEXML_Attributes. Definition at line 200 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp().
00202 {
00203 for (size_t i = 0; i < this->attrs_.size (); i++)
00204 if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 &&
00205 ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0)
00206 return this->attrs_[i].value ();
00207
00208 return 0;
00209 }
|
|
|
Look up an attribute's value by XML 1.0 qualified name. Return 0 if we fail to find a match. Implements ACEXML_Attributes. Definition at line 190 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp().
00191 {
00192 for (size_t i = 0; i < this->attrs_.size (); i++)
00193 if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0)
00194 return this->attrs_[i].value ();
00195
00196 return 0;
00197 }
|
|
|
Look up an attribute's value by index. Return 0 if index is out of range. Implements ACEXML_Attributes. Definition at line 182 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||||||
|
Check for duplicate attributes. Definition at line 60 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, ACE_Array_Base< T >::size(), and ACE_OS::strcmp(). Referenced by addAttribute().
00063 {
00064 for (size_t i = 0; i < this->attrs_.size(); ++i)
00065 {
00066 if (ACE_OS::strcmp (this->attrs_[i].localName(), localName) == 0)
00067 {
00068 if (qName != 0 && this->attrs_[i].qName() != 0
00069 && ACE_OS::strcmp (this->attrs_[i].qName(), qName) == 0)
00070 {
00071 if (uri != 0 && this->attrs_[i].uri() != 0
00072 && ACE_OS::strcmp (this->attrs_[i].uri(), uri) == 0)
00073 return 1;
00074 }
00075 }
00076 }
00077 return 0;
00078 }
|
|
|
Remove an attribute from the array. Notice that this operation can invalidate previously acquired value. (It will repack the array.) Definition at line 81 of file AttributesImpl.cpp. References attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||||||||||||||||||
|
Set an attribute at index. Return -1 if index is out of range. Definition at line 212 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, and ACE_Array_Base< T >::size(). Referenced by addAttribute().
|
|
||||||||||||
|
Set the localName of the attribute at . return -1 if is out of range. Definition at line 234 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||
|
Set the qName of the attribute at . return -1 if is out of range. Definition at line 246 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||
|
Set the type of the attribute at . return -1 if is out of range. Definition at line 271 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||
|
Set the URI of the attribute at . return -1 if is out of range. Definition at line 259 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, and ACE_Array_Base< T >::size().
|
|
||||||||||||
|
Set the value of the attribute at . return -1 if is out of range. Definition at line 283 of file AttributesImpl.cpp. References ACEXML_Char, attrs_, and ACE_Array_Base< T >::size().
|
|
|
Container for all attributes.
Definition at line 300 of file AttributesImpl.h. Referenced by ACEXML_AttributesImpl(), addAttribute(), getIndex(), getLength(), getLocalName(), getQName(), getType(), getURI(), getValue(), isDuplicate(), removeAttribute(), setAttribute(), setLocalName(), setQName(), setType(), setURI(), and setValue(). |
1.3.6