ACEXML_AttributesImpl provides the default implementation of interface ACEXML_Attributes. More...
#include <ACEXML/common/AttributesImpl.h>
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. |
ACEXML_AttributesImpl provides the default implementation of interface ACEXML_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.
ACEXML_AttributesImpl::ACEXML_AttributesImpl | ( | int | size = ACEXML_AttributesImpl_Default_Size |
) |
Initialize an AttributesImpl that holds size attributes.
Definition at line 9 of file AttributesImpl.cpp.
ACEXML_AttributesImpl::ACEXML_AttributesImpl | ( | const ACEXML_AttributesImpl & | attrs | ) |
Definition at line 15 of file AttributesImpl.cpp.
ACEXML_AttributesImpl::~ACEXML_AttributesImpl | ( | void | ) | [virtual] |
Definition at line 24 of file AttributesImpl.cpp.
{ }
int ACEXML_AttributesImpl::addAttribute | ( | const ACEXML_Char * | uri, | |
const ACEXML_Char * | localName, | |||
const ACEXML_Char * | qName, | |||
const ACEXML_Char * | type, | |||
const ACEXML_Char * | value | |||
) | [virtual] |
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.
{ if (this->isDuplicate (uri, localName, qName)) return -1; size_t length = this->attrs_.size (); this->attrs_.size (length+1); this->setAttribute (length, uri, localName, qName, type, value); return static_cast<int> (length); }
int ACEXML_AttributesImpl::addAttribute | ( | const ACEXML_Attribute & | att | ) | [virtual] |
int ACEXML_AttributesImpl::getIndex | ( | const ACEXML_Char * | qName | ) | [virtual] |
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.
{ for (size_t i = 0; i < this->attrs_.size (); i++) if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0) return static_cast<int> (i); return -1; }
int ACEXML_AttributesImpl::getIndex | ( | const ACEXML_Char * | uri, | |
const ACEXML_Char * | localPart | |||
) | [virtual] |
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.
{ for (size_t i = 0; i < this->attrs_.size (); i++) if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 && ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0) return static_cast<int> (i); return -1; }
size_t ACEXML_AttributesImpl::getLength | ( | void | ) | [virtual] |
Return the number of attributes in the list.
Implements ACEXML_Attributes.
Definition at line 118 of file AttributesImpl.cpp.
const ACEXML_Char * ACEXML_AttributesImpl::getLocalName | ( | size_t | index | ) | [virtual] |
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.
const ACEXML_Char * ACEXML_AttributesImpl::getQName | ( | size_t | index | ) | [virtual] |
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.
const ACEXML_Char * ACEXML_AttributesImpl::getType | ( | size_t | index | ) | [virtual] |
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.
const ACEXML_Char * ACEXML_AttributesImpl::getType | ( | const ACEXML_Char * | qName | ) | [virtual] |
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.
{ for (size_t i = 0; i < this->attrs_.size (); i++) if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0) return this->attrs_[i].type (); return 0; }
const ACEXML_Char * ACEXML_AttributesImpl::getType | ( | const ACEXML_Char * | uri, | |
const ACEXML_Char * | localPart | |||
) | [virtual] |
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.
{ for (size_t i = 0; i < this->attrs_.size (); i++) if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 && ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0) return this->attrs_[i].type (); return 0; }
const ACEXML_Char * ACEXML_AttributesImpl::getURI | ( | size_t | index | ) | [virtual] |
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.
const ACEXML_Char * ACEXML_AttributesImpl::getValue | ( | const ACEXML_Char * | qName | ) | [virtual] |
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.
{ for (size_t i = 0; i < this->attrs_.size (); i++) if (ACE_OS::strcmp (qName, this->attrs_[i].qName ()) == 0) return this->attrs_[i].value (); return 0; }
const ACEXML_Char * ACEXML_AttributesImpl::getValue | ( | const ACEXML_Char * | uri, | |
const ACEXML_Char * | localPart | |||
) | [virtual] |
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.
{ for (size_t i = 0; i < this->attrs_.size (); i++) if (ACE_OS::strcmp (uri, this->attrs_[i].uri ()) == 0 && ACE_OS::strcmp (localPart, this->attrs_[i].localName ()) == 0) return this->attrs_[i].value (); return 0; }
const ACEXML_Char * ACEXML_AttributesImpl::getValue | ( | size_t | index | ) | [virtual] |
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.
int ACEXML_AttributesImpl::isDuplicate | ( | const ACEXML_Char * | uri, | |
const ACEXML_Char * | localName, | |||
const ACEXML_Char * | qName | |||
) | [virtual] |
Check for duplicate attributes.
Definition at line 60 of file AttributesImpl.cpp.
{ for (size_t i = 0; i < this->attrs_.size(); ++i) { if (ACE_OS::strcmp (this->attrs_[i].localName(), localName) == 0) { if (qName != 0 && this->attrs_[i].qName() != 0 && ACE_OS::strcmp (this->attrs_[i].qName(), qName) == 0) { if (uri != 0 && this->attrs_[i].uri() != 0 && ACE_OS::strcmp (this->attrs_[i].uri(), uri) == 0) return 1; } } } return 0; }
int ACEXML_AttributesImpl::removeAttribute | ( | size_t | index | ) | [virtual] |
Remove an attribute from the array. Notice that this operation can invalidate previously acquired index value. (It will repack the array.)
Definition at line 81 of file AttributesImpl.cpp.
int ACEXML_AttributesImpl::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] |
Set an attribute at index. Return -1 if index is out of range.
Definition at line 212 of file AttributesImpl.cpp.
int ACEXML_AttributesImpl::setLocalName | ( | size_t | index, | |
const ACEXML_Char * | localName | |||
) | [virtual] |
Set the localName of the attribute at index. return -1 if index is out of range.
Definition at line 234 of file AttributesImpl.cpp.
int ACEXML_AttributesImpl::setQName | ( | size_t | index, | |
const ACEXML_Char * | qName | |||
) | [virtual] |
Set the qName of the attribute at index. return -1 if index is out of range.
Definition at line 246 of file AttributesImpl.cpp.
int ACEXML_AttributesImpl::setType | ( | size_t | index, | |
const ACEXML_Char * | type | |||
) | [virtual] |
Set the type of the attribute at index. return -1 if index is out of range.
Definition at line 271 of file AttributesImpl.cpp.
int ACEXML_AttributesImpl::setURI | ( | size_t | index, | |
const ACEXML_Char * | uri | |||
) | [virtual] |
Set the URI of the attribute at index. return -1 if index is out of range.
Definition at line 259 of file AttributesImpl.cpp.
int ACEXML_AttributesImpl::setValue | ( | size_t | index, | |
const ACEXML_Char * | value | |||
) | [virtual] |
Set the value of the attribute at index. return -1 if index is out of range.
Definition at line 283 of file AttributesImpl.cpp.
Container for all attributes.
Definition at line 300 of file AttributesImpl.h.