projects
/
shibboleth
/
cpp-xmltooling.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
CPPXT-104 - Add exception handling to integer conversions
[shibboleth/cpp-xmltooling.git]
/
xmltooling
/
util
/
XMLHelper.cpp
diff --git
a/xmltooling/util/XMLHelper.cpp
b/xmltooling/util/XMLHelper.cpp
index
f257b8c
..
2682395
100644
(file)
--- a/
xmltooling/util/XMLHelper.cpp
+++ b/
xmltooling/util/XMLHelper.cpp
@@
-31,11
+31,16
@@
#include "util/XMLHelper.h"
#include "util/XMLConstants.h"
#include "util/XMLHelper.h"
#include "util/XMLConstants.h"
+#include <boost/lambda/bind.hpp>
+#include <boost/lambda/if.hpp>
+#include <boost/lambda/lambda.hpp>
#include <xercesc/framework/MemBufFormatTarget.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
using namespace xmltooling;
using namespace xercesc;
#include <xercesc/framework/MemBufFormatTarget.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
using namespace xmltooling;
using namespace xercesc;
+using namespace boost::lambda;
+using namespace boost;
using namespace std;
static const XMLCh type[]={chLatin_t, chLatin_y, chLatin_p, chLatin_e, chNull };
using namespace std;
static const XMLCh type[]={chLatin_t, chLatin_y, chLatin_p, chLatin_e, chNull };
@@
-77,7
+82,7
@@
DOMAttr* XMLHelper::getIdAttribute(const DOMElement* domElement)
DOMNamedNodeMap* attributes = domElement->getAttributes();
DOMAttr* attribute;
DOMNamedNodeMap* attributes = domElement->getAttributes();
DOMAttr* attribute;
- for(XMLSize_t i = 0; i < attributes->getLength();
i++
) {
+ for(XMLSize_t i = 0; i < attributes->getLength();
++i
) {
attribute = static_cast<DOMAttr*>(attributes->item(i));
if(attribute->isId()) {
return attribute;
attribute = static_cast<DOMAttr*>(attributes->item(i));
if(attribute->isId()) {
return attribute;
@@
-94,7
+99,7
@@
const XMLObject* XMLHelper::getXMLObjectById(const XMLObject& tree, const XMLCh*
const XMLObject* ret;
const list<XMLObject*>& children = tree.getOrderedChildren();
const XMLObject* ret;
const list<XMLObject*>& children = tree.getOrderedChildren();
- for (list<XMLObject*>::const_iterator i
=children.begin(); i!=
children.end(); ++i) {
+ for (list<XMLObject*>::const_iterator i
= children.begin(); i !=
children.end(); ++i) {
if (*i) {
ret = getXMLObjectById(*(*i), id);
if (ret)
if (*i) {
ret = getXMLObjectById(*(*i), id);
if (ret)
@@
-109,10
+114,10
@@
XMLObject* XMLHelper::getXMLObjectById(XMLObject& tree, const XMLCh* id)
{
if (XMLString::equals(id, tree.getXMLID()))
return &tree;
{
if (XMLString::equals(id, tree.getXMLID()))
return &tree;
-
+
XMLObject* ret;
const list<XMLObject*>& children = tree.getOrderedChildren();
XMLObject* ret;
const list<XMLObject*>& children = tree.getOrderedChildren();
- for (list<XMLObject*>::const_iterator i
=children.begin(); i!=
children.end(); ++i) {
+ for (list<XMLObject*>::const_iterator i
= children.begin(); i !=
children.end(); ++i) {
if (*i) {
ret = getXMLObjectById(*(*i), id);
if (ret)
if (*i) {
ret = getXMLObjectById(*(*i), id);
if (ret)
@@
-126,10
+131,10
@@
XMLObject* XMLHelper::getXMLObjectById(XMLObject& tree, const XMLCh* id)
void XMLHelper::getNonVisiblyUsedPrefixes(const XMLObject& tree, map<xstring,xstring>& prefixes)
{
map<xstring,xstring> child_prefixes;
void XMLHelper::getNonVisiblyUsedPrefixes(const XMLObject& tree, map<xstring,xstring>& prefixes)
{
map<xstring,xstring> child_prefixes;
- const list<XMLObject*>& children = tree.getOrderedChildren();
- for (list<XMLObject*>::const_iterator i = children.begin(); i != children.end(); ++i) {
- if (*i)
+ for(list<XMLObject*>::const_iterator i = tree.getOrderedChildren().begin(); i != tree.getOrderedChildren().end(); ++i) {
+ if (*i) {
getNonVisiblyUsedPrefixes(*(*i), child_prefixes);
getNonVisiblyUsedPrefixes(*(*i), child_prefixes);
+ }
}
const set<Namespace>& nsset = tree.getNamespaces();
for (set<Namespace>::const_iterator ns = nsset.begin(); ns != nsset.end(); ++ns) {
}
const set<Namespace>& nsset = tree.getNamespaces();
for (set<Namespace>::const_iterator ns = nsset.begin(); ns != nsset.end(); ++ns) {
@@
-333,9
+338,11
@@
int XMLHelper::getAttrInt(const DOMElement* e, int defValue, const XMLCh* localN
if (e) {
const XMLCh* val = e->getAttributeNS(ns, localName);
if (val && *val) {
if (e) {
const XMLCh* val = e->getAttributeNS(ns, localName);
if (val && *val) {
- int i = XMLString::parseInt(val);
- if (i)
- return i;
+ try {
+ return XMLString::parseInt(val);
+ }
+ catch (XMLException&) {
+ }
}
}
return defValue;
}
}
return defValue;
@@
-447,5
+454,11
@@
ostream& xmltooling::operator<<(ostream& ostr, const DOMNode& node)
ostream& xmltooling::operator<<(ostream& ostr, const XMLObject& obj)
{
ostream& xmltooling::operator<<(ostream& ostr, const XMLObject& obj)
{
- return ostr << *(obj.marshall());
+ try {
+ return ostr << *(obj.marshall());
+ }
+ catch (DOMException& ex) {
+ auto_ptr_char msg(ex.getMessage());
+ throw XMLParserException(msg.get());
+ }
}
}