X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-opensaml.git;a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FEntityAttributesMetadataFilter.cpp;h=e9d01036b22f9cfe127679a0ead197cdf9544b4e;hp=407fd81d2765333743f4c4a6dc98e3a430d4f0f6;hb=1462057b3b9ae7e165d34d988e30b14c213672ca;hpb=29df83c706eb300a16cda516a501f7f536df8ed2 diff --git a/saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp b/saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp index 407fd81..e9d0103 100644 --- a/saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp +++ b/saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp @@ -56,8 +56,8 @@ namespace opensaml { void doFilter(XMLObject& xmlObject) const; private: - void filterEntity(EntityDescriptor& entity) const; - void filterGroup(EntitiesDescriptor& entities) const; + void filterEntity(EntityDescriptor* entity) const; + void filterGroup(EntitiesDescriptor* entities) const; vector< boost::shared_ptr > m_attributes; typedef multimap applymap_t; @@ -84,7 +84,7 @@ EntityAttributesMetadataFilter::EntityAttributesMetadataFilter(const DOMElement* while (child) { if (XMLHelper::isNodeNamed(child, samlconstants::SAML20_NS, Attribute::LOCAL_NAME)) { boost::shared_ptr obj(AttributeBuilder::buildOneFromElement(child)); - m_attributes.push_back(boost::shared_dynamic_cast(obj)); + m_attributes.push_back(boost::dynamic_pointer_cast(obj)); } else if (XMLString::equals(child->getLocalName(), Entity)) { const XMLCh* eid = child->getTextContent(); @@ -101,43 +101,37 @@ void EntityAttributesMetadataFilter::doFilter(XMLObject& xmlObject) const { EntitiesDescriptor* group = dynamic_cast(&xmlObject); if (group) { - filterGroup(*group); + filterGroup(group); } else { EntityDescriptor* entity = dynamic_cast(&xmlObject); if (entity) { - filterEntity(*entity); + filterEntity(entity); } else { - throw MetadataFilterException(ENTITYATTR_METADATA_FILTER" MetadataFilter was given an improper metadata instance to filter."); + throw MetadataFilterException(ENTITYATTR_METADATA_FILTER " MetadataFilter was given an improper metadata instance to filter."); } } } -void EntityAttributesMetadataFilter::filterGroup(EntitiesDescriptor& entities) const +void EntityAttributesMetadataFilter::filterGroup(EntitiesDescriptor* entities) const { - const vector& v = const_cast(entities).getEntityDescriptors(); - for_each( - make_indirect_iterator(v.begin()), make_indirect_iterator(v.end()), - lambda::bind(&EntityAttributesMetadataFilter::filterEntity, this, _1) - ); - - const vector& v2 = const_cast(entities).getEntitiesDescriptors(); - for_each( - make_indirect_iterator(v2.begin()), make_indirect_iterator(v2.end()), - lambda::bind(&EntityAttributesMetadataFilter::filterGroup, this, _1) - ); + const vector& v = const_cast(entities)->getEntityDescriptors(); + for_each(v.begin(), v.end(), lambda::bind(&EntityAttributesMetadataFilter::filterEntity, this, _1)); + + const vector& v2 = const_cast(entities)->getEntitiesDescriptors(); + for_each(v2.begin(), v2.end(), lambda::bind(&EntityAttributesMetadataFilter::filterGroup, this, _1)); } -void EntityAttributesMetadataFilter::filterEntity(EntityDescriptor& entity) const +void EntityAttributesMetadataFilter::filterEntity(EntityDescriptor* entity) const { - if (entity.getEntityID()) { - pair tags = m_applyMap.equal_range(entity.getEntityID()); + if (entity->getEntityID()) { + pair tags = m_applyMap.equal_range(entity->getEntityID()); if (tags.first != tags.second) { - Extensions* exts = entity.getExtensions(); + Extensions* exts = entity->getExtensions(); if (!exts) { - entity.setExtensions(ExtensionsBuilder::buildExtensions()); - exts = entity.getExtensions(); + entity->setExtensions(ExtensionsBuilder::buildExtensions()); + exts = entity->getExtensions(); } EntityAttributes* wrapper = nullptr; const vector& children = const_cast(exts)->getUnknownXMLObjects();