#3 nedredmond

Otwarty
nedredmond chce scalić 2 commity/ów z nedredmond/Checkbook-OldStyle:withArrayList do master

+ 16
- 0
Checkbook/.idea/compiler.xml Wyświetl plik

@@ -0,0 +1,16 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="CompilerConfiguration">
4
+    <annotationProcessing>
5
+      <profile name="Maven default annotation processors profile" enabled="true">
6
+        <sourceOutputDir name="target/generated-sources/annotations" />
7
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
8
+        <outputRelativeToContentRoot value="true" />
9
+        <module name="Checkbook" />
10
+      </profile>
11
+    </annotationProcessing>
12
+    <bytecodeTargetLevel>
13
+      <module name="Checkbook" target="1.8" />
14
+    </bytecodeTargetLevel>
15
+  </component>
16
+</project>

+ 4
- 0
Checkbook/.idea/encodings.xml Wyświetl plik

@@ -0,0 +1,4 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
4
+</project>

+ 13
- 0
Checkbook/.idea/libraries/Maven__junit_junit_4_0.xml Wyświetl plik

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: junit:junit:4.0">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.0/junit-4.0.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.0/junit-4.0-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.0/junit-4.0-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
Checkbook/.idea/misc.xml Wyświetl plik

@@ -0,0 +1,13 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="MavenProjectsManager">
4
+    <option name="originalFiles">
5
+      <list>
6
+        <option value="$PROJECT_DIR$/pom.xml" />
7
+      </list>
8
+    </option>
9
+  </component>
10
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
11
+    <output url="file://$PROJECT_DIR$/classes" />
12
+  </component>
13
+</project>

+ 8
- 0
Checkbook/.idea/modules.xml Wyświetl plik

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/Checkbook.iml" filepath="$PROJECT_DIR$/Checkbook.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 6
- 0
Checkbook/.idea/vcs.xml Wyświetl plik

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5
+  </component>
6
+</project>

+ 326
- 0
Checkbook/.idea/workspace.xml Wyświetl plik

