Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added RRULE property for saving data from a CalendarJournalObject.
[xestiacalendar/.git] / source / objects / calendarjournal / CalendarJournal-Save.cpp
1 #include "CalendarJournal.h"
3 using namespace std;
5 void CalendarJournalObject::SaveObjectData(string *SaveData){
7         string DataLine = "";
8         string DataLineProcessed = "";
9         
10         *SaveData += "BEGIN:VJOURNAL\n";
11         
12         // Process the UID.
13         
14         if (UniqueID.size() > 0){
15                 
16                 if (UniqueIDTokens.size() > 0){
17                 
18                         DataLine += "UID;";
19                         DataLine += UniqueIDTokens;
20                         
21                 } else {
23                         DataLine += "UID";
24                         
25                 }
27                 DataLine += ":";
28                 DataLine += UniqueID;
29                 DataLine += "\n";
30                 
31                 DataLineProcessed = OutputText(&DataLine);
32                 
33                 *SaveData += DataLineProcessed;
34                 
35                 DataLine.clear();
36                 DataLineProcessed.clear();
37                 
38         }
39         
40         // Process the DTSTAMP.
41         
42         if (DateTimeStampData.size() > 0){
43                 
44                 if (DateTimeStampTokens.size() > 0){
45                 
46                         DataLine += "DTSTAMP;";
47                         DataLine += DateTimeStampTokens;
48                         
49                 } else {
51                         DataLine += "DTSTAMP";
52                         
53                 }
55                 DataLine += ":";
56                 DataLine += DateTimeStampData;
57                 DataLine += "\n";
58                 
59                 DataLineProcessed = OutputText(&DataLine);
60                 
61                 *SaveData += DataLineProcessed;
62                 
63                 DataLine.clear();
64                 DataLineProcessed.clear();
65                 
66         }
67         
68         // Process the SUMMARY.
69         
70         if (SummaryData.size() > 0){
71                 
72                 DataLine += "SUMMARY";
73                 
74                 if (SummaryDataAltRep.size() > 0){
75                 
76                         DataLine += ";ALTREP=\"";
77                         DataLine += SummaryDataAltRep;
78                         DataLine += "\"";
79                         
80                 }
81                 
82                 if (SummaryDataLanguage.size() > 0){
83                 
84                         DataLine += ";LANGUAGE=";
85                         DataLine += SummaryDataLanguage;                        
86                         
87                 }
88                 
89                 if (SummaryDataTokens.size() > 0){
90                 
91                         DataLine += ";";
92                         DataLine += SummaryDataTokens;
93                         
94                 }
95                 
96                 DataLine += ":";
97                 DataLine += SummaryData;
98                 DataLine += "\n";
99                 
100                 DataLineProcessed = OutputText(&DataLine);
101                 
102                 *SaveData += DataLineProcessed;
104                 DataLine.clear();
105                 DataLineProcessed.clear();
106                 
107         }
108         
109         // Process the CLASS.
110         
111         if (ClassData.size() > 0){
112                 
113                 DataLine += "CLASS";
114                 
115                 if (ClassDataTokens.size() > 0){
116                 
117                         DataLine += ";";
118                         DataLine += ClassDataTokens;
119                         
120                 }
121                 
122                 DataLine += ":";
123                 DataLine += ClassData;
124                 DataLine += "\n";
125                 
126                 DataLineProcessed = OutputText(&DataLine);
127                 
128                 *SaveData += DataLineProcessed;
130                 DataLine.clear();
131                 DataLineProcessed.clear();
132                 
133         }
134         
135         // Process the DTSTART.
136         
137         if (DateTimeStartData.size() > 0){
138                 
139                 DataLine += "DTSTART";
140                 
141                 if (DateTimeStartDataValue.size() > 0){
142                 
143                         DataLine += ";VALUE=";
144                         DataLine += DateTimeStartDataValue;                     
145                         
146                 }
147                 
148                 if (DateTimeStartDataTimeZoneID.size() > 0){
149                 
150                         DataLine += ";TZID=";
151                         DataLine += DateTimeStartDataTimeZoneID;                        
152                         
153                 }
154                 
155                 if (DateTimeStartDataTokens.size() > 0){
156                 
157                         DataLine += ";";
158                         DataLine += DateTimeStartDataTokens;
159                         
160                 }
162                 DataLine += ":";
163                 DataLine += DateTimeStartData;
164                 DataLine += "\n";
165                 
166                 DataLineProcessed = OutputText(&DataLine);
167                 
168                 *SaveData += DataLineProcessed;
169                 
170                 DataLine.clear();
171                 DataLineProcessed.clear();
172                 
173         }
174         
175         // Process the LAST-MODIFIED value.
176         
177         if (LastModifiedData.size() > 0){
178                 
179                 if (LastModifiedTokens.size() > 0){
180                 
181                         DataLine += "LAST-MODIFIED;";
182                         DataLine += LastModifiedTokens;
183                         
184                 } else {
186                         DataLine += "LAST-MODIFIED";
187                         
188                 }
190                 DataLine += ":";
191                 DataLine += LastModifiedData;
192                 DataLine += "\n";
193                 
194                 DataLineProcessed = OutputText(&DataLine);
195                 
196                 *SaveData += DataLineProcessed;
197                 
198                 DataLine.clear();
199                 DataLineProcessed.clear();
200                 
201         }
202         
203         // Process the ORGANIZER value.
204         
205         if (OrganiserData.size() > 0){
206                 
207                 DataLine += "ORGANIZER";
208                 
209                 if (OrganiserDataCommonName.size() > 0){
210                 
211                         DataLine += ";CN=";
212                         DataLine += OrganiserDataCommonName;
213                         
214                 }
216                 if (OrganiserDataDirectoryEntry.size() > 0){
217                 
218                         DataLine += ";DIR=\"";
219                         DataLine += OrganiserDataDirectoryEntry;
220                         DataLine += "\"";
221                         
222                 }
223                 
224                 if (OrganiserDataSentByParam.size() > 0){
225                 
226                         DataLine += ";SENT-BY=\"";
227                         DataLine += OrganiserDataSentByParam;                   
228                         DataLine += "\"";
229                         
230                 }
231                 
232                 if (OrganiserDataLanguage.size() > 0){
233                 
234                         DataLine += ";LANGUAGE=";
235                         DataLine += OrganiserDataLanguage;                      
236                         
237                 }
238                 
239                 if (OrganiserDataTokens.size() > 0){
240                 
241                         DataLine += ";";
242                         DataLine += OrganiserDataTokens;
243                         
244                 }
245                 
246                 DataLine += ":";
247                 DataLine += OrganiserData;
248                 DataLine += "\n";
249                 
250                 DataLineProcessed = OutputText(&DataLine);
251                 
252                 *SaveData += DataLineProcessed;
254                 DataLine.clear();
255                 DataLineProcessed.clear();
256                 
257         }
258         
259         // Process the RECURRENCE-ID value.
260         
261         if (RecurranceIDData.size() > 0){
262                 
263                 DataLine += "RECURRENCE-ID";
265                 if (RecurranceIDDataTimeZoneParam.size() > 0){
266                 
267                         DataLine += ";TZID=";
268                         DataLine += RecurranceIDDataTimeZoneParam;                      
269                         
270                 }
271                 
272                 if (RecurranceIDDataRangeParam.size() > 0){
273                 
274                         DataLine += ";RANGE=";
275                         DataLine += RecurranceIDDataRangeParam;                 
276                         
277                 }
278                 
279                 if (RecurranceIDDataValue.size() > 0){
280                 
281                         DataLine += ";VALUE=";
282                         DataLine += RecurranceIDDataValue;                      
283                         
284                 }
285                 
286                 if (RecurranceIDDataTokens.size() > 0){
287                 
288                         DataLine += ";";
289                         DataLine += RecurranceIDDataTokens;
290                         
291                 }
292                 
293                 DataLine += ":";
294                 DataLine += RecurranceIDData;
295                 DataLine += "\n";
296                 
297                 DataLineProcessed = OutputText(&DataLine);
298                 
299                 *SaveData += DataLineProcessed;
301                 DataLine.clear();
302                 DataLineProcessed.clear();
303                 
304         }
305         
306         // Process the SEQUENCE value.
307         
308         if (SequenceData > -1 && SequenceData < 10){
309                 
310                 DataLine += "SEQUENCE";
311                 
312                 if (SequenceTokens.size() > 0){
313                 
314                         DataLine += ";";
315                         DataLine += SequenceTokens;
316                         
317                 }
318                 
319                 DataLine += ":";
320                 DataLine += to_string(SequenceData);
321                 DataLine += "\n";
322                 
323                 DataLineProcessed = OutputText(&DataLine);
324                 
325                 *SaveData += DataLineProcessed;
327                 DataLine.clear();
328                 DataLineProcessed.clear();
329                 
330         }
331         
332         // Process the STATUS value.
333         
334         if (StatusData.size() > 0){
335                 
336                 DataLine += "STATUS";
337                 
338                 if (StatusLanguage.size() > 0){
339                 
340                         DataLine += ";LANGUAGE=";
341                         DataLine += StatusLanguage;                     
342                         
343                 }
344                 
345                 if (StatusTokens.size() > 0){
346                 
347                         DataLine += ";";
348                         DataLine += StatusTokens;
349                         
350                 }
351                 
352                 DataLine += ":";
353                 DataLine += StatusData;
354                 DataLine += "\n";
355                 
356                 DataLineProcessed = OutputText(&DataLine);
357                 
358                 *SaveData += DataLineProcessed;
360                 DataLine.clear();
361                 DataLineProcessed.clear();
362                 
363         }
364         
365         // Process the URL value.
366         
367         if (URLData.size() > 0){
368                 
369                 DataLine += "URL";
371                 if (URLDataTokens.size() > 0){
372                 
373                         DataLine += ";";
374                         DataLine += URLDataTokens;
375                         
376                 }
377                 
378                 DataLine += ":";
379                 DataLine += URLData;
380                 DataLine += "\n";
381                 
382                 DataLineProcessed = OutputText(&DataLine);
383                 
384                 *SaveData += DataLineProcessed;
386                 DataLine.clear();
387                 DataLineProcessed.clear();
388                 
389         }
390         
391         // Process the RRULE value.
392         
393         if (RecurranceRuleData.size() > 0){
394                 
395                 DataLine += "RRULE";
397                 if (RecurranceRuleDataTokens.size() > 0){
398                 
399                         DataLine += ";";
400                         DataLine += RecurranceRuleDataTokens;
401                         
402                 }
403                 
404                 DataLine += ":";
405                 DataLine += RecurranceRuleData;
406                 DataLine += "\n";
407                 
408                 DataLineProcessed = OutputText(&DataLine);
409                 
410                 *SaveData += DataLineProcessed;
412                 DataLine.clear();
413                 DataLineProcessed.clear();
414                 
415         }
416         *SaveData += "END:VJOURNAL\n";
417         
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy