added support for deleting attribute type from the list of attributes

This commit is contained in:
Ralf Haferkamp 2008-06-12 14:47:55 +00:00
parent b3b2aa70f3
commit 31780c2add
4 changed files with 35 additions and 9 deletions

View File

@ -140,6 +140,22 @@ void LDAPAttributeList::addAttribute(const LDAPAttribute& attr){
}
}
void LDAPAttributeList::delAttribute(const std::string& type)
{
DEBUG(LDAP_DEBUG_TRACE,"LDAPAttribute::replaceAttribute()" << endl);
DEBUG(LDAP_DEBUG_TRACE | LDAP_DEBUG_PARAMETER, " type: " << type << endl);
LDAPAttributeList::iterator i;
for( i = m_attrs.begin(); i != m_attrs.end(); i++){
if(type.size() == i->getName().size()){
if(equal(type.begin(), type.end(), i->getName().begin(),
nocase_compare)){
m_attrs.erase(i);
break;
}
}
}
}
void LDAPAttributeList::replaceAttribute(const LDAPAttribute& attr)
{
DEBUG(LDAP_DEBUG_TRACE,"LDAPAttribute::replaceAttribute()" << endl);
@ -147,15 +163,7 @@ void LDAPAttributeList::replaceAttribute(const LDAPAttribute& attr)
" attr:" << attr << endl);
LDAPAttributeList::iterator i;
for( i = m_attrs.begin(); i != m_attrs.end(); i++){
if(attr.getName().size() == i->getName().size()){
if(equal(attr.getName().begin(), attr.getName().end(), i->getName().begin(),
nocase_compare)){
m_attrs.erase(i);
break;
}
}
}
this->delAttribute( attr.getName() );
m_attrs.push_back(attr);
}

View File

@ -90,6 +90,12 @@ class LDAPAttributeList{
* @param attr The attribute to add to the list.
*/
void addAttribute(const LDAPAttribute& attr);
/**
* Deletes all values of an Attribute for the list
* @param type The attribute type to be deleted.
*/
void delAttribute(const std::string& type);
/**
* Replace an Attribute in the List

View File

@ -88,6 +88,11 @@ void LDAPEntry::addAttribute(const LDAPAttribute& attr)
m_attrs->addAttribute(attr);
}
void LDAPEntry::delAttribute(const std::string& type)
{
m_attrs->delAttribute(type);
}
void LDAPEntry::replaceAttribute(const LDAPAttribute& attr)
{
m_attrs->replaceAttribute(attr);

View File

@ -78,6 +78,13 @@ class LDAPEntry{
* @param attr The attribute to add to the list.
*/
void addAttribute(const LDAPAttribute& attr);
/**
* Deletes all values of an Attribute from the list of Attributes
* (simple wrapper around LDAPAttributeList::delAttribute() ).
* @param type The attribute to delete.
*/
void delAttribute(const std::string& type);
/**
* Replace an Attribute in the List of Attributes (simple wrapper