[cpp-opensaml COMMIT] /branches/REL_2/saml/saml2/metadata/impl/MetadataImpl.cpp
noreply at shibboleth.net
noreply at shibboleth.net
Thu Dec 22 22:37:56 GMT 2011
Author: scantor
Date: Thu Dec 22 22:37:56 2011
New Revision: 690
URL: http://svn.shibboleth.net/view/cpp-opensaml?rev=690&view=rev
Log:
Additional macros and cleanup for cloning
Modified:
branches/REL_2/saml/saml2/metadata/impl/MetadataImpl.cpp
Modified: branches/REL_2/saml/saml2/metadata/impl/MetadataImpl.cpp
URL: http://svn.shibboleth.net/view/cpp-opensaml/branches/REL_2/saml/saml2/metadata/impl/MetadataImpl.cpp?rev=690&r1=689&r2=690&view=diff
==============================================================================
--- branches/REL_2/saml/saml2/metadata/impl/MetadataImpl.cpp (original)
+++ branches/REL_2/saml/saml2/metadata/impl/MetadataImpl.cpp Thu Dec 22 22:37:56 2011
@@ -44,6 +44,9 @@
#include <xmltooling/util/XMLHelper.h>
#include <ctime>
+#include <boost/lambda/bind.hpp>
+#include <boost/lambda/if.hpp>
+#include <boost/lambda/lambda.hpp>
#include <xercesc/util/XMLUniDefs.hpp>
#include <xsec/framework/XSECDefs.hpp>
@@ -113,9 +116,7 @@
}
void _clone(const localizedNameTypeImpl& src) {
- setLang(src.getLang());
- if (src.m_LangPrefix)
- m_LangPrefix = XMLString::replicate(src.m_LangPrefix);
+ IMPL_CLONE_FOREIGN_ATTRIB(Lang);
}
IMPL_XMLOBJECT_CLONE_EX(localizedNameType);
@@ -179,9 +180,7 @@
}
void _clone(const localizedURITypeImpl& src) {
- setLang(src.getLang());
- if (src.m_LangPrefix)
- m_LangPrefix = XMLString::replicate(src.m_LangPrefix);
+ IMPL_CLONE_FOREIGN_ATTRIB(Lang);
}
IMPL_XMLOBJECT_CLONE_EX(localizedURIType);
@@ -292,11 +291,7 @@
ExtensionsImpl(const ExtensionsImpl& src)
: AbstractXMLObject(src), AbstractComplexElement(src), AbstractDOMCachingXMLObject(src) {
- for (vector<XMLObject*>::const_iterator i=src.m_UnknownXMLObjects.begin(); i!=src.m_UnknownXMLObjects.end(); ++i) {
- if (*i) {
- getUnknownXMLObjects().push_back((*i)->clone());
- }
- }
+ IMPL_CLONE_XMLOBJECT_CHILDREN(UnknownXMLObject);
}
IMPL_XMLOBJECT_CLONE(Extensions);
@@ -349,23 +344,10 @@
: AbstractXMLObject(src), AbstractComplexElement(src),
AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
- if (src.getExtensions())
- setExtensions(src.getExtensions()->cloneExtensions());
- for (vector<OrganizationName*>::const_iterator i=src.m_OrganizationNames.begin(); i!=src.m_OrganizationNames.end(); i++) {
- if (*i) {
- getOrganizationNames().push_back((*i)->cloneOrganizationName());
- }
- }
- for (vector<OrganizationDisplayName*>::const_iterator j=src.m_OrganizationDisplayNames.begin(); j!=src.m_OrganizationDisplayNames.end(); j++) {
- if (*j) {
- getOrganizationDisplayNames().push_back((*j)->cloneOrganizationDisplayName());
- }
- }
- for (vector<OrganizationURL*>::const_iterator k=src.m_OrganizationURLs.begin(); k!=src.m_OrganizationURLs.end(); k++) {
- if (*k) {
- getOrganizationURLs().push_back((*k)->cloneOrganizationURL());
- }
- }
+ IMPL_CLONE_TYPED_CHILD(Extensions);
+ IMPL_CLONE_TYPED_CHILDREN(OrganizationName);
+ IMPL_CLONE_TYPED_CHILDREN(OrganizationDisplayName);
+ IMPL_CLONE_TYPED_CHILDREN(OrganizationURL);
}
IMPL_XMLOBJECT_CLONE(Organization);
@@ -437,25 +419,13 @@
: AbstractXMLObject(src), AbstractComplexElement(src),
AbstractAttributeExtensibleXMLObject(src), AbstractDOMCachingXMLObject(src) {
init();
- if (src.getExtensions())
- setExtensions(src.getExtensions()->cloneExtensions());
- if (src.getCompany())
- setCompany(src.getCompany()->cloneCompany());
- if (src.getGivenName())
- setGivenName(src.getGivenName()->cloneGivenName());
- if (src.getSurName())
- setSurName(src.getSurName()->cloneSurName());
-
- for (vector<EmailAddress*>::const_iterator i=src.m_EmailAddresss.begin(); i!=src.m_EmailAddresss.end(); i++) {
- if (*i) {
- getEmailAddresss().push_back((*i)->cloneEmailAddress());
- }
- }
- for (vector<TelephoneNumber*>::const_iterator j=src.m_TelephoneNumbers.begin(); j!=src.m_TelephoneNumbers.end(); j++) {
- if (*j) {
- getTelephoneNumbers().push_back((*j)->cloneTelephoneNumber());
[... 763 lines stripped ...]
More information about the commits
mailing list