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<Attribute> > m_attributes;
typedef multimap<xstring,const Attribute*> applymap_t;
while (child) {
if (XMLHelper::isNodeNamed(child, samlconstants::SAML20_NS, Attribute::LOCAL_NAME)) {
boost::shared_ptr<XMLObject> obj(AttributeBuilder::buildOneFromElement(child));
- m_attributes.push_back(boost::shared_dynamic_cast<Attribute>(obj));
+ m_attributes.push_back(boost::dynamic_pointer_cast<Attribute>(obj));
}
else if (XMLString::equals(child->getLocalName(), Entity)) {
const XMLCh* eid = child->getTextContent();
{
EntitiesDescriptor* group = dynamic_cast<EntitiesDescriptor*>(&xmlObject);
if (group) {
- filterGroup(*group);
+ filterGroup(group);
}
else {
EntityDescriptor* entity = dynamic_cast<EntityDescriptor*>(&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<EntityDescriptor*>& v = const_cast<const EntitiesDescriptor&>(entities).getEntityDescriptors();
- for_each(
- make_indirect_iterator(v.begin()), make_indirect_iterator(v.end()),
- lambda::bind(&EntityAttributesMetadataFilter::filterEntity, this, _1)
- );
-
- const vector<EntitiesDescriptor*>& v2 = const_cast<const EntitiesDescriptor&>(entities).getEntitiesDescriptors();
- for_each(
- make_indirect_iterator(v2.begin()), make_indirect_iterator(v2.end()),
- lambda::bind(&EntityAttributesMetadataFilter::filterGroup, this, _1)
- );
+ const vector<EntityDescriptor*>& v = const_cast<const EntitiesDescriptor*>(entities)->getEntityDescriptors();
+ for_each(v.begin(), v.end(), lambda::bind(&EntityAttributesMetadataFilter::filterEntity, this, _1));
+
+ const vector<EntitiesDescriptor*>& v2 = const_cast<const EntitiesDescriptor*>(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<applymap_t::const_iterator,applymap_t::const_iterator> tags = m_applyMap.equal_range(entity.getEntityID());
+ if (entity->getEntityID()) {
+ pair<applymap_t::const_iterator,applymap_t::const_iterator> 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<XMLObject*>& children = const_cast<const Extensions*>(exts)->getUnknownXMLObjects();