1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
/***************************************************************************
mymoneystorageanon.h
-------------------
begin : Thu Oct 24 2002
copyright : (C) 2000-2002 by Michael Edwardes
email : [email protected]
Javier Campos Morales <[email protected]>
Felix Rodriguez <[email protected]>
John C <[email protected]>
Thomas Baumgart <[email protected]>
Kevin Tambascio <[email protected]>
Ace Jone <[email protected]>
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef MYMONEYSTORAGEANON_H
#define MYMONEYSTORAGEANON_H
// ----------------------------------------------------------------------------
// TQt Includes
// #include <tqdom.h>
// #include <tqdatastream.h>
// class TQIODevice;
// ----------------------------------------------------------------------------
// Project Includes
// #include "imymoneyserialize.h"
// #include "imymoneystorageformat.h"
#include "mymoneystoragexml.h"
/**
* @author Kevin Tambascio ([email protected])
*/
#define VERSION_0_60_XML 0x10000010 // Version 0.5 file version info
#define VERSION_0_61_XML 0x10000011 // use 8 bytes for MyMoneyMoney objects
/**
* This class provides storage of an anonymized version of the current
* file. Any object with an ID (account, transaction, etc) is renamed
* with that ID. Any other string value the user typed in is replaced with
* x's equal in length to the original string. Any numeric value is
* replaced with an arbitrary number which matches the sign of the original.
*
* The purpose of this class is to give users a way to send a developer
* their file without comprimising their financial data. If a user
* encounters an error, they should try saving the anonymous version of the
* file and see if the error is still there. If so, they should notify the
* list of the problem, and then when requested, send the anonymous file
* privately to the developer who takes the problem. I still don't think
* it's wise to post the file to the public list...maybe I'm just paranoid.
*
* @author Ace Jones <[email protected]>
*/
class MyMoneyStorageANON : public MyMoneyStorageXML
{
public:
MyMoneyStorageANON();
virtual ~MyMoneyStorageANON();
protected:
void writeUserInformation(TQDomElement& userInfo);
void writeInstitution(TQDomElement& institutions, const MyMoneyInstitution& i);
void writePayee(TQDomElement& payees, const MyMoneyPayee& p);
void writeAccount(TQDomElement& accounts, const MyMoneyAccount& p);
void writeTransaction(TQDomElement& transactions, const MyMoneyTransaction& tx);
void writeSchedule(TQDomElement& scheduledTx, const MyMoneySchedule& tx);
void writeBudget(TQDomElement& budgets, const MyMoneyBudget& b);
void readFile(TQIODevice* s, IMyMoneySerialize* storage);
void writeSecurity(TQDomElement& securityElement, const MyMoneySecurity& security);
TQDomElement findChildElement(const TQString& name, const TQDomElement& root);
private:
/**
* The list of key-value pairs to not modify
*/
static TQStringList zKvpNoModify;
/**
* The list of key-value pairs which are numbers to be hidden
*/
static TQStringList zKvpXNumber;
TQString hideString(const TQString&) const;
MyMoneyMoney hideNumber(const MyMoneyMoney&) const;
void fakeTransaction(MyMoneyTransaction& tn);
void fakeBudget(MyMoneyBudget& bn);
void fakeKeyValuePair(MyMoneyKeyValueContainer& _kvp);
MyMoneyMoney m_factor;
};
#endif
|