AdrParam.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <VCardRToken.h>
00025 #include <VCardAdrParam.h>
00026 #include <VCardParam.h>
00027
00028 using namespace VCARD;
00029
00030 AdrParam::AdrParam()
00031 : Param()
00032 {
00033 }
00034
00035 AdrParam::AdrParam(const AdrParam & x)
00036 : Param(x),
00037 adrTypeList_ (x.adrTypeList_)
00038 {
00039 }
00040
00041 AdrParam::AdrParam(const QCString & s)
00042 : Param(s)
00043 {
00044 }
00045
00046 AdrParam &
00047 AdrParam::operator = (AdrParam & x)
00048 {
00049 if (*this == x) return *this;
00050
00051 adrTypeList_ = x.adrTypeList();
00052 textParam_ = x.textParam();
00053
00054 Param::operator = (x);
00055 return *this;
00056 }
00057
00058 AdrParam &
00059 AdrParam::operator = (const QCString & s)
00060 {
00061 Param::operator = (s);
00062
00063 adrTypeList_.clear();
00064 textParam_.truncate(0);
00065
00066 return *this;
00067 }
00068
00069 bool
00070 AdrParam::operator == (AdrParam & x)
00071 {
00072 parse();
00073
00074 if (!x.textParam().isEmpty())
00075 return (x.textParam_ == textParam_);
00076
00077 if (x.adrTypeList().count() != adrTypeList_.count())
00078 return false;
00079
00080 QStrListIterator it(x.adrTypeList_);
00081
00082 for (; it.current(); ++it)
00083 if (!adrTypeList_.find(it.current()))
00084 return false;
00085
00086 return true;
00087 }
00088
00089 AdrParam::~AdrParam()
00090 {
00091 }
00092
00093 void
00094 AdrParam::_parse()
00095 {
00096 adrTypeList_.clear();
00097
00098 if (strRep_.left(4) != "TYPE") {
00099 textParam_ = strRep_;
00100 return;
00101 }
00102
00103 if (!strRep_.contains('='))
00104 return;
00105
00106 RTokenise(strRep_, ",", adrTypeList_);
00107 }
00108
00109 void
00110 AdrParam::_assemble()
00111 {
00112 if (!textParam_.isEmpty()) {
00113 strRep_ = textParam_;
00114 return;
00115 }
00116
00117 QStrListIterator it(adrTypeList_);
00118
00119 for (; it.current(); ++it) {
00120
00121 strRep_ += it.current();
00122
00123 if (it.current() != adrTypeList_.last())
00124 strRep_ += ',';
00125 }
00126 }
This file is part of the documentation for kdelibs Version 3.1.0.