@@ -0,0 +1,326 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="86bea83e-ff28-4c08-8563-407f3ac4c927" name="Default Changelist" comment="">
5
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
6
+      <change beforePath="$PROJECT_DIR$/src/main/java/Checkbook.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/Checkbook.java" afterDir="false" />
7
+    </list>
8
+    <ignored path="$PROJECT_DIR$/target/" />
9
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
10
+    <option name="SHOW_DIALOG" value="false" />
11
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
12
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
13
+    <option name="LAST_RESOLUTION" value="IGNORE" />
14
+  </component>
15
+  <component name="FileEditorManager">
16
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
17
+      <file pinned="false" current-in-tab="false">
18
+        <entry file="file://$PROJECT_DIR$/src/main/java/AccountBook.java">
19
+          <provider selected="true" editor-type-id="text-editor">
20
+            <state relative-caret-position="46">
21
+              <caret line="2" column="10" selection-start-line="2" selection-start-column="10" selection-end-line="2" selection-end-column="10" />
22
+            </state>
23
+          </provider>
24
+        </entry>
25
+      </file>
26
+      <file pinned="false" current-in-tab="true">
27
+        <entry file="file://$PROJECT_DIR$/src/main/java/Checkbook.java">
28
+          <provider selected="true" editor-type-id="text-editor">
29
+            <state relative-caret-position="386">
30
+              <caret line="136" column="57" selection-start-line="136" selection-start-column="57" selection-end-line="136" selection-end-column="57" />
31
+              <folding>
32
+                <element signature="imports" expanded="true" />
33
+                <element signature="e#1440#1441#0" expanded="true" />
34
+                <element signature="e#1485#1486#0" expanded="true" />
35
+                <element signature="e#1550#1551#0" expanded="true" />
36
+                <element signature="e#1600#1601#0" expanded="true" />
37
+                <element signature="e#1935#1936#0" expanded="true" />
38
+                <element signature="e#1983#1984#0" expanded="true" />
39
+                <element signature="e#2046#2047#0" expanded="true" />
40
+                <element signature="e#2094#2095#0" expanded="true" />
41
+                <element signature="e#2135#2136#0" expanded="true" />
42
+                <element signature="e#2171#2172#0" expanded="true" />
43
+              </folding>
44
+            </state>
45
+          </provider>
46
+        </entry>
47
+      </file>
48
+      <file pinned="false" current-in-tab="false">
49
+        <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/src.zip!/java/util/ArrayList.java">
50
+          <provider selected="true" editor-type-id="text-editor">
51
+            <state relative-caret-position="15203">
52
+              <caret line="701" column="59" selection-start-line="701" selection-start-column="53" selection-end-line="701" selection-end-column="59" />
53
+            </state>
54
+          </provider>
55
+        </entry>
56
+      </file>
57
+      <file pinned="false" current-in-tab="false">
58
+        <entry file="file://$PROJECT_DIR$/src/main/java/GenericAccount.java">
59
+          <provider selected="true" editor-type-id="text-editor">
60
+            <state relative-caret-position="23">
61
+              <caret line="1" column="52" selection-start-line="1" selection-start-column="52" selection-end-line="1" selection-end-column="52" />
62
+            </state>
63
+          </provider>
64
+        </entry>
65
+      </file>
66
+      <file pinned="false" current-in-tab="false">
67
+        <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/src.zip!/java/util/Collection.java">
68
+          <provider selected="true" editor-type-id="text-editor">
69
+            <state relative-caret-position="2714">
70
+              <caret line="143" column="17" selection-start-line="143" selection-start-column="17" selection-end-line="143" selection-end-column="17" />
71
+            </state>
72
+          </provider>
73
+        </entry>
74
+      </file>
75
+    </leaf>
76
+  </component>
77
+  <component name="FindInProjectRecents">
78
+    <findStrings>
79
+      <find>public</find>
80
+      <find>Student</find>
81
+      <find>toArray</find>
82
+      <find>remove</find>
83
+      <find>contains</find>
84
+      <find>retain</find>
85
+    </findStrings>
86
+  </component>
87
+  <component name="Git.Settings">
88
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
89
+    <option name="RECENT_BRANCH_BY_REPOSITORY">
90
+      <map>
91
+        <entry key="$PROJECT_DIR$/.." value="master" />
92
+      </map>
93
+    </option>
94
+  </component>
95
+  <component name="IdeDocumentHistory">
96
+    <option name="CHANGED_PATHS">
97
+      <list>
98
+        <option value="$PROJECT_DIR$/src/main/java/Transaction.java" />
99
+        <option value="$PROJECT_DIR$/src/main/java/AccountBook.java" />
100
+        <option value="$PROJECT_DIR$/src/test/java/CheckbookTest.java" />
101
+        <option value="$PROJECT_DIR$/src/main/java/GenericAccount.java" />
102
+        <option value="$PROJECT_DIR$/src/main/java/Checkbook.java" />
103
+      </list>
104
+    </option>
105
+  </component>
106
+  <component name="ProjectFrameBounds" fullScreen="true">
107
+    <option name="width" value="584" />
108
+    <option name="height" value="900" />
109
+  </component>
110
+  <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
111
+  <component name="ProjectView">
112
+    <navigator proportions="" version="1">
113
+      <foldersAlwaysOnTop value="true" />
114
+    </navigator>
115
+    <panes>
116
+      <pane id="Scope" />
117
+      <pane id="ProjectPane">
118
+        <subPane>
119
+          <expand>
120
+            <path>
121
+              <item name="Checkbook" type="b2602c69:ProjectViewProjectNode" />
122
+              <item name="Checkbook" type="462c0819:PsiDirectoryNode" />
123
+            </path>
124
+            <path>
125
+              <item name="Checkbook" type="b2602c69:ProjectViewProjectNode" />
126
+              <item name="Checkbook" type="462c0819:PsiDirectoryNode" />
127
+              <item name="src" type="462c0819:PsiDirectoryNode" />
128
+            </path>
129
+            <path>
130
+              <item name="Checkbook" type="b2602c69:ProjectViewProjectNode" />
131
+              <item name="Checkbook" type="462c0819:PsiDirectoryNode" />
132
+              <item name="src" type="462c0819:PsiDirectoryNode" />
133
+              <item name="main" type="462c0819:PsiDirectoryNode" />
134
+            </path>
135
+            <path>
136
+              <item name="Checkbook" type="b2602c69:ProjectViewProjectNode" />
137
+              <item name="Checkbook" type="462c0819:PsiDirectoryNode" />
138
+              <item name="src" type="462c0819:PsiDirectoryNode" />
139
+              <item name="main" type="462c0819:PsiDirectoryNode" />
140
+              <item name="java" type="462c0819:PsiDirectoryNode" />
141
+            </path>
142
+            <path>
143
+              <item name="Checkbook" type="b2602c69:ProjectViewProjectNode" />
144
+              <item name="Checkbook" type="462c0819:PsiDirectoryNode" />
145
+              <item name="src" type="462c0819:PsiDirectoryNode" />
146
+              <item name="test" type="462c0819:PsiDirectoryNode" />
147
+            </path>
148
+            <path>
149
+              <item name="Checkbook" type="b2602c69:ProjectViewProjectNode" />
150
+              <item name="Checkbook" type="462c0819:PsiDirectoryNode" />
151
+              <item name="src" type="462c0819:PsiDirectoryNode" />
152
+              <item name="test" type="462c0819:PsiDirectoryNode" />
153
+              <item name="java" type="462c0819:PsiDirectoryNode" />
154
+            </path>
155
+          </expand>
156
+          <select />
157
+        </subPane>
158
+      </pane>
159
+      <pane id="PackagesPane" />
160
+    </panes>
161
+  </component>
162
+  <component name="PropertiesComponent">
163
+    <property name="WebServerToolWindowFactoryState" value="false" />
164
+    <property name="aspect.path.notification.shown" value="true" />
165
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1544229309062" />
166
+    <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary" value="JUnit4" />
167
+    <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrarySuperClass.JUnit4" value="" />
168
+    <property name="extract.method.default.visibility" value="private" />
169
+    <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
170
+    <property name="nodejs_npm_path_reset_for_default_project" value="true" />
171
+  </component>
172
+  <component name="RecentsManager">
173
+    <key name="CreateTestDialog.RecentsKey">
174
+      <recent name="" />
175
+    </key>
176
+    <key name="CreateTestDialog.Recents.Supers">
177
+      <recent name="" />
178
+    </key>
179
+  </component>
180
+  <component name="RunDashboard">
181
+    <option name="ruleStates">
182
+      <list>
183
+        <RuleState>
184
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
185
+        </RuleState>
186
+        <RuleState>
187
+          <option name="name" value="StatusDashboardGroupingRule" />
188
+        </RuleState>
189
+      </list>
190
+    </option>
191
+  </component>
192
+  <component name="SvnConfiguration">
193
+    <configuration />
194
+  </component>
195
+  <component name="TaskManager">
196
+    <task active="true" id="Default" summary="Default task">
197
+      <changelist id="86bea83e-ff28-4c08-8563-407f3ac4c927" name="Default Changelist" comment="" />
198
+      <created>1544199126934</created>
199
+      <option name="number" value="Default" />
200
+      <option name="presentableId" value="Default" />
201
+      <updated>1544199126934</updated>
202
+      <workItem from="1544199128297" duration="10411000" />
203
+      <workItem from="1544228672333" duration="635000" />
204
+    </task>
205
+    <servers />
206
+  </component>
207
+  <component name="TimeTrackingManager">
208
+    <option name="totallyTimeSpent" value="11046000" />
209
+  </component>
210
+  <component name="ToolWindowManager">
211
+    <frame x="0" y="0" width="1440" height="900" extended-state="6" />
212
+    <editor active="true" />
213
+    <layout>
214
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.42274678" />
215
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
216
+      <window_info id="Designer" order="2" />
217
+      <window_info id="Image Layers" order="3" />
218
+      <window_info id="Capture Tool" order="4" />
219
+      <window_info id="UI Designer" order="5" />
220
+      <window_info id="Learn" order="6" />
221
+      <window_info id="Favorites" order="7" side_tool="true" />
222
+      <window_info anchor="bottom" id="Message" order="0" />
223
+      <window_info anchor="bottom" id="Find" order="1" />
224
+      <window_info anchor="bottom" id="Run" order="2" />
225
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
226
+      <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
227
+      <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
228
+      <window_info anchor="bottom" id="TODO" order="6" />
229
+      <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
230
+      <window_info anchor="bottom" id="Version Control" order="8" />
231
+      <window_info anchor="bottom" id="Database Changes" order="9" />
232
+      <window_info anchor="bottom" id="Terminal" order="10" />
233
+      <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
234
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
235
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
236
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
237
+      <window_info anchor="right" id="Palette" order="3" />
238
+      <window_info anchor="right" id="Theme Preview" order="4" />
239
+      <window_info anchor="right" id="Maven" order="5" />
240
+      <window_info anchor="right" id="Capture Analysis" order="6" />
241
+      <window_info anchor="right" id="Palette&#9;" order="7" />
242
+      <window_info anchor="right" id="Database" order="8" />
243
+    </layout>
244
+  </component>
245
+  <component name="TypeScriptGeneratedFilesManager">
246
+    <option name="version" value="1" />
247
+  </component>
248
+  <component name="editorHistoryManager">
249
+    <entry file="file://$PROJECT_DIR$/src/main/java/Transaction.java">
250
+      <provider selected="true" editor-type-id="text-editor">
251
+        <state relative-caret-position="299">
252
+          <caret line="14" column="27" lean-forward="true" selection-start-line="14" selection-start-column="27" selection-end-line="14" selection-end-column="27" />
253
+        </state>
254
+      </provider>
255
+    </entry>
256
+    <entry file="file://$PROJECT_DIR$/src/main/java/Payee.java">
257
+      <provider selected="true" editor-type-id="text-editor">
258
+        <state>
259
+          <caret column="13" selection-start-column="13" selection-end-column="13" />
260
+        </state>
261
+      </provider>
262
+    </entry>
263
+    <entry file="file://$PROJECT_DIR$/src/main/java/TransactionType.java">
264
+      <provider selected="true" editor-type-id="text-editor">
265
+        <state relative-caret-position="23">
266
+          <caret line="1" column="12" selection-start-line="1" selection-start-column="12" selection-end-line="1" selection-end-column="12" />
267
+        </state>
268
+      </provider>
269
+    </entry>
270
+    <entry file="file://$PROJECT_DIR$/src/test/java/CheckbookTest.java">
271
+      <provider selected="true" editor-type-id="text-editor">
272
+        <state relative-caret-position="593">
273
+          <caret line="64" column="5" selection-start-line="64" selection-start-column="5" selection-end-line="64" selection-end-column="5" />
274
+        </state>
275
+      </provider>
276
+    </entry>
277
+    <entry file="file://$PROJECT_DIR$/src/main/java/AccountBook.java">
278
+      <provider selected="true" editor-type-id="text-editor">
279
+        <state relative-caret-position="46">
280
+          <caret line="2" column="10" selection-start-line="2" selection-start-column="10" selection-end-line="2" selection-end-column="10" />
281
+        </state>
282
+      </provider>
283
+    </entry>
284
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/src.zip!/java/util/ArrayList.java">
285
+      <provider selected="true" editor-type-id="text-editor">
286
+        <state relative-caret-position="15203">
287
+          <caret line="701" column="59" selection-start-line="701" selection-start-column="53" selection-end-line="701" selection-end-column="59" />
288
+        </state>
289
+      </provider>
290
+    </entry>
291
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Home/src.zip!/java/util/Collection.java">
292
+      <provider selected="true" editor-type-id="text-editor">
293
+        <state relative-caret-position="2714">
294
+          <caret line="143" column="17" selection-start-line="143" selection-start-column="17" selection-end-line="143" selection-end-column="17" />
295
+        </state>
296
+      </provider>
297
+    </entry>
298
+    <entry file="file://$PROJECT_DIR$/src/main/java/GenericAccount.java">
299
+      <provider selected="true" editor-type-id="text-editor">
300
+        <state relative-caret-position="23">
301
+          <caret line="1" column="52" selection-start-line="1" selection-start-column="52" selection-end-line="1" selection-end-column="52" />
302
+        </state>
303
+      </provider>
304
+    </entry>
305
+    <entry file="file://$PROJECT_DIR$/src/main/java/Checkbook.java">
306
+      <provider selected="true" editor-type-id="text-editor">
307
+        <state relative-caret-position="386">
308
+          <caret line="136" column="57" selection-start-line="136" selection-start-column="57" selection-end-line="136" selection-end-column="57" />
309
+          <folding>
310
+            <element signature="imports" expanded="true" />
311
+            <element signature="e#1440#1441#0" expanded="true" />
312
+            <element signature="e#1485#1486#0" expanded="true" />
313
+            <element signature="e#1550#1551#0" expanded="true" />
314
+            <element signature="e#1600#1601#0" expanded="true" />
315
+            <element signature="e#1935#1936#0" expanded="true" />
316
+            <element signature="e#1983#1984#0" expanded="true" />
317
+            <element signature="e#2046#2047#0" expanded="true" />
318
+            <element signature="e#2094#2095#0" expanded="true" />
319
+            <element signature="e#2135#2136#0" expanded="true" />
320
+            <element signature="e#2171#2172#0" expanded="true" />
321
+          </folding>
322
+        </state>
323
+      </provider>
324
+    </entry>
325
+  </component>
326
+</project>

