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 kabc Library Version 3.2.0.