X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fsaml2%2Fmetadata%2Fimpl%2FEntityAttributesMetadataFilter.cpp;fp=saml%2Fsaml2%2Fmetadata%2Fimpl%2FEntityAttributesMetadataFilter.cpp;h=bb1bfdf065149740ba660dc966285a518393eea7;hb=bb0445de5d7455fdeda45c859735d774b7edf92f;hp=407fd81d2765333743f4c4a6dc98e3a430d4f0f6;hpb=7d1737c8b5c58b1f052d1d6b6d4f509a68dc84cc;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp b/saml/saml2/metadata/impl/EntityAttributesMetadataFilter.cpp index 407fd81..bb1bfdf 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; @@ -101,12 +101,12 @@ 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."); @@ -114,30 +114,24 @@ void EntityAttributesMetadataFilter::doFilter(XMLObject& xmlObject) const } } -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();