]> git.sur5r.net Git - openldap/blob - contrib/ldapc++/src/LDAPAttrType.cpp
Added ldif_countlines()
[openldap] / contrib / ldapc++ / src / LDAPAttrType.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 "LDAPAttrType.h"
8
9
10 LDAPAttrType::LDAPAttrType(){
11     DEBUG(LDAP_DEBUG_CONSTRUCT,
12             "LDAPAttrType::LDAPAttrType( )" << endl);
13
14     oid = string ();
15     desc = string ();
16     equality = string ();
17     syntax = string ();
18     names = StringList ();
19     single = false;
20 }
21
22 LDAPAttrType::LDAPAttrType (const LDAPAttrType &at){
23     DEBUG(LDAP_DEBUG_CONSTRUCT,
24             "LDAPAttrType::LDAPAttrType( )" << endl);
25
26     oid = at.oid;
27     desc = at.desc;
28     equality = at.equality;
29     syntax = at.syntax;
30     names = at.names;
31     single = at.single;
32 }
33
34 LDAPAttrType::LDAPAttrType (string at_item) { 
35
36     DEBUG(LDAP_DEBUG_CONSTRUCT,
37             "LDAPAttrType::LDAPAttrType( )" << endl);
38
39     LDAPAttributeType *a;
40     int ret;
41     const char *errp;
42     a = ldap_str2attributetype (at_item.c_str(), &ret, &errp,SCHEMA_PARSE_FLAG);
43
44     if (a) {
45         this->setNames (a->at_names);
46         this->setDesc (a->at_desc);
47         this->setEquality (a->at_equality_oid);
48         this->setSyntax (a->at_syntax_oid);
49         this->setOid (a->at_oid);
50         this->setSingle (a->at_single_value);
51     }
52     // else? -> error
53 }
54
55 LDAPAttrType::~LDAPAttrType() {
56     DEBUG(LDAP_DEBUG_DESTROY,"LDAPAttrType::~LDAPAttrType()" << endl);
57 }
58
59 void LDAPAttrType::setSingle (int at_single) {
60     single = (at_single == 1);
61 }
62     
63 void LDAPAttrType::setNames (char **at_names) {
64     names = StringList (at_names);
65 }
66
67 void LDAPAttrType::setDesc (char *at_desc) {
68     desc = string ();
69     if (at_desc)
70         desc = at_desc;
71 }
72
73 void LDAPAttrType::setEquality (char *at_equality_oid) {
74     equality = string ();
75     if (at_equality_oid) {
76         equality = at_equality_oid;
77     }
78 }
79
80 void LDAPAttrType::setSyntax (char *at_syntax_oid) {
81     syntax = string ();
82     if (at_syntax_oid) {
83         syntax = at_syntax_oid;
84     }
85 }
86
87 void LDAPAttrType::setOid (char *at_oid) {
88     oid = string ();
89     if (at_oid)
90         oid = at_oid;
91 }
92
93 bool LDAPAttrType::isSingle () {
94     return single;
95 }
96
97 string LDAPAttrType::getOid () {
98     return oid;
99 }
100
101 string LDAPAttrType::getDesc () {
102     return desc;
103 }
104
105 string LDAPAttrType::getEquality () {
106     return equality;
107 }
108
109 string LDAPAttrType::getSyntax () {
110     return syntax;
111 }
112
113 StringList LDAPAttrType::getNames () {
114     return names;
115 }
116
117 string LDAPAttrType::getName () {
118
119     if (names.empty())
120         return "";
121     else
122         return *(names.begin());
123 }