// $OpenLDAP$
/*
* Copyright 2003-2021 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include "debug.h"
#include "LDAPObjClass.h"
LDAPObjClass::LDAPObjClass(){
DEBUG(LDAP_DEBUG_CONSTRUCT,
"LDAPObjClass::LDAPObjClass( )" << endl);
oid = string ();
desc = string ();
names = StringList ();
must = StringList();
may = StringList();
sup = StringList();
}
LDAPObjClass::LDAPObjClass (const LDAPObjClass &oc){
DEBUG(LDAP_DEBUG_CONSTRUCT,
"LDAPObjClass::LDAPObjClass( )" << endl);
oid = oc.oid;
desc = oc.desc;
names = oc.names;
must = oc.must;
may = oc.may;
kind = oc.kind;
sup = oc.sup;
}
LDAPObjClass::LDAPObjClass (string oc_item, int flags ) {
DEBUG(LDAP_DEBUG_CONSTRUCT,
"LDAPObjClass::LDAPObjClass( )" << endl);
LDAPObjectClass *o;
int ret;
const char *errp;
o = ldap_str2objectclass ( oc_item.c_str(), &ret, &errp, flags );
if (o) {
this->setNames (o->oc_names);
this->setDesc (o->oc_desc);
this->setOid (o->oc_oid);
this->setKind (o->oc_kind);
this->setMust (o->oc_at_oids_must);
this->setMay (o->oc_at_oids_may);
this->setSup (o->oc_sup_oids);
}
// else? -> error
}
LDAPObjClass::~LDAPObjClass() {
DEBUG(LDAP_DEBUG_DESTROY,"LDAPObjClass::~LDAPObjClass()" << endl);
}
void LDAPObjClass::setKind (int oc_kind) {
kind = oc_kind;
}
void LDAPObjClass::setNames (char **oc_names) {
names = StringList (oc_names);
}
void LDAPObjClass::setMust (char **oc_must) {
must = StringList (oc_must);
}
void LDAPObjClass::setMay (char **oc_may) {
may = StringList (oc_may);
}
void LDAPObjClass::setSup (char **oc_sup) {
sup = StringList (oc_sup);
}
void LDAPObjClass::setDesc (char *oc_desc) {
desc = string ();
if (oc_desc)
desc = oc_desc;
}
void LDAPObjClass::setOid (char *oc_oid) {
oid = string ();
if (oc_oid)
oid = oc_oid;
}
string LDAPObjClass::getOid() const {
return oid;
}
string LDAPObjClass::getDesc() const {
return desc;
}
StringList LDAPObjClass::getNames() const {
return names;
}
StringList LDAPObjClass::getMust() const {
return must;
}
StringList LDAPObjClass::getMay() const {
return may;
}
StringList LDAPObjClass::getSup() const {
return sup;
}
string LDAPObjClass::getName() const {
if (names.empty())
return "";
else
return *(names.begin());
}
int LDAPObjClass::getKind() const {
return kind;
}