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 java.util.ArrayList;
20 import java.util.Collections;
21 import java.util.Iterator;
22 import java.util.List;
23
24 import io.github.tonywasher.joceanus.moneywise.data.basic.MoneyWiseTransAsset;
25
26
27
28
29 public class MoneyWiseQIFAccountEvents
30 implements Comparable<MoneyWiseQIFAccountEvents> {
31
32
33
34 private final MoneyWiseQIFAccount theAccount;
35
36
37
38
39 private final List<MoneyWiseQIFEventRecord<?>> theEvents;
40
41
42
43
44
45
46
47 protected MoneyWiseQIFAccountEvents(final MoneyWiseQIFFile pFile,
48 final MoneyWiseTransAsset pAccount) {
49
50 theAccount = new MoneyWiseQIFAccount(pFile, pAccount);
51
52
53 theEvents = new ArrayList<>();
54 }
55
56
57
58
59
60
61
62 protected MoneyWiseQIFAccountEvents(final MoneyWiseQIFFile pFile,
63 final String pAccount) {
64
65 theAccount = new MoneyWiseQIFAccount(pFile, pAccount);
66
67
68 theEvents = new ArrayList<>();
69 }
70
71
72
73
74
75
76 protected MoneyWiseQIFAccountEvents(final MoneyWiseQIFAccount pAccount) {
77
78 theAccount = pAccount;
79
80
81 theEvents = new ArrayList<>();
82 }
83
84
85
86
87
88
89 public MoneyWiseQIFAccount getAccount() {
90 return theAccount;
91 }
92
93
94
95
96
97
98 public List<MoneyWiseQIFEventRecord<?>> getEvents() {
99 return theEvents;
100 }
101
102
103
104
105
106
107 public Iterator<MoneyWiseQIFEventRecord<?>> eventIterator() {
108 return theEvents.iterator();
109 }
110
111
112
113
114
115
116 protected void addEvent(final MoneyWiseQIFEventRecord<?> pEvent) {
117
118 theEvents.add(pEvent);
119 }
120
121
122
123
124 protected void sortEvents() {
125 Collections.sort(theEvents);
126 }
127
128 @Override
129 public boolean equals(final Object pThat) {
130
131 if (this == pThat) {
132 return true;
133 }
134 if (pThat == null) {
135 return false;
136 }
137
138
139 if (!getClass().equals(pThat.getClass())) {
140 return false;
141 }
142
143
144 final MoneyWiseQIFAccountEvents myEvents = (MoneyWiseQIFAccountEvents) pThat;
145
146
147 if (!theAccount.equals(myEvents.getAccount())) {
148 return false;
149 }
150
151
152 return theEvents.equals(myEvents.getEvents());
153 }
154
155 @Override
156 public int hashCode() {
157 final int myResult = MoneyWiseQIFFile.HASH_BASE * theAccount.hashCode();
158 return myResult + theEvents.hashCode();
159 }
160
161 @Override
162 public int compareTo(final MoneyWiseQIFAccountEvents pThat) {
163 return theAccount.compareTo(pThat.getAccount());
164 }
165 }