+ 1
- 2
Checkbook/Checkbook.iml Wyświetl plik

@@ -5,11 +5,10 @@
5 5
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
6 6
     <content url="file://$MODULE_DIR$">
7 7
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8
-      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
9 8
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
10 9
       <excludeFolder url="file://$MODULE_DIR$/target" />
11 10
     </content>
12
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
11
+    <orderEntry type="inheritedJdk" />
13 12
     <orderEntry type="sourceFolder" forTests="false" />
14 13
     <orderEntry type="library" name="Maven: junit:junit:4.0" level="project" />
15 14
   </component>

+ 9
- 9
Checkbook/src/main/java/AccountBook.java Wyświetl plik

@@ -1,12 +1,12 @@
1 1
 import java.time.LocalDate;
2 2
 
3
-public interface AccountBook {
4
-    public Integer getId();
5
-    public LocalDate getDate();
6
-    public TransactionType getType();
7
-    public String getMemo() ;
8
-    public void setMemo(String memo);
9
-    public Payee getPayee();
10
-    public void setPayee(Payee payee);
11
-    public Double getAmount();
3
+interface AccountBook {
4
+    Integer getId();
5
+    LocalDate getDate();
6
+    TransactionType getType();
7
+    String getMemo() ;
8
+    void setMemo(String memo);
9
+    Payee getPayee();
10
+    void setPayee(Payee payee);
11
+    Double getAmount();
12 12
 }

+ 142
- 1
Checkbook/src/main/java/Checkbook.java Wyświetl plik

@@ -1,4 +1,145 @@
1
-public class Checkbook {
1
+import java.time.LocalDate;
2
+import java.util.*;
3
+
4
+public class Checkbook<T extends Transaction> implements Collection<T> {
5
+    private ArrayList<Transaction> transactions;
6
+    private final int CHECKBOOK_SIZE = 100;
7
+
8
+    private Payee owner;
9
+    private double cashAmount;
10
+
11
+    public Checkbook() {
12
+        this.transactions = new ArrayList<>();
13
+    }
14
+
15
+    public Checkbook(double cashAmount) {
16
+        this();
17
+        this.cashAmount = cashAmount;
18
+    }
19
+
20
+    public Checkbook(Payee owner, double cashAmount) {
21
+        this(cashAmount);
22
+        this.owner = owner;
23
+    }
24
+
25
+    @Override
26
+    public int size() {
27
+        return transactions.size();
28
+    }
29
+
30
+    @Override
31
+    public boolean isEmpty() {
32
+        return transactions.isEmpty();
33
+    }
34
+
35
+    @Override
36
+    public boolean contains(Object t) {
37
+        return transactions.contains(t);
38
+    }
39
+
40
+    @Override
41
+    public Iterator<T> iterator() {
42
+        return (Iterator<T>) transactions.iterator();
43
+    }
44
+
45
+    @Override
46
+    public Transaction[] toArray() {
47
+        return (Transaction[]) transactions.toArray();
48
+    }
49
+
50
+    @Override
51
+    public <T> T[] toArray(T[] a) {
52
+        return transactions.toArray(a);
53
+    }
54
+
55
+    @Override
56
+    public boolean add(Transaction transaction) {
57
+        if (size() <= CHECKBOOK_SIZE) { return transactions.add(transaction); }
58
+        else throw new IndexOutOfBoundsException("Check limit exceeded. You need a new checkbook!");
59
+    }
60
+
61
+    @Override
62
+    public boolean remove(Object o) {
63
+        return transactions.remove(o);
64
+    }
65
+
66
+    @Override
67
+    public boolean containsAll(Collection<?> c) {
68
+        return transactions.containsAll(c);
69
+    }
70
+
71
+    @Override
72
+    public boolean addAll(Collection<? extends T> c) {
73
+        if (size() + c.size() <= CHECKBOOK_SIZE) { return transactions.addAll(c); }
74
+        else throw new IndexOutOfBoundsException("You do not have enough checks available in your checkbook.");
75
+    }
76
+
77
+    @Override
78
+    public boolean removeAll(Collection<?> c) {
79
+        return transactions.removeAll(c);
80
+    }
81
+
82
+    @Override
83
+    public boolean retainAll(Collection<?> c) {
84
+        return transactions.retainAll(c);
85
+    }
86
+
87
+    @Override
88
+    public void clear() {
89
+        transactions.clear();
90
+    }
91
+
92
+    public double checkbookValue(){
93
+        double sum = 0.0;
94
+        for (Transaction t : transactions) {
95
+            if (t.getType().equals(TransactionType.CREDIT)) {
96
+                sum += t.getAmount();
97
+            } else {
98
+                sum -= t.getAmount();
99
+            }
100
+        }
101
+        return sum;
102
+    }
103
+
104
+    public Transaction[] getTransactionsForDate(LocalDate aDate) {
105
+        ArrayList<Transaction> dateList = new ArrayList<>();
106
+        for (Transaction t : transactions) {
107
+            if (t.getDate().equals(aDate)) {
108
+                dateList.add(t);
109
+            }
110
+        }
111
+        return dateList.toArray(new Transaction[0]);
112
+    }
113
+
114
+    Transaction[] getAllTransactionsForPayee(Payee payee) {
115
+        ArrayList<Transaction> payeeList = new ArrayList<>();
116
+        for (Transaction t : transactions) {
117
+            if (t.getPayee().equals(payee)) {
118
+                payeeList.add(t);
119
+            }
120
+        }
121
+        return payeeList.toArray(new Transaction[0]);
122
+    }
123
+
124
+    Transaction[] getAllDebitTransactions() {
125
+        ArrayList<Transaction> debitList = new ArrayList<>();
126
+        for (Transaction t : transactions) {
127
+            if (t.getType().equals(TransactionType.DEBIT)) {
128
+                debitList.add(t);
129
+            }
130
+        }
131
+        return debitList.toArray(new Transaction[0]);
132
+    }
133
+
134
+    Transaction[] getAllCreditTransactions() {
135
+        ArrayList<Transaction> creditList = new ArrayList<>();
136
+        for (Transaction t : transactions) {
137
+            if (t.getType().equals(TransactionType.CREDIT)) {
138
+                creditList.add(t);
139
+            }
140
+        }
141
+        return creditList.toArray(new Transaction[0]);
142
+    }
2 143
 
3 144
     //blind us with your Java eloquence....
4 145
 

+ 1
- 1
Checkbook/src/main/java/GenericAccount.java Wyświetl plik

@@ -1,3 +1,3 @@
1 1
 
2
-public class GenericAccount {
2
+public class GenericAccount<A extends AccountBook> {
3 3
 }

+ 5
- 5
Checkbook/src/main/java/Transaction.java Wyświetl plik

@@ -6,11 +6,11 @@ public class Transaction {
6 6
     private final AtomicReference<LocalDate> date = new AtomicReference<LocalDate>();
7 7
     private String memo;
8 8
     private Payee payee;
9
-    private TransactionType typee; // Credit (reduces the checkbook), Debit (increases the checkbook)
9
+    private TransactionType type; // Credit (reduces the checkbook), Debit (increases the checkbook)
10 10
     private Double amount;
11 11
 
12
-    public Transaction(String memo, Payee payee, TransactionType typee, Double amount) {
13
-        this.typee = typee;
12
+    public Transaction(String memo, Payee payee, TransactionType type, Double amount) {
13
+        this.type = type;
14 14
         this.memo = memo;
15 15
         this.payee = payee;
16 16
         this.amount = amount;
@@ -25,7 +25,7 @@ public class Transaction {
25 25
     }
26 26
 
27 27
     public TransactionType getType() {
28
-        return typee;
28
+        return type;
29 29
     }
30 30
 
31 31
     public String getMemo() {
@@ -45,7 +45,7 @@ public class Transaction {
45 45
     }
46 46
 
47 47
     public Double getAmount() {
48
-        if (this.typee == TransactionType.DEBIT) {
48
+        if (this.type == TransactionType.DEBIT) {
49 49
             return amount;
50 50
         }
51 51
         return (-1.0 * amount);

+ 54
- 0
Checkbook/src/test/java/CheckbookTest.java Wyświetl plik

@@ -1,3 +1,5 @@
1
+import org.junit.Test;
2
+
1 3
 import static org.junit.Assert.*;
2 4
 
3 5
 public class CheckbookTest {
@@ -9,4 +11,56 @@ public class CheckbookTest {
9 11
     @org.junit.After
10 12
     public void tearDown() throws Exception {
11 13
     }
14
+
15
+    @Test
16
+    public void size() {
17
+    }
18
+
19
+    @Test
20
+    public void isEmpty() {
21
+    }
22
+
23
+    @Test
24
+    public void contains() {
25
+    }
26
+
27
+    @Test
28
+    public void iterator() {
29
+    }
30
+
31
+    @Test
32
+    public void toArray() {
33
+    }
34
+
35
+    @Test
36
+    public void toArray1() {
37
+    }
38
+
39
+    @Test
40
+    public void add() {
41
+    }
42
+
43
+    @Test
44
+    public void remove() {
45
+    }
46
+
47
+    @Test
48
+    public void containsAll() {
49
+    }
50
+
51
+    @Test
52
+    public void addAll() {
53
+    }
54
+
55
+    @Test
56
+    public void removeAll() {
57
+    }
58
+
59
+    @Test
60
+    public void retainAll() {
61
+    }
62
+
63
+    @Test
64
+    public void clear() {
65
+    }
12 66
 }