1// OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPAttrType.cpp,v 1.3.4.4 2008/09/02 23:58:15 quanah Exp 2/* 3 * Copyright 2003, OpenLDAP Foundation, All Rights Reserved. 4 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 5 */ 6 7#include "debug.h" 8#include "LDAPAttrType.h" 9 10 11LDAPAttrType::LDAPAttrType(){ 12 DEBUG(LDAP_DEBUG_CONSTRUCT, 13 "LDAPAttrType::LDAPAttrType( )" << endl); 14 15 oid = string (); 16 desc = string (); 17 names = StringList (); 18 single = false; 19 usage = 0; 20} 21 22LDAPAttrType::LDAPAttrType (string at_item, int flags ) { 23 24 DEBUG(LDAP_DEBUG_CONSTRUCT, 25 "LDAPAttrType::LDAPAttrType( )" << endl); 26 27 LDAPAttributeType *a; 28 int ret; 29 const char *errp; 30 a = ldap_str2attributetype (at_item.c_str(), &ret, &errp, flags); 31 32 if (a) { 33 this->setNames( a->at_names ); 34 this->setDesc( a->at_desc ); 35 this->setOid( a->at_oid ); 36 this->setSingle( a->at_single_value ); 37 this->setUsage( a->at_usage ); 38 this->setSuperiorOid( a->at_sup_oid ); 39 this->setEqualityOid( a->at_equality_oid ); 40 this->setOrderingOid( a->at_ordering_oid ); 41 this->setSubstringOid( a->at_substr_oid ); 42 this->setSyntaxOid( a->at_syntax_oid ); 43 } 44 // else? -> error 45} 46 47LDAPAttrType::~LDAPAttrType() { 48 DEBUG(LDAP_DEBUG_DESTROY,"LDAPAttrType::~LDAPAttrType()" << endl); 49} 50 51void LDAPAttrType::setSingle (int at_single) { 52 single = (at_single == 1); 53} 54 55void LDAPAttrType::setNames ( char **at_names ) { 56 names = StringList(at_names); 57} 58 59void LDAPAttrType::setDesc (const char *at_desc) { 60 desc = string (); 61 if (at_desc) 62 desc = at_desc; 63} 64 65void LDAPAttrType::setOid (const char *at_oid) { 66 oid = string (); 67 if (at_oid) 68 oid = at_oid; 69} 70 71void LDAPAttrType::setUsage (int at_usage) { 72 usage = at_usage; 73} 74 75void LDAPAttrType::setSuperiorOid( const char *oid ){ 76 if ( oid ) 77 superiorOid = oid; 78} 79 80void LDAPAttrType::setEqualityOid( const char *oid ){ 81 if ( oid ) 82 equalityOid = oid; 83} 84 85void LDAPAttrType::setOrderingOid( const char *oid ){ 86 if ( oid ) 87 orderingOid = oid; 88} 89 90void LDAPAttrType::setSubstringOid( const char *oid ){ 91 if ( oid ) 92 substringOid = oid; 93} 94 95void LDAPAttrType::setSyntaxOid( const char *oid ){ 96 if ( oid ) 97 syntaxOid = oid; 98} 99 100bool LDAPAttrType::isSingle() const { 101 return single; 102} 103 104string LDAPAttrType::getOid() const { 105 return oid; 106} 107 108string LDAPAttrType::getDesc() const { 109 return desc; 110} 111 112StringList LDAPAttrType::getNames() const { 113 return names; 114} 115 116string LDAPAttrType::getName() const { 117 118 if (names.empty()) 119 return ""; 120 else 121 return *(names.begin()); 122} 123 124int LDAPAttrType::getUsage() const { 125 return usage; 126} 127 128std::string LDAPAttrType::getSuperiorOid() const { 129 return superiorOid; 130} 131 132std::string LDAPAttrType::getEqualityOid() const { 133 return equalityOid; 134} 135 136std::string LDAPAttrType::getOrderingOid() const { 137 return orderingOid; 138} 139 140std::string LDAPAttrType::getSubstringOid() const { 141 return substringOid; 142} 143 144std::string LDAPAttrType::getSyntaxOid() const { 145 return syntaxOid; 146} 147 148 149