#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(). |