Entity.cpp
00001 /* 00002 libvcard - vCard parsing library for vCard version 3.0 00003 00004 Copyright (C) 1999 Rik Hemsley rik@kde.org 00005 00006 Permission is hereby granted, free of charge, to any person obtaining a copy 00007 of this software and associated documentation files (the "Software"), to 00008 deal in the Software without restriction, including without limitation the 00009 rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 00010 sell copies of the Software, and to permit persons to whom the Software is 00011 furnished to do so, subject to the following conditions: 00012 00013 The above copyright notice and this permission notice shall be included in 00014 all copies or substantial portions of the Software. 00015 00016 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00017 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00018 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00019 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 00020 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 00021 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00022 */ 00023 00024 #include <VCardEntity.h> 00025 00026 using namespace VCARD; 00027 00028 Entity::Entity() 00029 : parsed_ (false), 00030 assembled_ (true) 00031 { 00032 // empty 00033 } 00034 00035 Entity::Entity(const Entity & e) 00036 : strRep_ (e.strRep_), 00037 parsed_ (e.parsed_), 00038 assembled_ (e.assembled_) 00039 { 00040 // empty 00041 } 00042 00043 Entity::Entity(const QCString & s) 00044 : strRep_ (s), 00045 parsed_ (false), 00046 assembled_ (true) 00047 { 00048 // empty 00049 } 00050 00051 Entity & 00052 Entity::operator = (const Entity & e) 00053 { 00054 if (this == &e) return *this; 00055 00056 strRep_ = e.strRep_; 00057 parsed_ = e.parsed_; 00058 assembled_ = e.assembled_; 00059 00060 return *this; 00061 } 00062 00063 Entity & 00064 Entity::operator = (const QCString & s) 00065 { 00066 strRep_ = s; 00067 parsed_ = false; 00068 assembled_ = true; 00069 00070 return *this; 00071 } 00072 00073 bool 00074 Entity::operator == (Entity & e) 00075 { 00076 return asString() == e.asString(); 00077 } 00078 00079 bool 00080 Entity::operator != (Entity & e) 00081 { 00082 return !(*this == e); 00083 } 00084 00085 bool 00086 Entity::operator == (const QCString & s) 00087 { 00088 return asString() == s; 00089 } 00090 00091 bool 00092 Entity::operator != (const QCString & s) 00093 { 00094 return !(*this == s); 00095 } 00096 00097 Entity::~Entity() 00098 { 00099 // empty 00100 } 00101 00102 QCString 00103 Entity::asString() 00104 { 00105 // vDebug("Entity::asString()"); 00106 assemble(); 00107 00108 return strRep_; 00109 } 00110 00111 void 00112 Entity::parse() 00113 { 00114 // vDebug( "Entity::parse()" ); 00115 00116 if (!parsed_) _parse(); 00117 00118 parsed_ = true; 00119 assembled_ = false; 00120 } 00121 00122 void 00123 Entity::assemble() 00124 { 00125 // vDebug( "Entity::assemble()" ); 00126 00127 if (assembled_) return; 00128 00129 parse(); 00130 _assemble(); 00131 00132 assembled_ = true; 00133 } 00134