1 #include "CalendarEvent.h"
5 void CalendarEventObject::SaveObjectData(string *SaveData){
8 string DataLineProcessed = "";
10 *SaveData += "BEGIN:VEVENT\n";
14 if (UniqueID.size() > 0){
16 if (UniqueIDTokens.size() > 0){
19 DataLine += UniqueIDTokens;
31 DataLineProcessed = OutputText(&DataLine);
33 *SaveData += DataLineProcessed;
36 DataLineProcessed.clear();
40 // Process the DTSTAMP.
42 if (DateTimeStampData.size() > 0){
44 if (DateTimeStampTokens.size() > 0){
46 DataLine += "DTSTAMP;";
47 DataLine += DateTimeStampTokens;
51 DataLine += "DTSTAMP";
56 DataLine += DateTimeStampData;
59 DataLineProcessed = OutputText(&DataLine);
61 *SaveData += DataLineProcessed;
64 DataLineProcessed.clear();
68 // Process the DTSTART.
70 if (DateTimeStartData.size() > 0){
72 DataLine += "DTSTART";
74 if (DateTimeStartDataValue.size() > 0){
76 DataLine += ";VALUE=";
77 DataLine += DateTimeStartDataValue;
81 if (DateTimeStartDataTimeZoneID.size() > 0){
84 DataLine += DateTimeStartDataTimeZoneID;
88 if (DateTimeStartDataTokens.size() > 0){
91 DataLine += DateTimeStartDataTokens;
96 DataLine += DateTimeStartData;
99 DataLineProcessed = OutputText(&DataLine);
101 *SaveData += DataLineProcessed;
104 DataLineProcessed.clear();
108 // Process the DTEND.
110 if (DateTimeEndData.size() > 0){
114 if (DateTimeEndDataValue.size() > 0){
116 DataLine += ";VALUE=";
117 DataLine += DateTimeEndDataValue;
121 if (DateTimeEndDataTimeZoneID.size() > 0){
123 DataLine += ";TZID=";
124 DataLine += DateTimeEndDataTimeZoneID;
128 if (DateTimeEndDataTokens.size() > 0){
131 DataLine += DateTimeEndDataTokens;
136 DataLine += DateTimeEndData;
139 DataLineProcessed = OutputText(&DataLine);
141 *SaveData += DataLineProcessed;
144 DataLineProcessed.clear();
148 // Process the SUMMARY.
150 if (SummaryData.size() > 0){
152 DataLine += "SUMMARY";
154 if (SummaryDataAltRep.size() > 0){
156 DataLine += ";ALTREP=\"";
157 DataLine += SummaryDataAltRep;
162 if (SummaryDataLanguage.size() > 0){
164 DataLine += ";LANGUAGE=";
165 DataLine += SummaryDataLanguage;
169 if (SummaryDataTokens.size() > 0){
172 DataLine += SummaryDataTokens;
177 DataLine += SummaryData;
180 DataLineProcessed = OutputText(&DataLine);
182 *SaveData += DataLineProcessed;
185 DataLineProcessed.clear();
189 // Process the CLASS value.
191 if (ClassData.size() > 0){
193 if (ClassDataTokens.size() > 0){
195 DataLine += "CLASS;";
196 DataLine += ClassDataTokens;
205 DataLine += ClassData;
208 DataLineProcessed = OutputText(&DataLine);
210 *SaveData += DataLineProcessed;
213 DataLineProcessed.clear();
217 // Process the CREATED value.
219 if (DateTimeCreatedData.size() > 0){
221 if (DateTimeCreatedTokens.size() > 0){
223 DataLine += "CREATED;";
224 DataLine += DateTimeCreatedTokens;
228 DataLine += "CREATED";
233 DataLine += DateTimeCreatedData;
236 DataLineProcessed = OutputText(&DataLine);
238 *SaveData += DataLineProcessed;
241 DataLineProcessed.clear();
245 // Process the DESCRIPTION values. Write out the
246 // first DESCRPITION only as per RFC5545 specifcation.
248 if (DescriptionList.size() > 0){
250 DataLine += "DESCRIPTION";
252 if (DescriptionListAltRep[0].size() > 0){
254 DataLine += ";ALTREP=\"";
255 DataLine += DescriptionListAltRep[0];
260 if (DescriptionListLanguage[0].size() > 0){
262 DataLine += ";LANGUAGE=";
263 DataLine += DescriptionListLanguage[0];
267 if (DescriptionListTokens[0].size() > 0){
270 DataLine += DescriptionListTokens[0];
275 DataLine += DescriptionList[0];
278 DataLineProcessed = OutputText(&DataLine);
280 *SaveData += DataLineProcessed;
283 DataLineProcessed.clear();
287 // Process the GEO value.
289 if (GeographicData.size() > 0){
291 if (GeographicTokens.size() > 0){
294 DataLine += GeographicTokens;
303 DataLine += GeographicData;
306 DataLineProcessed = OutputText(&DataLine);
308 *SaveData += DataLineProcessed;
311 DataLineProcessed.clear();
315 // Process the LAST-MODIFIED value.
317 if (LastModifiedData.size() > 0){
319 if (LastModifiedTokens.size() > 0){
321 DataLine += "LAST-MODIFIED;";
322 DataLine += LastModifiedTokens;
326 DataLine += "LAST-MODIFIED";
331 DataLine += LastModifiedData;
334 DataLineProcessed = OutputText(&DataLine);
336 *SaveData += DataLineProcessed;
339 DataLineProcessed.clear();
343 *SaveData += "END:VEVENT\n";