1 /**********************************************************
2 * This file has been automatically created by "typemaker2"
3 * from the file "account_spec.xml".
4 * Please do not edit this file, all changes will be lost.
5 * Better edit the mentioned source file instead.
6 **********************************************************/
7
8 #ifdef HAVE_CONFIG_H
9 # include <config.h>
10 #endif
11
12 #include "./account_spec_p.h"
13
14 #include <gwenhywfar/misc.h>
15 #include <gwenhywfar/debug.h>
16
17 /* code headers */
18
19 /* macro functions */
GWEN_LIST_FUNCTIONS(AB_ACCOUNT_SPEC,AB_AccountSpec)20 GWEN_LIST_FUNCTIONS(AB_ACCOUNT_SPEC, AB_AccountSpec)
21 GWEN_LIST2_FUNCTIONS(AB_ACCOUNT_SPEC, AB_AccountSpec)
22
23
24 AB_ACCOUNT_SPEC *AB_AccountSpec_new(void)
25 {
26 AB_ACCOUNT_SPEC *p_struct;
27
28 GWEN_NEW_OBJECT(AB_ACCOUNT_SPEC, p_struct)
29 p_struct->_refCount=1;
30 GWEN_LIST_INIT(AB_ACCOUNT_SPEC, p_struct)
31 /* members */
32 p_struct->type=AB_AccountType_Unknown;
33 p_struct->uniqueId=0;
34 p_struct->backendName=NULL;
35 p_struct->ownerName=NULL;
36 p_struct->accountName=NULL;
37 p_struct->currency=NULL;
38 p_struct->memo=NULL;
39 p_struct->iban=NULL;
40 p_struct->bic=NULL;
41 p_struct->country=NULL;
42 p_struct->bankCode=NULL;
43 p_struct->bankName=NULL;
44 p_struct->branchId=NULL;
45 p_struct->accountNumber=NULL;
46 p_struct->subAccountNumber=NULL;
47 p_struct->transactionLimitsList=AB_TransactionLimits_List_new();
48 /* virtual functions */
49
50 return p_struct;
51 }
52
AB_AccountSpec_free(AB_ACCOUNT_SPEC * p_struct)53 void AB_AccountSpec_free(AB_ACCOUNT_SPEC *p_struct)
54 {
55 if (p_struct) {
56 assert(p_struct->_refCount);
57 if (p_struct->_refCount==1) {
58 GWEN_LIST_FINI(AB_ACCOUNT_SPEC, p_struct)
59 /* members */
60 free(p_struct->backendName);
61 p_struct->backendName=NULL;
62 free(p_struct->ownerName);
63 p_struct->ownerName=NULL;
64 free(p_struct->accountName);
65 p_struct->accountName=NULL;
66 free(p_struct->currency);
67 p_struct->currency=NULL;
68 free(p_struct->memo);
69 p_struct->memo=NULL;
70 free(p_struct->iban);
71 p_struct->iban=NULL;
72 free(p_struct->bic);
73 p_struct->bic=NULL;
74 free(p_struct->country);
75 p_struct->country=NULL;
76 free(p_struct->bankCode);
77 p_struct->bankCode=NULL;
78 free(p_struct->bankName);
79 p_struct->bankName=NULL;
80 free(p_struct->branchId);
81 p_struct->branchId=NULL;
82 free(p_struct->accountNumber);
83 p_struct->accountNumber=NULL;
84 free(p_struct->subAccountNumber);
85 p_struct->subAccountNumber=NULL;
86 AB_TransactionLimits_List_free(p_struct->transactionLimitsList);
87 p_struct->transactionLimitsList=NULL;
88 p_struct->_refCount=0;
89 GWEN_FREE_OBJECT(p_struct);
90 }
91 else
92 p_struct->_refCount--;
93 }
94 }
95
AB_AccountSpec_Attach(AB_ACCOUNT_SPEC * p_struct)96 void AB_AccountSpec_Attach(AB_ACCOUNT_SPEC *p_struct)
97 {
98 assert(p_struct);
99 assert(p_struct->_refCount);
100 p_struct->_refCount++;
101 }
102
AB_AccountSpec_dup(const AB_ACCOUNT_SPEC * p_src)103 AB_ACCOUNT_SPEC *AB_AccountSpec_dup(const AB_ACCOUNT_SPEC *p_src)
104 {
105 AB_ACCOUNT_SPEC *p_struct;
106
107 assert(p_src);
108 p_struct=AB_AccountSpec_new();
109 /* member "type" */
110 p_struct->type=p_src->type;
111
112 /* member "uniqueId" */
113 p_struct->uniqueId=p_src->uniqueId;
114
115 /* member "backendName" */
116 if (p_struct->backendName) {
117 free(p_struct->backendName);
118 p_struct->backendName=NULL;
119 p_struct->backendName=NULL;
120 }
121 if (p_src->backendName) {
122 p_struct->backendName=strdup(p_src->backendName);
123 }
124
125 /* member "ownerName" */
126 if (p_struct->ownerName) {
127 free(p_struct->ownerName);
128 p_struct->ownerName=NULL;
129 p_struct->ownerName=NULL;
130 }
131 if (p_src->ownerName) {
132 p_struct->ownerName=strdup(p_src->ownerName);
133 }
134
135 /* member "accountName" */
136 if (p_struct->accountName) {
137 free(p_struct->accountName);
138 p_struct->accountName=NULL;
139 p_struct->accountName=NULL;
140 }
141 if (p_src->accountName) {
142 p_struct->accountName=strdup(p_src->accountName);
143 }
144
145 /* member "currency" */
146 if (p_struct->currency) {
147 free(p_struct->currency);
148 p_struct->currency=NULL;
149 p_struct->currency=NULL;
150 }
151 if (p_src->currency) {
152 p_struct->currency=strdup(p_src->currency);
153 }
154
155 /* member "memo" */
156 if (p_struct->memo) {
157 free(p_struct->memo);
158 p_struct->memo=NULL;
159 p_struct->memo=NULL;
160 }
161 if (p_src->memo) {
162 p_struct->memo=strdup(p_src->memo);
163 }
164
165 /* member "iban" */
166 if (p_struct->iban) {
167 free(p_struct->iban);
168 p_struct->iban=NULL;
169 p_struct->iban=NULL;
170 }
171 if (p_src->iban) {
172 p_struct->iban=strdup(p_src->iban);
173 }
174
175 /* member "bic" */
176 if (p_struct->bic) {
177 free(p_struct->bic);
178 p_struct->bic=NULL;
179 p_struct->bic=NULL;
180 }
181 if (p_src->bic) {
182 p_struct->bic=strdup(p_src->bic);
183 }
184
185 /* member "country" */
186 if (p_struct->country) {
187 free(p_struct->country);
188 p_struct->country=NULL;
189 p_struct->country=NULL;
190 }
191 if (p_src->country) {
192 p_struct->country=strdup(p_src->country);
193 }
194
195 /* member "bankCode" */
196 if (p_struct->bankCode) {
197 free(p_struct->bankCode);
198 p_struct->bankCode=NULL;
199 p_struct->bankCode=NULL;
200 }
201 if (p_src->bankCode) {
202 p_struct->bankCode=strdup(p_src->bankCode);
203 }
204
205 /* member "bankName" */
206 if (p_struct->bankName) {
207 free(p_struct->bankName);
208 p_struct->bankName=NULL;
209 p_struct->bankName=NULL;
210 }
211 if (p_src->bankName) {
212 p_struct->bankName=strdup(p_src->bankName);
213 }
214
215 /* member "branchId" */
216 if (p_struct->branchId) {
217 free(p_struct->branchId);
218 p_struct->branchId=NULL;
219 p_struct->branchId=NULL;
220 }
221 if (p_src->branchId) {
222 p_struct->branchId=strdup(p_src->branchId);
223 }
224
225 /* member "accountNumber" */
226 if (p_struct->accountNumber) {
227 free(p_struct->accountNumber);
228 p_struct->accountNumber=NULL;
229 p_struct->accountNumber=NULL;
230 }
231 if (p_src->accountNumber) {
232 p_struct->accountNumber=strdup(p_src->accountNumber);
233 }
234
235 /* member "subAccountNumber" */
236 if (p_struct->subAccountNumber) {
237 free(p_struct->subAccountNumber);
238 p_struct->subAccountNumber=NULL;
239 p_struct->subAccountNumber=NULL;
240 }
241 if (p_src->subAccountNumber) {
242 p_struct->subAccountNumber=strdup(p_src->subAccountNumber);
243 }
244
245 /* member "transactionLimitsList" */
246 if (p_struct->transactionLimitsList) {
247 AB_TransactionLimits_List_free(p_struct->transactionLimitsList);
248 p_struct->transactionLimitsList=NULL;
249 p_struct->transactionLimitsList=NULL;
250 }
251 if (p_src->transactionLimitsList) {
252 p_struct->transactionLimitsList=AB_TransactionLimits_List_dup(p_src->transactionLimitsList);
253 }
254
255 return p_struct;
256 }
257
AB_AccountSpec_copy(AB_ACCOUNT_SPEC * p_struct,const AB_ACCOUNT_SPEC * p_src)258 AB_ACCOUNT_SPEC *AB_AccountSpec_copy(AB_ACCOUNT_SPEC *p_struct, const AB_ACCOUNT_SPEC *p_src)
259 {
260 assert(p_struct);
261 assert(p_src);
262 /* member "type" */
263 p_struct->type=p_src->type;
264
265 /* member "uniqueId" */
266 p_struct->uniqueId=p_src->uniqueId;
267
268 /* member "backendName" */
269 if (p_struct->backendName) {
270 free(p_struct->backendName);
271 p_struct->backendName=NULL;
272 p_struct->backendName=NULL;
273 }
274 if (p_src->backendName) {
275 p_struct->backendName=strdup(p_src->backendName);
276 }
277
278 /* member "ownerName" */
279 if (p_struct->ownerName) {
280 free(p_struct->ownerName);
281 p_struct->ownerName=NULL;
282 p_struct->ownerName=NULL;
283 }
284 if (p_src->ownerName) {
285 p_struct->ownerName=strdup(p_src->ownerName);
286 }
287
288 /* member "accountName" */
289 if (p_struct->accountName) {
290 free(p_struct->accountName);
291 p_struct->accountName=NULL;
292 p_struct->accountName=NULL;
293 }
294 if (p_src->accountName) {
295 p_struct->accountName=strdup(p_src->accountName);
296 }
297
298 /* member "currency" */
299 if (p_struct->currency) {
300 free(p_struct->currency);
301 p_struct->currency=NULL;
302 p_struct->currency=NULL;
303 }
304 if (p_src->currency) {
305 p_struct->currency=strdup(p_src->currency);
306 }
307
308 /* member "memo" */
309 if (p_struct->memo) {
310 free(p_struct->memo);
311 p_struct->memo=NULL;
312 p_struct->memo=NULL;
313 }
314 if (p_src->memo) {
315 p_struct->memo=strdup(p_src->memo);
316 }
317
318 /* member "iban" */
319 if (p_struct->iban) {
320 free(p_struct->iban);
321 p_struct->iban=NULL;
322 p_struct->iban=NULL;
323 }
324 if (p_src->iban) {
325 p_struct->iban=strdup(p_src->iban);
326 }
327
328 /* member "bic" */
329 if (p_struct->bic) {
330 free(p_struct->bic);
331 p_struct->bic=NULL;
332 p_struct->bic=NULL;
333 }
334 if (p_src->bic) {
335 p_struct->bic=strdup(p_src->bic);
336 }
337
338 /* member "country" */
339 if (p_struct->country) {
340 free(p_struct->country);
341 p_struct->country=NULL;
342 p_struct->country=NULL;
343 }
344 if (p_src->country) {
345 p_struct->country=strdup(p_src->country);
346 }
347
348 /* member "bankCode" */
349 if (p_struct->bankCode) {
350 free(p_struct->bankCode);
351 p_struct->bankCode=NULL;
352 p_struct->bankCode=NULL;
353 }
354 if (p_src->bankCode) {
355 p_struct->bankCode=strdup(p_src->bankCode);
356 }
357
358 /* member "bankName" */
359 if (p_struct->bankName) {
360 free(p_struct->bankName);
361 p_struct->bankName=NULL;
362 p_struct->bankName=NULL;
363 }
364 if (p_src->bankName) {
365 p_struct->bankName=strdup(p_src->bankName);
366 }
367
368 /* member "branchId" */
369 if (p_struct->branchId) {
370 free(p_struct->branchId);
371 p_struct->branchId=NULL;
372 p_struct->branchId=NULL;
373 }
374 if (p_src->branchId) {
375 p_struct->branchId=strdup(p_src->branchId);
376 }
377
378 /* member "accountNumber" */
379 if (p_struct->accountNumber) {
380 free(p_struct->accountNumber);
381 p_struct->accountNumber=NULL;
382 p_struct->accountNumber=NULL;
383 }
384 if (p_src->accountNumber) {
385 p_struct->accountNumber=strdup(p_src->accountNumber);
386 }
387
388 /* member "subAccountNumber" */
389 if (p_struct->subAccountNumber) {
390 free(p_struct->subAccountNumber);
391 p_struct->subAccountNumber=NULL;
392 p_struct->subAccountNumber=NULL;
393 }
394 if (p_src->subAccountNumber) {
395 p_struct->subAccountNumber=strdup(p_src->subAccountNumber);
396 }
397
398 /* member "transactionLimitsList" */
399 if (p_struct->transactionLimitsList) {
400 AB_TransactionLimits_List_free(p_struct->transactionLimitsList);
401 p_struct->transactionLimitsList=NULL;
402 p_struct->transactionLimitsList=NULL;
403 }
404 if (p_src->transactionLimitsList) {
405 p_struct->transactionLimitsList=AB_TransactionLimits_List_dup(p_src->transactionLimitsList);
406 }
407
408 return p_struct;
409 }
410
AB_AccountSpec_GetType(const AB_ACCOUNT_SPEC * p_struct)411 int AB_AccountSpec_GetType(const AB_ACCOUNT_SPEC *p_struct)
412 {
413 assert(p_struct);
414 return p_struct->type;
415 }
416
AB_AccountSpec_GetUniqueId(const AB_ACCOUNT_SPEC * p_struct)417 uint32_t AB_AccountSpec_GetUniqueId(const AB_ACCOUNT_SPEC *p_struct)
418 {
419 assert(p_struct);
420 return p_struct->uniqueId;
421 }
422
AB_AccountSpec_GetBackendName(const AB_ACCOUNT_SPEC * p_struct)423 const char *AB_AccountSpec_GetBackendName(const AB_ACCOUNT_SPEC *p_struct)
424 {
425 assert(p_struct);
426 return p_struct->backendName;
427 }
428
AB_AccountSpec_GetOwnerName(const AB_ACCOUNT_SPEC * p_struct)429 const char *AB_AccountSpec_GetOwnerName(const AB_ACCOUNT_SPEC *p_struct)
430 {
431 assert(p_struct);
432 return p_struct->ownerName;
433 }
434
AB_AccountSpec_GetAccountName(const AB_ACCOUNT_SPEC * p_struct)435 const char *AB_AccountSpec_GetAccountName(const AB_ACCOUNT_SPEC *p_struct)
436 {
437 assert(p_struct);
438 return p_struct->accountName;
439 }
440
AB_AccountSpec_GetCurrency(const AB_ACCOUNT_SPEC * p_struct)441 const char *AB_AccountSpec_GetCurrency(const AB_ACCOUNT_SPEC *p_struct)
442 {
443 assert(p_struct);
444 return p_struct->currency;
445 }
446
AB_AccountSpec_GetMemo(const AB_ACCOUNT_SPEC * p_struct)447 const char *AB_AccountSpec_GetMemo(const AB_ACCOUNT_SPEC *p_struct)
448 {
449 assert(p_struct);
450 return p_struct->memo;
451 }
452
AB_AccountSpec_GetIban(const AB_ACCOUNT_SPEC * p_struct)453 const char *AB_AccountSpec_GetIban(const AB_ACCOUNT_SPEC *p_struct)
454 {
455 assert(p_struct);
456 return p_struct->iban;
457 }
458
AB_AccountSpec_GetBic(const AB_ACCOUNT_SPEC * p_struct)459 const char *AB_AccountSpec_GetBic(const AB_ACCOUNT_SPEC *p_struct)
460 {
461 assert(p_struct);
462 return p_struct->bic;
463 }
464
AB_AccountSpec_GetCountry(const AB_ACCOUNT_SPEC * p_struct)465 const char *AB_AccountSpec_GetCountry(const AB_ACCOUNT_SPEC *p_struct)
466 {
467 assert(p_struct);
468 return p_struct->country;
469 }
470
AB_AccountSpec_GetBankCode(const AB_ACCOUNT_SPEC * p_struct)471 const char *AB_AccountSpec_GetBankCode(const AB_ACCOUNT_SPEC *p_struct)
472 {
473 assert(p_struct);
474 return p_struct->bankCode;
475 }
476
AB_AccountSpec_GetBankName(const AB_ACCOUNT_SPEC * p_struct)477 const char *AB_AccountSpec_GetBankName(const AB_ACCOUNT_SPEC *p_struct)
478 {
479 assert(p_struct);
480 return p_struct->bankName;
481 }
482
AB_AccountSpec_GetBranchId(const AB_ACCOUNT_SPEC * p_struct)483 const char *AB_AccountSpec_GetBranchId(const AB_ACCOUNT_SPEC *p_struct)
484 {
485 assert(p_struct);
486 return p_struct->branchId;
487 }
488
AB_AccountSpec_GetAccountNumber(const AB_ACCOUNT_SPEC * p_struct)489 const char *AB_AccountSpec_GetAccountNumber(const AB_ACCOUNT_SPEC *p_struct)
490 {
491 assert(p_struct);
492 return p_struct->accountNumber;
493 }
494
AB_AccountSpec_GetSubAccountNumber(const AB_ACCOUNT_SPEC * p_struct)495 const char *AB_AccountSpec_GetSubAccountNumber(const AB_ACCOUNT_SPEC *p_struct)
496 {
497 assert(p_struct);
498 return p_struct->subAccountNumber;
499 }
500
AB_AccountSpec_GetTransactionLimitsList(const AB_ACCOUNT_SPEC * p_struct)501 AB_TRANSACTION_LIMITS_LIST *AB_AccountSpec_GetTransactionLimitsList(const AB_ACCOUNT_SPEC *p_struct)
502 {
503 assert(p_struct);
504 return p_struct->transactionLimitsList;
505 }
506
AB_AccountSpec_SetType(AB_ACCOUNT_SPEC * p_struct,int p_src)507 void AB_AccountSpec_SetType(AB_ACCOUNT_SPEC *p_struct, int p_src)
508 {
509 assert(p_struct);
510 p_struct->type=p_src;
511 }
512
AB_AccountSpec_SetUniqueId(AB_ACCOUNT_SPEC * p_struct,uint32_t p_src)513 void AB_AccountSpec_SetUniqueId(AB_ACCOUNT_SPEC *p_struct, uint32_t p_src)
514 {
515 assert(p_struct);
516 p_struct->uniqueId=p_src;
517 }
518
AB_AccountSpec_SetBackendName(AB_ACCOUNT_SPEC * p_struct,const char * p_src)519 void AB_AccountSpec_SetBackendName(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
520 {
521 assert(p_struct);
522 if (p_struct->backendName) {
523 free(p_struct->backendName);
524 p_struct->backendName=NULL;
525 }
526 if (p_src) {
527 p_struct->backendName=strdup(p_src);
528 }
529 else {
530 p_struct->backendName=NULL;
531 }
532 }
533
AB_AccountSpec_SetOwnerName(AB_ACCOUNT_SPEC * p_struct,const char * p_src)534 void AB_AccountSpec_SetOwnerName(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
535 {
536 assert(p_struct);
537 if (p_struct->ownerName) {
538 free(p_struct->ownerName);
539 p_struct->ownerName=NULL;
540 }
541 if (p_src) {
542 p_struct->ownerName=strdup(p_src);
543 }
544 else {
545 p_struct->ownerName=NULL;
546 }
547 }
548
AB_AccountSpec_SetAccountName(AB_ACCOUNT_SPEC * p_struct,const char * p_src)549 void AB_AccountSpec_SetAccountName(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
550 {
551 assert(p_struct);
552 if (p_struct->accountName) {
553 free(p_struct->accountName);
554 p_struct->accountName=NULL;
555 }
556 if (p_src) {
557 p_struct->accountName=strdup(p_src);
558 }
559 else {
560 p_struct->accountName=NULL;
561 }
562 }
563
AB_AccountSpec_SetCurrency(AB_ACCOUNT_SPEC * p_struct,const char * p_src)564 void AB_AccountSpec_SetCurrency(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
565 {
566 assert(p_struct);
567 if (p_struct->currency) {
568 free(p_struct->currency);
569 p_struct->currency=NULL;
570 }
571 if (p_src) {
572 p_struct->currency=strdup(p_src);
573 }
574 else {
575 p_struct->currency=NULL;
576 }
577 }
578
AB_AccountSpec_SetMemo(AB_ACCOUNT_SPEC * p_struct,const char * p_src)579 void AB_AccountSpec_SetMemo(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
580 {
581 assert(p_struct);
582 if (p_struct->memo) {
583 free(p_struct->memo);
584 p_struct->memo=NULL;
585 }
586 if (p_src) {
587 p_struct->memo=strdup(p_src);
588 }
589 else {
590 p_struct->memo=NULL;
591 }
592 }
593
AB_AccountSpec_SetIban(AB_ACCOUNT_SPEC * p_struct,const char * p_src)594 void AB_AccountSpec_SetIban(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
595 {
596 assert(p_struct);
597 if (p_struct->iban) {
598 free(p_struct->iban);
599 p_struct->iban=NULL;
600 }
601 if (p_src) {
602 p_struct->iban=strdup(p_src);
603 }
604 else {
605 p_struct->iban=NULL;
606 }
607 }
608
AB_AccountSpec_SetBic(AB_ACCOUNT_SPEC * p_struct,const char * p_src)609 void AB_AccountSpec_SetBic(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
610 {
611 assert(p_struct);
612 if (p_struct->bic) {
613 free(p_struct->bic);
614 p_struct->bic=NULL;
615 }
616 if (p_src) {
617 p_struct->bic=strdup(p_src);
618 }
619 else {
620 p_struct->bic=NULL;
621 }
622 }
623
AB_AccountSpec_SetCountry(AB_ACCOUNT_SPEC * p_struct,const char * p_src)624 void AB_AccountSpec_SetCountry(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
625 {
626 assert(p_struct);
627 if (p_struct->country) {
628 free(p_struct->country);
629 p_struct->country=NULL;
630 }
631 if (p_src) {
632 p_struct->country=strdup(p_src);
633 }
634 else {
635 p_struct->country=NULL;
636 }
637 }
638
AB_AccountSpec_SetBankCode(AB_ACCOUNT_SPEC * p_struct,const char * p_src)639 void AB_AccountSpec_SetBankCode(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
640 {
641 assert(p_struct);
642 if (p_struct->bankCode) {
643 free(p_struct->bankCode);
644 p_struct->bankCode=NULL;
645 }
646 if (p_src) {
647 p_struct->bankCode=strdup(p_src);
648 }
649 else {
650 p_struct->bankCode=NULL;
651 }
652 }
653
AB_AccountSpec_SetBankName(AB_ACCOUNT_SPEC * p_struct,const char * p_src)654 void AB_AccountSpec_SetBankName(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
655 {
656 assert(p_struct);
657 if (p_struct->bankName) {
658 free(p_struct->bankName);
659 p_struct->bankName=NULL;
660 }
661 if (p_src) {
662 p_struct->bankName=strdup(p_src);
663 }
664 else {
665 p_struct->bankName=NULL;
666 }
667 }
668
AB_AccountSpec_SetBranchId(AB_ACCOUNT_SPEC * p_struct,const char * p_src)669 void AB_AccountSpec_SetBranchId(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
670 {
671 assert(p_struct);
672 if (p_struct->branchId) {
673 free(p_struct->branchId);
674 p_struct->branchId=NULL;
675 }
676 if (p_src) {
677 p_struct->branchId=strdup(p_src);
678 }
679 else {
680 p_struct->branchId=NULL;
681 }
682 }
683
AB_AccountSpec_SetAccountNumber(AB_ACCOUNT_SPEC * p_struct,const char * p_src)684 void AB_AccountSpec_SetAccountNumber(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
685 {
686 assert(p_struct);
687 if (p_struct->accountNumber) {
688 free(p_struct->accountNumber);
689 p_struct->accountNumber=NULL;
690 }
691 if (p_src) {
692 p_struct->accountNumber=strdup(p_src);
693 }
694 else {
695 p_struct->accountNumber=NULL;
696 }
697 }
698
AB_AccountSpec_SetSubAccountNumber(AB_ACCOUNT_SPEC * p_struct,const char * p_src)699 void AB_AccountSpec_SetSubAccountNumber(AB_ACCOUNT_SPEC *p_struct, const char *p_src)
700 {
701 assert(p_struct);
702 if (p_struct->subAccountNumber) {
703 free(p_struct->subAccountNumber);
704 p_struct->subAccountNumber=NULL;
705 }
706 if (p_src) {
707 p_struct->subAccountNumber=strdup(p_src);
708 }
709 else {
710 p_struct->subAccountNumber=NULL;
711 }
712 }
713
AB_AccountSpec_SetTransactionLimitsList(AB_ACCOUNT_SPEC * p_struct,AB_TRANSACTION_LIMITS_LIST * p_src)714 void AB_AccountSpec_SetTransactionLimitsList(AB_ACCOUNT_SPEC *p_struct, AB_TRANSACTION_LIMITS_LIST *p_src)
715 {
716 assert(p_struct);
717 if (p_struct->transactionLimitsList) {
718 AB_TransactionLimits_List_free(p_struct->transactionLimitsList);
719 p_struct->transactionLimitsList=NULL;
720 }
721 p_struct->transactionLimitsList=p_src;
722 }
723
724 /* list1 functions */
AB_AccountSpec_List_dup(const AB_ACCOUNT_SPEC_LIST * p_src)725 AB_ACCOUNT_SPEC_LIST *AB_AccountSpec_List_dup(const AB_ACCOUNT_SPEC_LIST *p_src)
726 {
727 AB_ACCOUNT_SPEC_LIST *p_dest;
728 AB_ACCOUNT_SPEC *p_elem;
729
730 assert(p_src);
731 p_dest=AB_AccountSpec_List_new();
732 p_elem=AB_AccountSpec_List_First(p_src);
733 while (p_elem) {
734 AB_ACCOUNT_SPEC *p_cpy;
735
736 p_cpy=AB_AccountSpec_dup(p_elem);
737 AB_AccountSpec_List_Add(p_cpy, p_dest);
738 p_elem=AB_AccountSpec_List_Next(p_elem);
739 }
740
741 return p_dest;
742 }
743
AB_AccountSpec_ReadDb(AB_ACCOUNT_SPEC * p_struct,GWEN_DB_NODE * p_db)744 void AB_AccountSpec_ReadDb(AB_ACCOUNT_SPEC *p_struct, GWEN_DB_NODE *p_db)
745 {
746 assert(p_struct);
747 /* member "type" */
748 p_struct->type=GWEN_DB_GetIntValue(p_db, "type", 0, AB_AccountType_Unknown);
749
750 /* member "uniqueId" */
751 p_struct->uniqueId=GWEN_DB_GetIntValue(p_db, "uniqueId", 0, 0);
752
753 /* member "backendName" */
754 if (p_struct->backendName) {
755 free(p_struct->backendName);
756 p_struct->backendName=NULL;
757 }
758 {
759 const char *s;
760 s=GWEN_DB_GetCharValue(p_db, "backendName", 0, NULL);
761 if (s)
762 p_struct->backendName=strdup(s);
763 }
764 if (p_struct->backendName==NULL) {
765 p_struct->backendName=NULL;
766 }
767
768 /* member "ownerName" */
769 if (p_struct->ownerName) {
770 free(p_struct->ownerName);
771 p_struct->ownerName=NULL;
772 }
773 {
774 const char *s;
775 s=GWEN_DB_GetCharValue(p_db, "ownerName", 0, NULL);
776 if (s)
777 p_struct->ownerName=strdup(s);
778 }
779 if (p_struct->ownerName==NULL) {
780 p_struct->ownerName=NULL;
781 }
782
783 /* member "accountName" */
784 if (p_struct->accountName) {
785 free(p_struct->accountName);
786 p_struct->accountName=NULL;
787 }
788 {
789 const char *s;
790 s=GWEN_DB_GetCharValue(p_db, "accountName", 0, NULL);
791 if (s)
792 p_struct->accountName=strdup(s);
793 }
794 if (p_struct->accountName==NULL) {
795 p_struct->accountName=NULL;
796 }
797
798 /* member "currency" */
799 if (p_struct->currency) {
800 free(p_struct->currency);
801 p_struct->currency=NULL;
802 }
803 {
804 const char *s;
805 s=GWEN_DB_GetCharValue(p_db, "currency", 0, NULL);
806 if (s)
807 p_struct->currency=strdup(s);
808 }
809 if (p_struct->currency==NULL) {
810 p_struct->currency=NULL;
811 }
812
813 /* member "memo" */
814 if (p_struct->memo) {
815 free(p_struct->memo);
816 p_struct->memo=NULL;
817 }
818 {
819 const char *s;
820 s=GWEN_DB_GetCharValue(p_db, "memo", 0, NULL);
821 if (s)
822 p_struct->memo=strdup(s);
823 }
824 if (p_struct->memo==NULL) {
825 p_struct->memo=NULL;
826 }
827
828 /* member "iban" */
829 if (p_struct->iban) {
830 free(p_struct->iban);
831 p_struct->iban=NULL;
832 }
833 {
834 const char *s;
835 s=GWEN_DB_GetCharValue(p_db, "iban", 0, NULL);
836 if (s)
837 p_struct->iban=strdup(s);
838 }
839 if (p_struct->iban==NULL) {
840 p_struct->iban=NULL;
841 }
842
843 /* member "bic" */
844 if (p_struct->bic) {
845 free(p_struct->bic);
846 p_struct->bic=NULL;
847 }
848 {
849 const char *s;
850 s=GWEN_DB_GetCharValue(p_db, "bic", 0, NULL);
851 if (s)
852 p_struct->bic=strdup(s);
853 }
854 if (p_struct->bic==NULL) {
855 p_struct->bic=NULL;
856 }
857
858 /* member "country" */
859 if (p_struct->country) {
860 free(p_struct->country);
861 p_struct->country=NULL;
862 }
863 {
864 const char *s;
865 s=GWEN_DB_GetCharValue(p_db, "country", 0, NULL);
866 if (s)
867 p_struct->country=strdup(s);
868 }
869 if (p_struct->country==NULL) {
870 p_struct->country=NULL;
871 }
872
873 /* member "bankCode" */
874 if (p_struct->bankCode) {
875 free(p_struct->bankCode);
876 p_struct->bankCode=NULL;
877 }
878 {
879 const char *s;
880 s=GWEN_DB_GetCharValue(p_db, "bankCode", 0, NULL);
881 if (s)
882 p_struct->bankCode=strdup(s);
883 }
884 if (p_struct->bankCode==NULL) {
885 p_struct->bankCode=NULL;
886 }
887
888 /* member "bankName" */
889 if (p_struct->bankName) {
890 free(p_struct->bankName);
891 p_struct->bankName=NULL;
892 }
893 {
894 const char *s;
895 s=GWEN_DB_GetCharValue(p_db, "bankName", 0, NULL);
896 if (s)
897 p_struct->bankName=strdup(s);
898 }
899 if (p_struct->bankName==NULL) {
900 p_struct->bankName=NULL;
901 }
902
903 /* member "branchId" */
904 if (p_struct->branchId) {
905 free(p_struct->branchId);
906 p_struct->branchId=NULL;
907 }
908 {
909 const char *s;
910 s=GWEN_DB_GetCharValue(p_db, "branchId", 0, NULL);
911 if (s)
912 p_struct->branchId=strdup(s);
913 }
914 if (p_struct->branchId==NULL) {
915 p_struct->branchId=NULL;
916 }
917
918 /* member "accountNumber" */
919 if (p_struct->accountNumber) {
920 free(p_struct->accountNumber);
921 p_struct->accountNumber=NULL;
922 }
923 {
924 const char *s;
925 s=GWEN_DB_GetCharValue(p_db, "accountNumber", 0, NULL);
926 if (s)
927 p_struct->accountNumber=strdup(s);
928 }
929 if (p_struct->accountNumber==NULL) {
930 p_struct->accountNumber=NULL;
931 }
932
933 /* member "subAccountNumber" */
934 if (p_struct->subAccountNumber) {
935 free(p_struct->subAccountNumber);
936 p_struct->subAccountNumber=NULL;
937 }
938 {
939 const char *s;
940 s=GWEN_DB_GetCharValue(p_db, "subAccountNumber", 0, NULL);
941 if (s)
942 p_struct->subAccountNumber=strdup(s);
943 }
944 if (p_struct->subAccountNumber==NULL) {
945 p_struct->subAccountNumber=NULL;
946 }
947
948 /* member "transactionLimitsList" */
949 if (p_struct->transactionLimitsList) {
950 AB_TransactionLimits_List_free(p_struct->transactionLimitsList);
951 p_struct->transactionLimitsList=NULL;
952 }
953 {
954 GWEN_DB_NODE *dbSource;
955 dbSource=GWEN_DB_GetGroup(p_db, GWEN_PATH_FLAGS_NAMEMUSTEXIST, "transactionLimitsList");
956 if (dbSource) {
957 AB_TRANSACTION_LIMITS_LIST *t;
958 GWEN_DB_NODE *dbT;
959 t=AB_TransactionLimits_List_new();
960 dbT=GWEN_DB_FindFirstGroup(dbSource, "element");
961 while (dbT) {
962 AB_TRANSACTION_LIMITS *elem;
963 elem=AB_TransactionLimits_fromDb(dbT);
964 if (elem)
965 AB_TransactionLimits_List_Add(elem, t);
966 dbT=GWEN_DB_FindNextGroup(dbT, "element");
967 }
968 p_struct->transactionLimitsList=t;
969 }
970 else
971 p_struct->transactionLimitsList=AB_TransactionLimits_List_new();
972 }
973 if (p_struct->transactionLimitsList==NULL) {
974 p_struct->transactionLimitsList=AB_TransactionLimits_List_new();
975 }
976
977 }
978
AB_AccountSpec_WriteDb(const AB_ACCOUNT_SPEC * p_struct,GWEN_DB_NODE * p_db)979 int AB_AccountSpec_WriteDb(const AB_ACCOUNT_SPEC *p_struct, GWEN_DB_NODE *p_db)
980 {
981 int p_rv;
982
983 assert(p_struct);
984 /* member "type" */
985 p_rv=GWEN_DB_SetIntValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "type", p_struct->type);
986 if (p_rv<0) {
987 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
988 return p_rv;
989 }
990
991 /* member "uniqueId" */
992 p_rv=GWEN_DB_SetIntValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "uniqueId", p_struct->uniqueId);
993 if (p_rv<0) {
994 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
995 return p_rv;
996 }
997
998 /* member "backendName" */
999 if (p_struct->backendName)
1000 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "backendName", p_struct->backendName);
1001 else {
1002 GWEN_DB_DeleteVar(p_db, "backendName");
1003 p_rv=0;
1004 }
1005 if (p_rv<0) {
1006 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1007 return p_rv;
1008 }
1009
1010 /* member "ownerName" */
1011 if (p_struct->ownerName)
1012 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "ownerName", p_struct->ownerName);
1013 else {
1014 GWEN_DB_DeleteVar(p_db, "ownerName");
1015 p_rv=0;
1016 }
1017 if (p_rv<0) {
1018 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1019 return p_rv;
1020 }
1021
1022 /* member "accountName" */
1023 if (p_struct->accountName)
1024 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "accountName", p_struct->accountName);
1025 else {
1026 GWEN_DB_DeleteVar(p_db, "accountName");
1027 p_rv=0;
1028 }
1029 if (p_rv<0) {
1030 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1031 return p_rv;
1032 }
1033
1034 /* member "currency" */
1035 if (p_struct->currency)
1036 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "currency", p_struct->currency);
1037 else {
1038 GWEN_DB_DeleteVar(p_db, "currency");
1039 p_rv=0;
1040 }
1041 if (p_rv<0) {
1042 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1043 return p_rv;
1044 }
1045
1046 /* member "memo" */
1047 if (p_struct->memo)
1048 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "memo", p_struct->memo);
1049 else {
1050 GWEN_DB_DeleteVar(p_db, "memo");
1051 p_rv=0;
1052 }
1053 if (p_rv<0) {
1054 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1055 return p_rv;
1056 }
1057
1058 /* member "iban" */
1059 if (p_struct->iban)
1060 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "iban", p_struct->iban);
1061 else {
1062 GWEN_DB_DeleteVar(p_db, "iban");
1063 p_rv=0;
1064 }
1065 if (p_rv<0) {
1066 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1067 return p_rv;
1068 }
1069
1070 /* member "bic" */
1071 if (p_struct->bic)
1072 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "bic", p_struct->bic);
1073 else {
1074 GWEN_DB_DeleteVar(p_db, "bic");
1075 p_rv=0;
1076 }
1077 if (p_rv<0) {
1078 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1079 return p_rv;
1080 }
1081
1082 /* member "country" */
1083 if (p_struct->country)
1084 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "country", p_struct->country);
1085 else {
1086 GWEN_DB_DeleteVar(p_db, "country");
1087 p_rv=0;
1088 }
1089 if (p_rv<0) {
1090 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1091 return p_rv;
1092 }
1093
1094 /* member "bankCode" */
1095 if (p_struct->bankCode)
1096 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "bankCode", p_struct->bankCode);
1097 else {
1098 GWEN_DB_DeleteVar(p_db, "bankCode");
1099 p_rv=0;
1100 }
1101 if (p_rv<0) {
1102 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1103 return p_rv;
1104 }
1105
1106 /* member "bankName" */
1107 if (p_struct->bankName)
1108 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "bankName", p_struct->bankName);
1109 else {
1110 GWEN_DB_DeleteVar(p_db, "bankName");
1111 p_rv=0;
1112 }
1113 if (p_rv<0) {
1114 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1115 return p_rv;
1116 }
1117
1118 /* member "branchId" */
1119 if (p_struct->branchId)
1120 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "branchId", p_struct->branchId);
1121 else {
1122 GWEN_DB_DeleteVar(p_db, "branchId");
1123 p_rv=0;
1124 }
1125 if (p_rv<0) {
1126 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1127 return p_rv;
1128 }
1129
1130 /* member "accountNumber" */
1131 if (p_struct->accountNumber)
1132 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "accountNumber", p_struct->accountNumber);
1133 else {
1134 GWEN_DB_DeleteVar(p_db, "accountNumber");
1135 p_rv=0;
1136 }
1137 if (p_rv<0) {
1138 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1139 return p_rv;
1140 }
1141
1142 /* member "subAccountNumber" */
1143 if (p_struct->subAccountNumber)
1144 p_rv=GWEN_DB_SetCharValue(p_db, GWEN_DB_FLAGS_OVERWRITE_VARS, "subAccountNumber", p_struct->subAccountNumber);
1145 else {
1146 GWEN_DB_DeleteVar(p_db, "subAccountNumber");
1147 p_rv=0;
1148 }
1149 if (p_rv<0) {
1150 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1151 return p_rv;
1152 }
1153
1154 /* member "transactionLimitsList" */
1155 {
1156 if (p_struct->transactionLimitsList) {
1157 GWEN_DB_NODE *dbDest;
1158 AB_TRANSACTION_LIMITS *elem;
1159 dbDest=GWEN_DB_GetGroup(p_db, GWEN_DB_FLAGS_OVERWRITE_GROUPS, "transactionLimitsList");
1160 assert(dbDest);
1161 p_rv=0;
1162 elem=AB_TransactionLimits_List_First(p_struct->transactionLimitsList);
1163 while (elem) {
1164 GWEN_DB_NODE *dbElem;
1165 dbElem=GWEN_DB_GetGroup(dbDest, GWEN_PATH_FLAGS_CREATE_GROUP, "element");
1166 assert(dbElem);
1167 p_rv=AB_TransactionLimits_toDb(elem, dbElem);
1168 if (p_rv<0) {
1169 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)", p_rv);
1170 break;
1171 }
1172 elem=AB_TransactionLimits_List_Next(elem);
1173 }
1174 }
1175 else
1176 p_rv=0;
1177 }
1178 if (p_rv<0) {
1179 DBG_INFO(GWEN_LOGDOMAIN, "here (%d)\n", p_rv);
1180 return p_rv;
1181 }
1182
1183 return 0;
1184 }
1185
AB_AccountSpec_fromDb(GWEN_DB_NODE * p_db)1186 AB_ACCOUNT_SPEC *AB_AccountSpec_fromDb(GWEN_DB_NODE *p_db)
1187 {
1188 AB_ACCOUNT_SPEC *p_struct;
1189 p_struct=AB_AccountSpec_new();
1190 AB_AccountSpec_ReadDb(p_struct, p_db);
1191 return p_struct;
1192 }
1193
AB_AccountSpec_toDb(const AB_ACCOUNT_SPEC * p_struct,GWEN_DB_NODE * p_db)1194 int AB_AccountSpec_toDb(const AB_ACCOUNT_SPEC *p_struct, GWEN_DB_NODE *p_db)
1195 {
1196 return AB_AccountSpec_WriteDb(p_struct, p_db);
1197 }
1198
AB_AccountSpec_ReadXml(AB_ACCOUNT_SPEC * p_struct,GWEN_XMLNODE * p_db)1199 void AB_AccountSpec_ReadXml(AB_ACCOUNT_SPEC *p_struct, GWEN_XMLNODE *p_db)
1200 {
1201 assert(p_struct);
1202 /* member "type" */
1203 p_struct->type=GWEN_XMLNode_GetIntValue(p_db, "type", AB_AccountType_Unknown);
1204
1205 /* member "uniqueId" */
1206 p_struct->uniqueId=GWEN_XMLNode_GetIntValue(p_db, "uniqueId", 0);
1207
1208 /* member "backendName" */
1209 if (p_struct->backendName) {
1210 free(p_struct->backendName);
1211 p_struct->backendName=NULL;
1212 }
1213 {
1214 const char *s;
1215 s=GWEN_XMLNode_GetCharValue(p_db, "backendName", NULL);
1216 if (s)
1217 p_struct->backendName=strdup(s);
1218 }
1219 if (p_struct->backendName==NULL) { /* preset member "backendName" if empty */
1220 p_struct->backendName=NULL;
1221 }
1222
1223 /* member "ownerName" */
1224 if (p_struct->ownerName) {
1225 free(p_struct->ownerName);
1226 p_struct->ownerName=NULL;
1227 }
1228 {
1229 const char *s;
1230 s=GWEN_XMLNode_GetCharValue(p_db, "ownerName", NULL);
1231 if (s)
1232 p_struct->ownerName=strdup(s);
1233 }
1234 if (p_struct->ownerName==NULL) { /* preset member "ownerName" if empty */
1235 p_struct->ownerName=NULL;
1236 }
1237
1238 /* member "accountName" */
1239 if (p_struct->accountName) {
1240 free(p_struct->accountName);
1241 p_struct->accountName=NULL;
1242 }
1243 {
1244 const char *s;
1245 s=GWEN_XMLNode_GetCharValue(p_db, "accountName", NULL);
1246 if (s)
1247 p_struct->accountName=strdup(s);
1248 }
1249 if (p_struct->accountName==NULL) { /* preset member "accountName" if empty */
1250 p_struct->accountName=NULL;
1251 }
1252
1253 /* member "currency" */
1254 if (p_struct->currency) {
1255 free(p_struct->currency);
1256 p_struct->currency=NULL;
1257 }
1258 {
1259 const char *s;
1260 s=GWEN_XMLNode_GetCharValue(p_db, "currency", NULL);
1261 if (s)
1262 p_struct->currency=strdup(s);
1263 }
1264 if (p_struct->currency==NULL) { /* preset member "currency" if empty */
1265 p_struct->currency=NULL;
1266 }
1267
1268 /* member "memo" */
1269 if (p_struct->memo) {
1270 free(p_struct->memo);
1271 p_struct->memo=NULL;
1272 }
1273 {
1274 const char *s;
1275 s=GWEN_XMLNode_GetCharValue(p_db, "memo", NULL);
1276 if (s)
1277 p_struct->memo=strdup(s);
1278 }
1279 if (p_struct->memo==NULL) { /* preset member "memo" if empty */
1280 p_struct->memo=NULL;
1281 }
1282
1283 /* member "iban" */
1284 if (p_struct->iban) {
1285 free(p_struct->iban);
1286 p_struct->iban=NULL;
1287 }
1288 {
1289 const char *s;
1290 s=GWEN_XMLNode_GetCharValue(p_db, "iban", NULL);
1291 if (s)
1292 p_struct->iban=strdup(s);
1293 }
1294 if (p_struct->iban==NULL) { /* preset member "iban" if empty */
1295 p_struct->iban=NULL;
1296 }
1297
1298 /* member "bic" */
1299 if (p_struct->bic) {
1300 free(p_struct->bic);
1301 p_struct->bic=NULL;
1302 }
1303 {
1304 const char *s;
1305 s=GWEN_XMLNode_GetCharValue(p_db, "bic", NULL);
1306 if (s)
1307 p_struct->bic=strdup(s);
1308 }
1309 if (p_struct->bic==NULL) { /* preset member "bic" if empty */
1310 p_struct->bic=NULL;
1311 }
1312
1313 /* member "country" */
1314 if (p_struct->country) {
1315 free(p_struct->country);
1316 p_struct->country=NULL;
1317 }
1318 {
1319 const char *s;
1320 s=GWEN_XMLNode_GetCharValue(p_db, "country", NULL);
1321 if (s)
1322 p_struct->country=strdup(s);
1323 }
1324 if (p_struct->country==NULL) { /* preset member "country" if empty */
1325 p_struct->country=NULL;
1326 }
1327
1328 /* member "bankCode" */
1329 if (p_struct->bankCode) {
1330 free(p_struct->bankCode);
1331 p_struct->bankCode=NULL;
1332 }
1333 {
1334 const char *s;
1335 s=GWEN_XMLNode_GetCharValue(p_db, "bankCode", NULL);
1336 if (s)
1337 p_struct->bankCode=strdup(s);
1338 }
1339 if (p_struct->bankCode==NULL) { /* preset member "bankCode" if empty */
1340 p_struct->bankCode=NULL;
1341 }
1342
1343 /* member "bankName" */
1344 if (p_struct->bankName) {
1345 free(p_struct->bankName);
1346 p_struct->bankName=NULL;
1347 }
1348 {
1349 const char *s;
1350 s=GWEN_XMLNode_GetCharValue(p_db, "bankName", NULL);
1351 if (s)
1352 p_struct->bankName=strdup(s);
1353 }
1354 if (p_struct->bankName==NULL) { /* preset member "bankName" if empty */
1355 p_struct->bankName=NULL;
1356 }
1357
1358 /* member "branchId" */
1359 if (p_struct->branchId) {
1360 free(p_struct->branchId);
1361 p_struct->branchId=NULL;
1362 }
1363 {
1364 const char *s;
1365 s=GWEN_XMLNode_GetCharValue(p_db, "branchId", NULL);
1366 if (s)
1367 p_struct->branchId=strdup(s);
1368 }
1369 if (p_struct->branchId==NULL) { /* preset member "branchId" if empty */
1370 p_struct->branchId=NULL;
1371 }
1372
1373 /* member "accountNumber" */
1374 if (p_struct->accountNumber) {
1375 free(p_struct->accountNumber);
1376 p_struct->accountNumber=NULL;
1377 }
1378 {
1379 const char *s;
1380 s=GWEN_XMLNode_GetCharValue(p_db, "accountNumber", NULL);
1381 if (s)
1382 p_struct->accountNumber=strdup(s);
1383 }
1384 if (p_struct->accountNumber==NULL) { /* preset member "accountNumber" if empty */
1385 p_struct->accountNumber=NULL;
1386 }
1387
1388 /* member "subAccountNumber" */
1389 if (p_struct->subAccountNumber) {
1390 free(p_struct->subAccountNumber);
1391 p_struct->subAccountNumber=NULL;
1392 }
1393 {
1394 const char *s;
1395 s=GWEN_XMLNode_GetCharValue(p_db, "subAccountNumber", NULL);
1396 if (s)
1397 p_struct->subAccountNumber=strdup(s);
1398 }
1399 if (p_struct->subAccountNumber==NULL) { /* preset member "subAccountNumber" if empty */
1400 p_struct->subAccountNumber=NULL;
1401 }
1402
1403 /* member "transactionLimitsList" */
1404 if (p_struct->transactionLimitsList) {
1405 AB_TransactionLimits_List_free(p_struct->transactionLimitsList);
1406 p_struct->transactionLimitsList=NULL;
1407 }
1408 {
1409 GWEN_XMLNODE *dbSource;
1410 dbSource=GWEN_XMLNode_FindFirstTag(p_db, "transactionLimitsList", NULL, NULL);
1411 if (dbSource) {
1412 AB_TRANSACTION_LIMITS_LIST *t;
1413 GWEN_XMLNODE *dbT;
1414 t=AB_TransactionLimits_List_new();
1415 dbT=GWEN_XMLNode_FindFirstTag(dbSource, "element", NULL, NULL);
1416 while (dbT) {
1417 AB_TRANSACTION_LIMITS *elem;
1418 elem=AB_TransactionLimits_fromXml(dbT);
1419 if (elem)
1420 AB_TransactionLimits_List_Add(elem, t);
1421 dbT=GWEN_XMLNode_FindNextTag(dbT, "element", NULL, NULL);
1422 }
1423 p_struct->transactionLimitsList=t;
1424 }
1425 else
1426 p_struct->transactionLimitsList=AB_TransactionLimits_List_new();
1427 }
1428 if (p_struct->transactionLimitsList==NULL) { /* preset member "transactionLimitsList" if empty */
1429 p_struct->transactionLimitsList=AB_TransactionLimits_List_new();
1430 }
1431
1432 }
1433
AB_AccountSpec_WriteXml(const AB_ACCOUNT_SPEC * p_struct,GWEN_XMLNODE * p_db)1434 void AB_AccountSpec_WriteXml(const AB_ACCOUNT_SPEC *p_struct, GWEN_XMLNODE *p_db)
1435 {
1436 assert(p_struct);
1437 /* member "type" */
1438 GWEN_XMLNode_SetIntValue(p_db, "type", p_struct->type);
1439
1440 /* member "uniqueId" */
1441 GWEN_XMLNode_SetIntValue(p_db, "uniqueId", p_struct->uniqueId);
1442
1443 /* member "backendName" */
1444 GWEN_XMLNode_SetCharValue(p_db, "backendName", p_struct->backendName);
1445
1446 /* member "ownerName" */
1447 GWEN_XMLNode_SetCharValue(p_db, "ownerName", p_struct->ownerName);
1448
1449 /* member "accountName" */
1450 GWEN_XMLNode_SetCharValue(p_db, "accountName", p_struct->accountName);
1451
1452 /* member "currency" */
1453 GWEN_XMLNode_SetCharValue(p_db, "currency", p_struct->currency);
1454
1455 /* member "memo" */
1456 GWEN_XMLNode_SetCharValue(p_db, "memo", p_struct->memo);
1457
1458 /* member "iban" */
1459 GWEN_XMLNode_SetCharValue(p_db, "iban", p_struct->iban);
1460
1461 /* member "bic" */
1462 GWEN_XMLNode_SetCharValue(p_db, "bic", p_struct->bic);
1463
1464 /* member "country" */
1465 GWEN_XMLNode_SetCharValue(p_db, "country", p_struct->country);
1466
1467 /* member "bankCode" */
1468 GWEN_XMLNode_SetCharValue(p_db, "bankCode", p_struct->bankCode);
1469
1470 /* member "bankName" */
1471 GWEN_XMLNode_SetCharValue(p_db, "bankName", p_struct->bankName);
1472
1473 /* member "branchId" */
1474 GWEN_XMLNode_SetCharValue(p_db, "branchId", p_struct->branchId);
1475
1476 /* member "accountNumber" */
1477 GWEN_XMLNode_SetCharValue(p_db, "accountNumber", p_struct->accountNumber);
1478
1479 /* member "subAccountNumber" */
1480 GWEN_XMLNode_SetCharValue(p_db, "subAccountNumber", p_struct->subAccountNumber);
1481
1482 /* member "transactionLimitsList" */
1483 {
1484 if (p_struct->transactionLimitsList) {
1485 GWEN_XMLNODE *dbDest;
1486 AB_TRANSACTION_LIMITS *elem;
1487 dbDest=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "transactionLimitsList");
1488 elem=AB_TransactionLimits_List_First(p_struct->transactionLimitsList);
1489 while (elem) {
1490 GWEN_XMLNODE *dbElem;
1491 dbElem=GWEN_XMLNode_new(GWEN_XMLNodeTypeTag, "element");
1492 assert(dbElem);
1493 AB_TransactionLimits_toXml(elem, dbElem);
1494 GWEN_XMLNode_AddChild(dbDest, dbElem);
1495 elem=AB_TransactionLimits_List_Next(elem);
1496 }
1497 GWEN_XMLNode_AddChild(p_db, dbDest);
1498 }
1499 }
1500
1501 }
1502
AB_AccountSpec_toXml(const AB_ACCOUNT_SPEC * p_struct,GWEN_XMLNODE * p_db)1503 void AB_AccountSpec_toXml(const AB_ACCOUNT_SPEC *p_struct, GWEN_XMLNODE *p_db)
1504 {
1505 AB_AccountSpec_WriteXml(p_struct, p_db);
1506 }
1507
AB_AccountSpec_fromXml(GWEN_XMLNODE * p_db)1508 AB_ACCOUNT_SPEC *AB_AccountSpec_fromXml(GWEN_XMLNODE *p_db)
1509 {
1510 AB_ACCOUNT_SPEC *p_struct;
1511 p_struct=AB_AccountSpec_new();
1512 AB_AccountSpec_ReadXml(p_struct, p_db);
1513 return p_struct;
1514 }
1515
AB_AccountSpec_List_GetByUniqueId(const AB_ACCOUNT_SPEC_LIST * p_list,uint32_t p_cmp)1516 AB_ACCOUNT_SPEC *AB_AccountSpec_List_GetByUniqueId(const AB_ACCOUNT_SPEC_LIST *p_list, uint32_t p_cmp)
1517 {
1518 AB_ACCOUNT_SPEC *p_struct;
1519
1520 assert(p_list);
1521 p_struct = AB_AccountSpec_List_First(p_list);
1522 while (p_struct) {
1523 int p_rv;
1524
1525 if (p_struct->uniqueId==p_cmp)
1526 p_rv=0;
1527 else if (p_cmp<p_struct->uniqueId)
1528 p_rv=-1;
1529 else
1530 p_rv=1;
1531 if (p_rv == 0)
1532 return p_struct;
1533 p_struct = AB_AccountSpec_List_Next(p_struct);
1534 }
1535 return NULL;
1536 }
1537
AB_AccountSpec_Matches(const AB_ACCOUNT_SPEC * a,const char * backendName,const char * country,const char * bankId,const char * accountNumber,const char * subAccountId,const char * iban,const char * currency,int ty)1538 int AB_AccountSpec_Matches(const AB_ACCOUNT_SPEC *a, const char *backendName, const char *country, const char *bankId,
1539 const char *accountNumber, const char *subAccountId, const char *iban, const char *currency, int ty)
1540 {
1541 const char *lbackendName;
1542 const char *lcountry;
1543 const char *lbankId;
1544 const char *laccountNumber;
1545 const char *lsubAccountId;
1546 const char *liban;
1547 const char *lcurrency;
1548 int lty;
1549 if (!backendName)
1550 backendName="*";
1551 if (!country)
1552 country="*";
1553 if (!bankId)
1554 bankId="*";
1555 if (!accountNumber)
1556 accountNumber="*";
1557 if (!subAccountId)
1558 subAccountId="*";
1559 if (!iban)
1560 iban="*";
1561 if (!currency)
1562 currency="*";
1563 if (ty>=AB_AccountType_Last)
1564 ty=AB_AccountType_Unknown;
1565 lbackendName=AB_AccountSpec_GetBackendName(a);
1566 lcountry=AB_AccountSpec_GetCountry(a);
1567 lbankId=AB_AccountSpec_GetBankCode(a);
1568 laccountNumber=AB_AccountSpec_GetAccountNumber(a);
1569 lsubAccountId=AB_AccountSpec_GetSubAccountNumber(a);
1570 liban=AB_AccountSpec_GetIban(a);
1571 lcurrency=AB_AccountSpec_GetCurrency(a);
1572 lty=AB_AccountSpec_GetType(a);
1573 if (!lcountry)
1574 lcountry="";
1575 if (!lbankId)
1576 lbankId="";
1577 if (!laccountNumber)
1578 laccountNumber="";
1579 if (!lsubAccountId)
1580 lsubAccountId="";
1581 if (!liban)
1582 liban="";
1583 if (!lcurrency)
1584 lcurrency="";
1585 if (lty>=AB_AccountType_Last || lty <=AB_AccountType_Unknown)
1586 lty=AB_AccountType_Unknown;
1587 if ((-1!=GWEN_Text_ComparePattern(lbackendName, backendName, 0)) &&
1588 (-1!=GWEN_Text_ComparePattern(lcountry, country, 0)) && (-1!=GWEN_Text_ComparePattern(lbankId, bankId, 0)) &&
1589 (-1!=GWEN_Text_ComparePattern(laccountNumber, accountNumber, 0)) &&
1590 (-1!=GWEN_Text_ComparePattern(lsubAccountId, subAccountId, 0)) && (-1!=GWEN_Text_ComparePattern(liban, iban, 0)) &&
1591 (-1!=GWEN_Text_ComparePattern(lcurrency, currency, 0)) && ((ty==AB_AccountType_Unknown) || (ty==lty)))
1592 return 1;
1593 return 0;
1594 }
AB_AccountSpec_List__FindInternal(AB_ACCOUNT_SPEC * a,const char * backendName,const char * country,const char * bankId,const char * accountNumber,const char * subAccountId,const char * iban,const char * currency,int ty)1595 AB_ACCOUNT_SPEC *AB_AccountSpec_List__FindInternal(AB_ACCOUNT_SPEC *a, const char *backendName, const char *country,
1596 const char *bankId, const char *accountNumber, const char *subAccountId, const char *iban, const char *currency,
1597 int ty)
1598 {
1599 if (!backendName)
1600 backendName="*";
1601 if (!country)
1602 country="*";
1603 if (!bankId)
1604 bankId="*";
1605 if (!accountNumber)
1606 accountNumber="*";
1607 if (!subAccountId)
1608 subAccountId="*";
1609 if (!iban)
1610 iban="*";
1611 if (!currency)
1612 currency="*";
1613 if (ty>=AB_AccountType_Last)
1614 ty=AB_AccountType_Unknown;
1615 while (a) {
1616 const char *lbackendName;
1617 lbackendName=AB_AccountSpec_GetBackendName(a);
1618 if (!(lbackendName && *lbackendName)) {
1619 DBG_ERROR(AQBANKING_LOGDOMAIN, "Account: %s/%s/%s: No backend, ignoring", AB_AccountSpec_GetCountry(a),
1620 AB_AccountSpec_GetBankCode(a), AB_AccountSpec_GetAccountNumber(a));
1621 }
1622 else {
1623 int rv;
1624 rv=AB_AccountSpec_Matches(a, backendName, country, bankId, accountNumber, subAccountId, iban, currency, ty);
1625 if (rv==1)
1626 break;
1627 }
1628 a=AB_AccountSpec_List_Next(a);
1629 } /* while */ return a;
1630 }
AB_AccountSpec_List_FindFirst(const AB_ACCOUNT_SPEC_LIST * al,const char * backendName,const char * country,const char * bankId,const char * accountNumber,const char * subAccountId,const char * iban,const char * currency,int ty)1631 AB_ACCOUNT_SPEC *AB_AccountSpec_List_FindFirst(const AB_ACCOUNT_SPEC_LIST *al, const char *backendName,
1632 const char *country, const char *bankId, const char *accountNumber, const char *subAccountId, const char *iban,
1633 const char *currency, int ty)
1634 {
1635 AB_ACCOUNT_SPEC *a;
1636 if (AB_AccountSpec_List_GetCount(al)==0) {
1637 DBG_INFO(AQBANKING_LOGDOMAIN, "No accounts");
1638 return NULL;
1639 }
1640 a=AB_AccountSpec_List_First(al);
1641 assert(a);
1642 return AB_AccountSpec_List__FindInternal(a, backendName, country, bankId, accountNumber, subAccountId, iban, currency,
1643 ty);
1644 }
AB_AccountSpec_List_FindNext(AB_ACCOUNT_SPEC * a,const char * backendName,const char * country,const char * bankId,const char * accountNumber,const char * subAccountId,const char * iban,const char * currency,int ty)1645 AB_ACCOUNT_SPEC *AB_AccountSpec_List_FindNext(AB_ACCOUNT_SPEC *a, const char *backendName, const char *country,
1646 const char *bankId, const char *accountNumber, const char *subAccountId, const char *iban, const char *currency,
1647 int ty)
1648 {
1649 assert(a);
1650 a=AB_AccountSpec_List_Next(a);
1651 if (a==NULL) {
1652 DBG_INFO(AQBANKING_LOGDOMAIN, "No more account specs");
1653 return NULL;
1654 }
1655 return AB_AccountSpec_List__FindInternal(a, backendName, country, bankId, accountNumber, subAccountId, iban, currency,
1656 ty);
1657 }
AB_AccountSpec_GetTransactionLimitsForCommand(const AB_ACCOUNT_SPEC * st,int cmd)1658 AB_TRANSACTION_LIMITS *AB_AccountSpec_GetTransactionLimitsForCommand(const AB_ACCOUNT_SPEC *st, int cmd)
1659 {
1660 assert(st);
1661 if (st->transactionLimitsList)
1662 return AB_TransactionLimits_List_GetByCommand(st->transactionLimitsList, cmd);
1663 return NULL;
1664 }
AB_AccountSpec_AddTransactionLimits(AB_ACCOUNT_SPEC * st,AB_TRANSACTION_LIMITS * l)1665 void AB_AccountSpec_AddTransactionLimits(AB_ACCOUNT_SPEC *st, AB_TRANSACTION_LIMITS *l)
1666 {
1667 assert(st);
1668 assert(l);
1669 if (NULL==st->transactionLimitsList)
1670 st->transactionLimitsList=AB_TransactionLimits_List_new();
1671 AB_TransactionLimits_List_Add(l, st->transactionLimitsList);
1672 }
1673
1674 /* code headers */
1675
1676