]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/LDAPObjClass.cpp
Added utility classes for Schema parsing
[openldap] / contrib / ldapc++ / src / LDAPObjClass.cpp
1 /*
2  * Copyright 2003, OpenLDAP Foundation, All Rights Reserved.
3  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
4  */
5
6 #include "debug.h"
7 #include "LDAPObjClass.h"
8
9
10 LDAPObjClass::LDAPObjClass(){
11     DEBUG(LDAP_DEBUG_CONSTRUCT,
12             "LDAPObjClass::LDAPObjClass( )" << endl);
13
14     oid = string ();
15     desc = string ();
16     names = StringList ();
17     must = StringList();
18     may = StringList();
19 }
20
21 LDAPObjClass::LDAPObjClass (const LDAPObjClass &oc){
22     DEBUG(LDAP_DEBUG_CONSTRUCT,
23             "LDAPObjClass::LDAPObjClass( )" << endl);
24
25     oid = oc.oid;
26     desc = oc.desc;
27     names = oc.names;
28     must = oc.must;
29     may = oc.may;
30     kind = oc.kind;
31 }
32
33 LDAPObjClass::LDAPObjClass (string oc_item) { 
34
35     DEBUG(LDAP_DEBUG_CONSTRUCT,
36             "LDAPObjClass::LDAPObjClass( )" << endl);
37
38     LDAPObjectClass *o;
39     int ret;
40     const char *errp;
41     o = ldap_str2objectclass ( oc_item.c_str(), &ret, &errp, SCHEMA_PARSE_FLAG);
42
43     if (o) {
44         this->setNames (o->oc_names);
45         this->setDesc (o->oc_desc);
46         this->setOid (o->oc_oid);
47         this->setKind (o->oc_kind);
48         this->setMust (o->oc_at_oids_must);
49         this->setMay (o->oc_at_oids_may);
50     }
51     // else? -> error
52 }
53
54 LDAPObjClass::~LDAPObjClass() {
55     DEBUG(LDAP_DEBUG_DESTROY,"LDAPObjClass::~LDAPObjClass()" << endl);
56 }
57
58 void LDAPObjClass::setKind (int oc_kind) {
59     kind = oc_kind;
60 }
61     
62 void LDAPObjClass::setNames (char **oc_names) {
63     names = StringList (oc_names);
64 }
65
66 void LDAPObjClass::setMust (char **oc_must) {
67     must = StringList (oc_must);
68 }
69
70 void LDAPObjClass::setMay (char **oc_may) {
71     may = StringList (oc_may);
72 }
73
74 void LDAPObjClass::setDesc (char *oc_desc) {
75     desc = string ();
76     if (oc_desc)
77         desc = oc_desc;
78 }
79
80 void LDAPObjClass::setOid (char *oc_oid) {
81     oid = string ();
82     if (oc_oid)
83         oid = oc_oid;
84 }
85
86 string LDAPObjClass::getOid () {
87     return oid;
88 }
89
90 string LDAPObjClass::getDesc () {
91     return desc;
92 }
93
94 StringList LDAPObjClass::getNames () {
95     return names;
96 }
97
98 StringList LDAPObjClass::getMust () {
99     return must;
100 }
101
102 StringList LDAPObjClass::getMay () {
103     return may;
104 }
105
106 string LDAPObjClass::getName () {
107
108     if (names.empty())
109         return "";
110     else
111         return *(names.begin());
112 }