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