1 #include "CalendarJournal.h"
5 void CalendarJournalObject::SaveObjectData(string *SaveData){
8 string DataLineProcessed = "";
10 *SaveData += "BEGIN:VJOURNAL\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 SUMMARY.
70 if (SummaryData.size() > 0){
72 DataLine += "SUMMARY";
74 if (SummaryDataAltRep.size() > 0){
76 DataLine += ";ALTREP=\"";
77 DataLine += SummaryDataAltRep;
82 if (SummaryDataLanguage.size() > 0){
84 DataLine += ";LANGUAGE=";
85 DataLine += SummaryDataLanguage;
89 if (SummaryDataTokens.size() > 0){
92 DataLine += SummaryDataTokens;
97 DataLine += SummaryData;
100 DataLineProcessed = OutputText(&DataLine);
102 *SaveData += DataLineProcessed;
105 DataLineProcessed.clear();
109 // Process the CLASS.
111 if (ClassData.size() > 0){
115 if (ClassDataTokens.size() > 0){
118 DataLine += ClassDataTokens;
123 DataLine += ClassData;
126 DataLineProcessed = OutputText(&DataLine);
128 *SaveData += DataLineProcessed;
131 DataLineProcessed.clear();
135 // Process the DTSTART.
137 if (DateTimeStartData.size() > 0){
139 DataLine += "DTSTART";
141 if (DateTimeStartDataValue.size() > 0){
143 DataLine += ";VALUE=";
144 DataLine += DateTimeStartDataValue;
148 if (DateTimeStartDataTimeZoneID.size() > 0){
150 DataLine += ";TZID=";
151 DataLine += DateTimeStartDataTimeZoneID;
155 if (DateTimeStartDataTokens.size() > 0){
158 DataLine += DateTimeStartDataTokens;
163 DataLine += DateTimeStartData;
166 DataLineProcessed = OutputText(&DataLine);
168 *SaveData += DataLineProcessed;
171 DataLineProcessed.clear();
175 // Process the LAST-MODIFIED value.
177 if (LastModifiedData.size() > 0){
179 if (LastModifiedTokens.size() > 0){
181 DataLine += "LAST-MODIFIED;";
182 DataLine += LastModifiedTokens;
186 DataLine += "LAST-MODIFIED";
191 DataLine += LastModifiedData;
194 DataLineProcessed = OutputText(&DataLine);
196 *SaveData += DataLineProcessed;
199 DataLineProcessed.clear();
203 // Process the ORGANIZER value.
205 if (OrganiserData.size() > 0){
207 DataLine += "ORGANIZER";
209 if (OrganiserDataCommonName.size() > 0){
212 DataLine += OrganiserDataCommonName;
216 if (OrganiserDataDirectoryEntry.size() > 0){
218 DataLine += ";DIR=\"";
219 DataLine += OrganiserDataDirectoryEntry;
224 if (OrganiserDataSentByParam.size() > 0){
226 DataLine += ";SENT-BY=\"";
227 DataLine += OrganiserDataSentByParam;
232 if (OrganiserDataLanguage.size() > 0){
234 DataLine += ";LANGUAGE=";
235 DataLine += OrganiserDataLanguage;
239 if (OrganiserDataTokens.size() > 0){
242 DataLine += OrganiserDataTokens;
247 DataLine += OrganiserData;
250 DataLineProcessed = OutputText(&DataLine);
252 *SaveData += DataLineProcessed;
255 DataLineProcessed.clear();
259 // Process the RECURRENCE-ID value.
261 if (RecurranceIDData.size() > 0){
263 DataLine += "RECURRENCE-ID";
265 if (RecurranceIDDataTimeZoneParam.size() > 0){
267 DataLine += ";TZID=";
268 DataLine += RecurranceIDDataTimeZoneParam;
272 if (RecurranceIDDataRangeParam.size() > 0){
274 DataLine += ";RANGE=";
275 DataLine += RecurranceIDDataRangeParam;
279 if (RecurranceIDDataValue.size() > 0){
281 DataLine += ";VALUE=";
282 DataLine += RecurranceIDDataValue;
286 if (RecurranceIDDataTokens.size() > 0){
289 DataLine += RecurranceIDDataTokens;
294 DataLine += RecurranceIDData;
297 DataLineProcessed = OutputText(&DataLine);
299 *SaveData += DataLineProcessed;
302 DataLineProcessed.clear();
306 // Process the SEQUENCE value.
308 if (SequenceData > -1 && SequenceData < 10){
310 DataLine += "SEQUENCE";
312 if (SequenceTokens.size() > 0){
315 DataLine += SequenceTokens;
320 DataLine += to_string(SequenceData);
323 DataLineProcessed = OutputText(&DataLine);
325 *SaveData += DataLineProcessed;
328 DataLineProcessed.clear();
332 // Process the STATUS value.
334 if (StatusData.size() > 0){
336 DataLine += "STATUS";
338 if (StatusLanguage.size() > 0){
340 DataLine += ";LANGUAGE=";
341 DataLine += StatusLanguage;
345 if (StatusTokens.size() > 0){
348 DataLine += StatusTokens;
353 DataLine += StatusData;
356 DataLineProcessed = OutputText(&DataLine);
358 *SaveData += DataLineProcessed;
361 DataLineProcessed.clear();
365 // Process the URL value.
367 if (URLData.size() > 0){
371 if (URLDataTokens.size() > 0){
374 DataLine += URLDataTokens;
382 DataLineProcessed = OutputText(&DataLine);
384 *SaveData += DataLineProcessed;
387 DataLineProcessed.clear();
391 // Process the RRULE value.
393 if (RecurranceRuleData.size() > 0){
397 if (RecurranceRuleDataTokens.size() > 0){
400 DataLine += RecurranceRuleDataTokens;
405 DataLine += RecurranceRuleData;
408 DataLineProcessed = OutputText(&DataLine);
410 *SaveData += DataLineProcessed;
413 DataLineProcessed.clear();
417 // Process the ATTACH values.
419 if (AttachList.size() > 0){
421 for (int AttachListSeek = 0; AttachListSeek < AttachList.size();
424 DataLine += "ATTACH";
426 if (AttachListFormatType[AttachListSeek].size() > 0){
428 DataLine += ";FMTTYPE=";
429 DataLine += AttachListFormatType[AttachListSeek];
433 if (AttachListValue[AttachListSeek].size() > 0){
435 DataLine += ";VALUE=";
436 DataLine += AttachListValue[AttachListSeek];
440 if (AttachListEncoding[AttachListSeek].size() > 0){
442 DataLine += ";ENCODING=";
443 DataLine += AttachListEncoding[AttachListSeek];
447 if (AttachListTokens[AttachListSeek].size() > 0){
450 DataLine += AttachListTokens[AttachListSeek];
455 DataLine += AttachList[AttachListSeek];
458 DataLineProcessed = OutputText(&DataLine);
460 *SaveData += DataLineProcessed;
463 DataLineProcessed.clear();
469 // Process the ATTENDEE value.
471 if (AttendeeList.size() > 0){
473 for (int AttendeeListSeek = 0; AttendeeListSeek < AttendeeList.size();
476 DataLine += "ATTENDEE";
478 if (AttendeeListMember[AttendeeListSeek].size() > 0){
480 DataLine += ";MEMBER=\"";
481 DataLine += AttendeeListMember[AttendeeListSeek];
486 if (AttendeeListDelegatedFrom[AttendeeListSeek].size() > 0){
488 DataLine += ";DELEGATED-FROM=\"";
489 DataLine += AttendeeListDelegatedFrom[AttendeeListSeek];
494 if (AttendeeListDelegatedTo[AttendeeListSeek].size() > 0){
496 DataLine += ";DELEGATED-TO=\"";
497 DataLine += AttendeeListDelegatedTo[AttendeeListSeek];
502 if (AttendeeListRole[AttendeeListSeek].size() > 0){
504 DataLine += ";ROLE=";
505 DataLine += AttendeeListRole[AttendeeListSeek];
509 if (AttendeeListRSVP[AttendeeListSeek].size() > 0){
511 DataLine += ";RSVP=";
512 DataLine += AttendeeListRSVP[AttendeeListSeek];
516 if (AttendeeListDirectoryEntry[AttendeeListSeek].size() > 0){
518 DataLine += ";DIR=\"";
519 DataLine += AttendeeListDirectoryEntry[AttendeeListSeek];
524 if (AttendeeListSentBy[AttendeeListSeek].size() > 0){
526 DataLine += ";SENT-BY=\"";
527 DataLine += AttendeeListSentBy[AttendeeListSeek];
532 if (AttendeeListCommonName[AttendeeListSeek].size() > 0){
534 DataLine += ";CN=\"";
535 DataLine += AttendeeListCommonName[AttendeeListSeek];
540 if (AttendeeListCalendarUserType[AttendeeListSeek].size() > 0){
542 DataLine += ";CUTYPE=";
543 DataLine += AttendeeListCalendarUserType[AttendeeListSeek];
547 if (AttendeeListParticipationStatus[AttendeeListSeek].size() > 0){
549 DataLine += ";PARTSTAT=";
550 DataLine += AttendeeListParticipationStatus[AttendeeListSeek];
554 if (AttendeeListLanguage[AttendeeListSeek].size() > 0){
556 DataLine += ";LANGUAGE=";
557 DataLine += AttendeeListLanguage[AttendeeListSeek];
561 if (AttendeeListTokens[AttendeeListSeek].size() > 0){
564 DataLine += AttendeeListTokens[AttendeeListSeek];
569 DataLine += AttendeeList[AttendeeListSeek];
572 DataLineProcessed = OutputText(&DataLine);
574 *SaveData += DataLineProcessed;
577 DataLineProcessed.clear();
583 // Process the CATEGORIES value.
585 if (CategoriesList.size() > 0){
587 for (int CategoriesListSeek = 0; CategoriesListSeek < CategoriesList.size();
588 CategoriesListSeek++){
590 DataLine += "CATEGORIES";
592 if (CategoriesListLanguage[CategoriesListSeek].size() > 0){
594 DataLine += ";LANGUAGE=";
595 DataLine += CategoriesListLanguage[CategoriesListSeek];
599 if (CategoriesListTokens[CategoriesListSeek].size() > 0){
602 DataLine += CategoriesListTokens[CategoriesListSeek];
607 DataLine += CategoriesList[CategoriesListSeek];
610 DataLineProcessed = OutputText(&DataLine);
612 *SaveData += DataLineProcessed;
615 DataLineProcessed.clear();
621 // Process the COMMENT value.
623 if (CommentList.size() > 0){
625 for (int CommentListSeek = 0; CommentListSeek < CommentList.size();
628 DataLine += "COMMENT";
630 if (CommentListAltRep[CommentListSeek].size() > 0){
632 DataLine += ";ALTREP=\"";
633 DataLine += CommentListAltRep[CommentListSeek];
638 if (CommentListLanguage[CommentListSeek].size() > 0){
640 DataLine += ";LANGUAGE=";
641 DataLine += CommentListLanguage[CommentListSeek];
645 if (CommentListTokens[CommentListSeek].size() > 0){
648 DataLine += CommentListTokens[CommentListSeek];
653 DataLine += CommentList[CommentListSeek];
656 DataLineProcessed = OutputText(&DataLine);
658 *SaveData += DataLineProcessed;
661 DataLineProcessed.clear();
667 *SaveData += "END:VJOURNAL\n";