1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package io.github.tonywasher.joceanus.moneywise.quicken.file;
18
19 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusMoney;
20 import io.github.tonywasher.joceanus.oceanus.decimal.OceanusRate;
21 import io.github.tonywasher.joceanus.moneywise.quicken.definitions.MoneyWiseQEventLineType;
22 import io.github.tonywasher.joceanus.moneywise.quicken.file.MoneyWiseQIFLine.MoneyWiseQIFCategoryLine;
23 import io.github.tonywasher.joceanus.moneywise.quicken.file.MoneyWiseQIFLine.MoneyWiseQIFMoneyLine;
24 import io.github.tonywasher.joceanus.moneywise.quicken.file.MoneyWiseQIFLine.MoneyWiseQIFRateLine;
25 import io.github.tonywasher.joceanus.moneywise.quicken.file.MoneyWiseQIFLine.MoneyWiseQIFStringLine;
26 import io.github.tonywasher.joceanus.moneywise.quicken.file.MoneyWiseQIFLine.MoneyWiseQIFXferAccountLine;
27
28 import java.util.List;
29
30
31
32
33 public class MoneyWiseQIFSplitEvent
34 extends MoneyWiseQIFRecord<MoneyWiseQEventLineType> {
35
36
37
38 private final MoneyWiseQIFEventCategory theCategory;
39
40
41
42
43 private final MoneyWiseQIFAccount theAccount;
44
45
46
47
48 private OceanusMoney theAmount;
49
50
51
52
53 private OceanusRate thePercentage;
54
55
56
57
58 private String theComment;
59
60
61
62
63
64
65
66 protected MoneyWiseQIFSplitEvent(final MoneyWiseQIFFile pFile,
67 final MoneyWiseQIFEventCategory pCategory) {
68 this(pFile, pCategory, null);
69 }
70
71
72
73
74
75
76
77
78 protected MoneyWiseQIFSplitEvent(final MoneyWiseQIFFile pFile,
79 final MoneyWiseQIFEventCategory pCategory,
80 final List<MoneyWiseQIFClass> pClasses) {
81
82 super(pFile, MoneyWiseQEventLineType.class);
83
84
85 theCategory = pCategory;
86 theAccount = null;
87 theAmount = null;
88 thePercentage = null;
89 theComment = null;
90
91
92 addLine(new MoneyWiseQIFEventSplitCategoryLine(theCategory, pClasses));
93 }
94
95
96
97
98
99
100
101 protected MoneyWiseQIFSplitEvent(final MoneyWiseQIFFile pFile,
102 final MoneyWiseQIFAccount pAccount) {
103
104 this(pFile, pAccount, null);
105 }
106
107
108
109
110
111
112
113
114 protected MoneyWiseQIFSplitEvent(final MoneyWiseQIFFile pFile,
115 final MoneyWiseQIFAccount pAccount,
116 final List<MoneyWiseQIFClass> pClasses) {
117
118 super(pFile, MoneyWiseQEventLineType.class);
119
120
121 theCategory = null;
122 theAccount = pAccount;
123 theAmount = null;
124 thePercentage = null;
125 theComment = null;
126
127
128 addLine(new MoneyWiseQIFEventSplitAccountLine(pAccount, pClasses));
129 }
130
131
132
133
134
135
136 public MoneyWiseQIFEventCategory getCategory() {
137 return theCategory;
138 }
139
140
141
142
143
144
145 public MoneyWiseQIFAccount getAccount() {
146 return theAccount;
147 }
148
149
150
151
152
153
154 public OceanusMoney getAmount() {
155 return theAmount;
156 }
157
158
159
160
161
162
163 public OceanusRate getPercentage() {
164 return thePercentage;
165 }
166
167
168
169
170
171
172 public String getComment() {
173 return theComment;
174 }
175
176
177
178
179
180
181 protected void setSplitAmount(final OceanusMoney pAmount) {
182
183 addLine(new MoneyWiseQIFEventSplitAmountLine(pAmount));
184 theAmount = pAmount;
185 }
186
187
188
189
190
191
192 protected void setSplitPercentage(final OceanusRate pPercent) {
193
194 addLine(new MoneyWiseQIFEventSplitPercentLine(pPercent));
195 thePercentage = pPercent;
196 }
197
198
199
200
201
202
203 protected void setSplitComment(final String pComment) {
204
205 addLine(new MoneyWiseQIFEventSplitCommentLine(pComment));
206 theComment = pComment;
207 }
208
209
210
211
212 public class MoneyWiseQIFEventSplitAccountLine
213 extends MoneyWiseQIFXferAccountLine<MoneyWiseQEventLineType> {
214
215
216
217
218
219 protected MoneyWiseQIFEventSplitAccountLine(final MoneyWiseQIFAccount pAccount) {
220
221 super(pAccount);
222 }
223
224
225
226
227
228
229
230 protected MoneyWiseQIFEventSplitAccountLine(final MoneyWiseQIFAccount pAccount,
231 final List<MoneyWiseQIFClass> pClasses) {
232
233 super(pAccount, pClasses);
234 }
235
236 @Override
237 public MoneyWiseQEventLineType getLineType() {
238 return MoneyWiseQEventLineType.SPLITCATEGORY;
239 }
240 }
241
242
243
244
245 public class MoneyWiseQIFEventSplitCategoryLine
246 extends MoneyWiseQIFCategoryLine<MoneyWiseQEventLineType> {
247
248
249
250
251
252 protected MoneyWiseQIFEventSplitCategoryLine(final MoneyWiseQIFEventCategory pCategory) {
253
254 super(pCategory);
255 }
256
257
258
259
260
261
262
263 protected MoneyWiseQIFEventSplitCategoryLine(final MoneyWiseQIFEventCategory pCategory,
264 final List<MoneyWiseQIFClass> pClasses) {
265
266 super(pCategory, pClasses);
267 }
268
269 @Override
270 public MoneyWiseQEventLineType getLineType() {
271 return MoneyWiseQEventLineType.SPLITCATEGORY;
272 }
273 }
274
275
276
277
278 public class MoneyWiseQIFEventSplitAmountLine
279 extends MoneyWiseQIFMoneyLine<MoneyWiseQEventLineType> {
280
281
282
283
284
285 protected MoneyWiseQIFEventSplitAmountLine(final OceanusMoney pAmount) {
286
287 super(pAmount);
288 }
289
290
291
292
293
294
295 public OceanusMoney getAmount() {
296 return getMoney();
297 }
298
299 @Override
300 public MoneyWiseQEventLineType getLineType() {
301 return MoneyWiseQEventLineType.SPLITAMOUNT;
302 }
303 }
304
305
306
307
308 public class MoneyWiseQIFEventSplitPercentLine
309 extends MoneyWiseQIFRateLine<MoneyWiseQEventLineType> {
310
311
312
313
314
315 protected MoneyWiseQIFEventSplitPercentLine(final OceanusRate pPercent) {
316
317 super(pPercent);
318 }
319
320
321
322
323
324
325 public OceanusRate getPercentage() {
326 return getRate();
327 }
328
329 @Override
330 public MoneyWiseQEventLineType getLineType() {
331 return MoneyWiseQEventLineType.SPLITPERCENT;
332 }
333 }
334
335
336
337
338 public class MoneyWiseQIFEventSplitCommentLine
339 extends MoneyWiseQIFStringLine<MoneyWiseQEventLineType> {
340
341
342
343
344
345 protected MoneyWiseQIFEventSplitCommentLine(final String pComment) {
346
347 super(pComment);
348 }
349
350 @Override
351 public MoneyWiseQEventLineType getLineType() {
352 return MoneyWiseQEventLineType.SPLITCOMMENT;
353 }
354
355
356
357
358
359
360 public String getComment() {
361 return getValue();
362 }
363 }
364 }