Bläddra i källkod

finished 6 parts

Xcuello 7 år sedan
förälder
incheckning
b7e023d74a

+ 1
- 0
.idea/.name Visa fil

@@ -0,0 +1 @@
1
+interfaces-1

+ 1
- 1
.idea/compiler.xml Visa fil

@@ -10,7 +10,7 @@
10 10
       </profile>
11 11
     </annotationProcessing>
12 12
     <bytecodeTargetLevel>
13
-      <module name="interfaces-1" target="1.5" />
13
+      <module name="interfaces-1" target="7" />
14 14
     </bytecodeTargetLevel>
15 15
   </component>
16 16
 </project>

+ 7
- 0
.idea/misc.xml Visa fil

@@ -1,5 +1,12 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 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>
3 10
   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
4 11
     <output url="file://$PROJECT_DIR$/classes" />
5 12
   </component>

+ 564
- 0
.idea/workspace.xml Visa fil

@@ -0,0 +1,564 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="c915e9a9-ae71-4a10-bb94-bcf3be938196" name="Default Changelist" comment="">
5
+      <change afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" afterDir="false" />
6
+      <change afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" afterDir="false" />
7
+      <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
8
+      <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
9
+      <change beforePath="$PROJECT_DIR$/interfaces-1.iml" beforeDir="false" afterPath="$PROJECT_DIR$/interfaces-1.iml" afterDir="false" />
10
+      <change beforePath="$PROJECT_DIR$/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/pom.xml" afterDir="false" />
11
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" afterDir="false" />
12
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java" afterDir="false" />
13
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" afterDir="false" />
14
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" afterDir="false" />
15
+      <change beforePath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" afterDir="false" />
16
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java" afterDir="false" />
17
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java" afterDir="false" />
18
+      <change beforePath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" afterDir="false" />
19
+    </list>
20
+    <ignored path="$PROJECT_DIR$/bin/" />
21
+    <ignored path="$PROJECT_DIR$/target/" />
22
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
23
+    <option name="SHOW_DIALOG" value="false" />
24
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
25
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
26
+    <option name="LAST_RESOLUTION" value="IGNORE" />
27
+  </component>
28
+  <component name="FUSProjectUsageTrigger">
29
+    <session id="-745651706">
30
+      <usages-collector id="statistics.lifecycle.project">
31
+        <counts>
32
+          <entry key="project.closed" value="3" />
33
+          <entry key="project.open.time.0" value="1" />
34
+          <entry key="project.open.time.1" value="2" />
35
+          <entry key="project.opened" value="3" />
36
+        </counts>
37
+      </usages-collector>
38
+      <usages-collector id="statistics.file.extensions.open">
39
+        <counts>
40
+          <entry key="java" value="16" />
41
+          <entry key="xml" value="1" />
42
+        </counts>
43
+      </usages-collector>
44
+      <usages-collector id="statistics.file.types.open">
45
+        <counts>
46
+          <entry key="JAVA" value="16" />
47
+          <entry key="XML" value="1" />
48
+        </counts>
49
+      </usages-collector>
50
+      <usages-collector id="statistics.file.extensions.edit">
51
+        <counts>
52
+          <entry key="java" value="2928" />
53
+        </counts>
54
+      </usages-collector>
55
+      <usages-collector id="statistics.file.types.edit">
56
+        <counts>
57
+          <entry key="JAVA" value="2928" />
58
+        </counts>
59
+      </usages-collector>
60
+      <usages-collector id="statistics.vcs.git.usages" />
61
+    </session>
62
+  </component>
63
+  <component name="FileEditorManager">
64
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
65
+  </component>
66
+  <component name="FileTemplateManagerImpl">
67
+    <option name="RECENT_TEMPLATES">
68
+      <list>
69
+        <option value="JUnit4 Test Class" />
70
+        <option value="Interface" />
71
+        <option value="Class" />
72
+      </list>
73
+    </option>
74
+  </component>
75
+  <component name="Git.Settings">
76
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
77
+  </component>
78
+  <component name="IdeDocumentHistory">
79
+    <option name="CHANGED_PATHS">
80
+      <list>
81
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java" />
82
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java" />
83
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PersonTest.java" />
84
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java" />
85
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java" />
86
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/instructorTest.java" />
87
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java" />
88
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java" />
89
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java" />
90
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java" />
91
+        <option value="$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java" />
92
+        <option value="$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java" />
93
+      </list>
94
+    </option>
95
+  </component>
96
+  <component name="MavenImportPreferences">
97
+    <option name="importingSettings">
98
+      <MavenImportingSettings>
99
+        <option name="importAutomatically" value="true" />
100
+      </MavenImportingSettings>
101
+    </option>
102
+  </component>
103
+  <component name="ProjectFrameBounds">
104
+    <option name="x" value="10" />
105
+    <option name="y" value="23" />
106
+    <option name="width" value="1260" />
107
+    <option name="height" value="701" />
108
+  </component>
109
+  <component name="ProjectView">
110
+    <navigator proportions="" version="1">
111
+      <foldersAlwaysOnTop value="true" />
112
+    </navigator>
113
+    <panes>
114
+      <pane id="PackagesPane" />
115
+      <pane id="ProjectPane">
116
+        <subPane>
117
+          <expand>
118
+            <path>
119
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
120
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
121
+            </path>
122
+            <path>
123
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
124
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
125
+              <item name="src" type="462c0819:PsiDirectoryNode" />
126
+            </path>
127
+            <path>
128
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
129
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
130
+              <item name="src" type="462c0819:PsiDirectoryNode" />
131
+              <item name="main" type="462c0819:PsiDirectoryNode" />
132
+            </path>
133
+            <path>
134
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
135
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
136
+              <item name="src" type="462c0819:PsiDirectoryNode" />
137
+              <item name="main" type="462c0819:PsiDirectoryNode" />
138
+              <item name="java" type="462c0819:PsiDirectoryNode" />
139
+            </path>
140
+            <path>
141
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
142
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
143
+              <item name="src" type="462c0819:PsiDirectoryNode" />
144
+              <item name="main" type="462c0819:PsiDirectoryNode" />
145
+              <item name="java" type="462c0819:PsiDirectoryNode" />
146
+              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
147
+            </path>
148
+            <path>
149
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
150
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
151
+              <item name="src" type="462c0819:PsiDirectoryNode" />
152
+              <item name="test" type="462c0819:PsiDirectoryNode" />
153
+            </path>
154
+            <path>
155
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
156
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
157
+              <item name="src" type="462c0819:PsiDirectoryNode" />
158
+              <item name="test" type="462c0819:PsiDirectoryNode" />
159
+              <item name="java" type="462c0819:PsiDirectoryNode" />
160
+            </path>
161
+            <path>
162
+              <item name="interfaces-1" type="b2602c69:ProjectViewProjectNode" />
163
+              <item name="CR-MacroLabs-OOP-InstructorStudentClassroom" type="462c0819:PsiDirectoryNode" />
164
+              <item name="src" type="462c0819:PsiDirectoryNode" />
165
+              <item name="test" type="462c0819:PsiDirectoryNode" />
166
+              <item name="java" type="462c0819:PsiDirectoryNode" />
167
+              <item name="interfaces" type="462c0819:PsiDirectoryNode" />
168
+            </path>
169
+          </expand>
170
+          <select />
171
+        </subPane>
172
+      </pane>
173
+      <pane id="Scope" />
174
+    </panes>
175
+  </component>
176
+  <component name="PropertiesComponent">
177
+    <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1541286408831" />
178
+    <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrary" value="JUnit4" />
179
+    <property name="com.intellij.testIntegration.createTest.CreateTestDialog.defaultLibrarySuperClass.JUnit4" value="" />
180
+    <property name="last_opened_file_path" value="$PROJECT_DIR$" />
181
+    <property name="project.structure.last.edited" value="Project" />
182
+    <property name="project.structure.proportion" value="0.0" />
183
+    <property name="project.structure.side.proportion" value="0.0" />
184
+  </component>
185
+  <component name="RecentsManager">
186
+    <key name="CreateTestDialog.RecentsKey">
187
+      <recent name="io.zipcoder.interfaces" />
188
+    </key>
189
+    <key name="CreateTestDialog.Recents.Supers">
190
+      <recent name="" />
191
+    </key>
192
+    <key name="CreateClassDialog.RecentsKey">
193
+      <recent name="io.zipcoder.interfaces" />
194
+    </key>
195
+  </component>
196
+  <component name="RunDashboard">
197
+    <option name="ruleStates">
198
+      <list>
199
+        <RuleState>
200
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
201
+        </RuleState>
202
+        <RuleState>
203
+          <option name="name" value="StatusDashboardGroupingRule" />
204
+        </RuleState>
205
+      </list>
206
+    </option>
207
+  </component>
208
+  <component name="RunManager" selected="JUnit.PeopleTest.testRemoveAll">
209
+    <configuration name="PeopleTest.testFindById" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
210
+      <module name="interfaces-1" />
211
+      <extension name="coverage">
212
+        <pattern>
213
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
214
+          <option name="ENABLED" value="true" />
215
+        </pattern>
216
+      </extension>
217
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
218
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
219
+      <option name="METHOD_NAME" value="testFindById" />
220
+      <option name="TEST_OBJECT" value="method" />
221
+      <method v="2">
222
+        <option name="Make" enabled="true" />
223
+      </method>
224
+    </configuration>
225
+    <configuration name="PeopleTest.testGetArray" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
226
+      <module name="interfaces-1" />
227
+      <extension name="coverage">
228
+        <pattern>
229
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
230
+          <option name="ENABLED" value="true" />
231
+        </pattern>
232
+      </extension>
233
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
234
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
235
+      <option name="METHOD_NAME" value="testGetArray" />
236
+      <option name="TEST_OBJECT" value="method" />
237
+      <method v="2">
238
+        <option name="Make" enabled="true" />
239
+      </method>
240
+    </configuration>
241
+    <configuration name="PeopleTest.testRemoveAll" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
242
+      <module name="interfaces-1" />
243
+      <extension name="coverage">
244
+        <pattern>
245
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
246
+          <option name="ENABLED" value="true" />
247
+        </pattern>
248
+      </extension>
249
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
250
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
251
+      <option name="METHOD_NAME" value="testRemoveAll" />
252
+      <option name="TEST_OBJECT" value="method" />
253
+      <method v="2">
254
+        <option name="Make" enabled="true" />
255
+      </method>
256
+    </configuration>
257
+    <configuration name="PeopleTest.testRemovePersonById" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
258
+      <module name="interfaces-1" />
259
+      <extension name="coverage">
260
+        <pattern>
261
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
262
+          <option name="ENABLED" value="true" />
263
+        </pattern>
264
+      </extension>
265
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
266
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
267
+      <option name="METHOD_NAME" value="testRemovePersonById" />
268
+      <option name="TEST_OBJECT" value="method" />
269
+      <method v="2">
270
+        <option name="Make" enabled="true" />
271
+      </method>
272
+    </configuration>
273
+    <configuration name="PeopleTest.testRemovePersonChangeSize" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
274
+      <module name="interfaces-1" />
275
+      <extension name="coverage">
276
+        <pattern>
277
+          <option name="PATTERN" value="io.zipcoder.interfaces.*" />
278
+          <option name="ENABLED" value="true" />
279
+        </pattern>
280
+      </extension>
281
+      <option name="PACKAGE_NAME" value="io.zipcoder.interfaces" />
282
+      <option name="MAIN_CLASS_NAME" value="io.zipcoder.interfaces.PeopleTest" />
283
+      <option name="METHOD_NAME" value="testRemovePersonChangeSize" />
284
+      <option name="TEST_OBJECT" value="method" />
285
+      <method v="2">
286
+        <option name="Make" enabled="true" />
287
+      </method>
288
+    </configuration>
289
+    <list>
290
+      <item itemvalue="JUnit.PeopleTest.testRemovePersonChangeSize" />
291
+      <item itemvalue="JUnit.PeopleTest.testRemovePersonById" />
292
+      <item itemvalue="JUnit.PeopleTest.testFindById" />
293
+      <item itemvalue="JUnit.PeopleTest.testGetArray" />
294
+      <item itemvalue="JUnit.PeopleTest.testRemoveAll" />
295
+    </list>
296
+    <recent_temporary>
297
+      <list>
298
+        <item itemvalue="JUnit.PeopleTest.testRemoveAll" />
299
+        <item itemvalue="JUnit.PeopleTest.testGetArray" />
300
+        <item itemvalue="JUnit.PeopleTest.testFindById" />
301
+        <item itemvalue="JUnit.PeopleTest.testRemovePersonById" />
302
+        <item itemvalue="JUnit.PeopleTest.testRemovePersonChangeSize" />
303
+      </list>
304
+    </recent_temporary>
305
+  </component>
306
+  <component name="SvnConfiguration">
307
+    <configuration />
308
+  </component>
309
+  <component name="TaskManager">
310
+    <task active="true" id="Default" summary="Default task">
311
+      <changelist id="c915e9a9-ae71-4a10-bb94-bcf3be938196" name="Default Changelist" comment="" />
312
+      <created>1541265600240</created>
313
+      <option name="number" value="Default" />
314
+      <option name="presentableId" value="Default" />
315
+      <updated>1541265600240</updated>
316
+    </task>
317
+    <servers />
318
+  </component>
319
+  <component name="TestHistory">
320
+    <history-entry file="PeopleTest_testRemovePersonById - 2018.11.03 at 18h 18m 14s.xml">
321
+      <configuration name="PeopleTest.testRemovePersonById" configurationId="JUnit" />
322
+    </history-entry>
323
+    <history-entry file="PeopleTest_testRemovePersonById - 2018.11.03 at 18h 18m 37s.xml">
324
+      <configuration name="PeopleTest.testRemovePersonById" configurationId="JUnit" />
325
+    </history-entry>
326
+    <history-entry file="PeopleTest_testRemovePersonById - 2018.11.03 at 18h 23m 41s.xml">
327
+      <configuration name="PeopleTest.testRemovePersonById" configurationId="JUnit" />
328
+    </history-entry>
329
+    <history-entry file="PeopleTest_testFindById - 2018.11.03 at 18h 36m 37s.xml">
330
+      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
331
+    </history-entry>
332
+    <history-entry file="PeopleTest_testFindById - 2018.11.03 at 18h 37m 30s.xml">
333
+      <configuration name="PeopleTest.testFindById" configurationId="JUnit" />
334
+    </history-entry>
335
+    <history-entry file="PeopleTest_testGetArray - 2018.11.03 at 18h 47m 19s.xml">
336
+      <configuration name="PeopleTest.testGetArray" configurationId="JUnit" />
337
+    </history-entry>
338
+    <history-entry file="PeopleTest_testGetArray - 2018.11.03 at 18h 50m 06s.xml">
339
+      <configuration name="PeopleTest.testGetArray" configurationId="JUnit" />
340
+    </history-entry>
341
+    <history-entry file="PeopleTest_testGetArray - 2018.11.03 at 18h 59m 34s.xml">
342
+      <configuration name="PeopleTest.testGetArray" configurationId="JUnit" />
343
+    </history-entry>
344
+    <history-entry file="PeopleTest_testRemoveAll - 2018.11.03 at 19h 03m 38s.xml">
345
+      <configuration name="PeopleTest.testRemoveAll" configurationId="JUnit" />
346
+    </history-entry>
347
+    <history-entry file="PeopleTest_testRemoveAll - 2018.11.03 at 19h 04m 28s.xml">
348
+      <configuration name="PeopleTest.testRemoveAll" configurationId="JUnit" />
349
+    </history-entry>
350
+  </component>
351
+  <component name="ToolWindowManager">
352
+    <frame x="10" y="23" width="1260" height="701" extended-state="0" />
353
+    <layout>
354
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25779969" />
355
+      <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
356
+      <window_info id="Image Layers" order="2" />
357
+      <window_info id="Designer" order="3" />
358
+      <window_info id="UI Designer" order="4" />
359
+      <window_info id="Capture Tool" order="5" />
360
+      <window_info id="Favorites" order="6" side_tool="true" />
361
+      <window_info anchor="bottom" id="Messages" order="0" weight="0.32840723" />
362
+      <window_info anchor="bottom" id="Message" order="1" />
363
+      <window_info anchor="bottom" id="Find" order="2" />
364
+      <window_info anchor="bottom" id="Run" order="3" sideWeight="0.49917898" weight="0.32840723" />
365
+      <window_info anchor="bottom" id="Debug" order="4" weight="0.4" />
366
+      <window_info anchor="bottom" id="Cvs" order="5" weight="0.25" />
367
+      <window_info anchor="bottom" id="Inspection" order="6" weight="0.4" />
368
+      <window_info anchor="bottom" id="TODO" order="7" />
369
+      <window_info anchor="bottom" id="Terminal" order="8" weight="0.32840723" />
370
+      <window_info anchor="bottom" id="Event Log" order="9" sideWeight="0.500821" side_tool="true" weight="0.32840723" />
371
+      <window_info anchor="bottom" id="Version Control" order="10" />
372
+      <window_info anchor="bottom" id="Thumbnails" order="11" weight="0.32840723" />
373
+      <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
374
+      <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
375
+      <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
376
+      <window_info anchor="right" id="Palette" order="3" />
377
+      <window_info anchor="right" id="Capture Analysis" order="4" />
378
+      <window_info anchor="right" id="Theme Preview" order="5" />
379
+      <window_info anchor="right" id="Palette&#9;" order="6" />
380
+      <window_info anchor="right" id="Maven Projects" order="7" />
381
+    </layout>
382
+  </component>
383
+  <component name="VcsContentAnnotationSettings">
384
+    <option name="myLimit" value="2678400000" />
385
+  </component>
386
+  <component name="editorHistoryManager">
387
+    <entry file="file://$PROJECT_DIR$/pom.xml">
388
+      <provider selected="true" editor-type-id="text-editor" />
389
+    </entry>
390
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PersonTest.java" />
391
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/TestPerson.java">
392
+      <provider selected="true" editor-type-id="text-editor">
393
+        <state relative-caret-position="459">
394
+          <caret line="37" column="5" selection-start-line="37" selection-start-column="5" selection-end-line="37" selection-end-column="5" />
395
+          <folding>
396
+            <element signature="imports" expanded="true" />
397
+          </folding>
398
+        </state>
399
+      </provider>
400
+    </entry>
401
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Person.java">
402
+      <provider selected="true" editor-type-id="text-editor">
403
+        <state relative-caret-position="330">
404
+          <caret line="26" column="1" selection-start-line="26" selection-start-column="1" selection-end-line="26" selection-end-column="1" />
405
+        </state>
406
+      </provider>
407
+    </entry>
408
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Teacher.java">
409
+      <provider selected="true" editor-type-id="text-editor">
410
+        <state relative-caret-position="120">
411
+          <caret line="8" selection-start-line="8" selection-end-line="8" />
412
+        </state>
413
+      </provider>
414
+    </entry>
415
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/InstructorTest.java">
416
+      <provider selected="true" editor-type-id="text-editor">
417
+        <state relative-caret-position="532">
418
+          <caret line="75" selection-start-line="75" selection-end-line="75" />
419
+          <folding>
420
+            <element signature="imports" expanded="true" />
421
+          </folding>
422
+        </state>
423
+      </provider>
424
+    </entry>
425
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/PeopleTest.java">
426
+      <provider selected="true" editor-type-id="text-editor">
427
+        <state relative-caret-position="532">
428
+          <caret line="163" column="43" selection-start-line="163" selection-start-column="43" selection-end-line="163" selection-end-column="43" />
429
+          <folding>
430
+            <element signature="imports" expanded="true" />
431
+          </folding>
432
+        </state>
433
+      </provider>
434
+    </entry>
435
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Student.java">
436
+      <provider selected="true" editor-type-id="text-editor">
437
+        <state relative-caret-position="285">
438
+          <caret line="19" column="30" selection-start-line="19" selection-start-column="30" selection-end-line="19" selection-end-column="30" />
439
+        </state>
440
+      </provider>
441
+    </entry>
442
+    <entry file="file://$PROJECT_DIR$/src/test/java/io/zipcoder/interfaces/StudentTest.java">
443
+      <provider selected="true" editor-type-id="text-editor">
444
+        <state relative-caret-position="442">
445
+          <caret line="51" column="5" selection-start-line="51" selection-start-column="5" selection-end-line="51" selection-end-column="5" />
446
+          <folding>
447
+            <element signature="imports" expanded="true" />
448
+          </folding>
449
+        </state>
450
+      </provider>
451
+    </entry>
452
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/People.java">
453
+      <provider selected="true" editor-type-id="text-editor">
454
+        <state relative-caret-position="419">
455
+          <caret line="65" column="29" selection-start-line="65" selection-start-column="29" selection-end-line="65" selection-end-column="29" />
456
+          <folding>
457
+            <element signature="imports" expanded="true" />
458
+          </folding>
459
+        </state>
460
+      </provider>
461
+    </entry>
462
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Learner.java">
463
+      <provider selected="true" editor-type-id="text-editor">
464
+        <state relative-caret-position="60">
465
+          <caret line="4" column="44" selection-start-line="4" selection-start-column="44" selection-end-line="4" selection-end-column="44" />
466
+        </state>
467
+      </provider>
468
+    </entry>
469
+    <entry file="file://$PROJECT_DIR$/src/main/java/io/zipcoder/interfaces/Instructor.java">
470
+      <provider selected="true" editor-type-id="text-editor">
471
+        <state relative-caret-position="270">
472
+          <caret line="18" column="65" selection-start-line="18" selection-start-column="65" selection-end-line="18" selection-end-column="65" />
473
+        </state>
474
+      </provider>
475
+    </entry>
476
+  </component>
477
+  <component name="masterDetails">
478
+    <states>
479
+      <state key="ArtifactsStructureConfigurable.UI">
480
+        <settings>
481
+          <artifact-editor />
482
+          <splitter-proportions>
483
+            <option name="proportions">
484
+              <list>
485
+                <option value="0.2" />
486
+              </list>
487
+            </option>
488
+          </splitter-proportions>
489
+        </settings>
490
+      </state>
491
+      <state key="FacetStructureConfigurable.UI">
492
+        <settings>
493
+          <last-edited>No facets are configured</last-edited>
494
+          <splitter-proportions>
495
+            <option name="proportions">
496
+              <list>
497
+                <option value="0.2" />
498
+              </list>
499
+            </option>
500
+          </splitter-proportions>
501
+        </settings>
502
+      </state>
503
+      <state key="GlobalLibrariesConfigurable.UI">
504
+        <settings>
505
+          <splitter-proportions>
506
+            <option name="proportions">
507
+              <list>
508
+                <option value="0.2" />
509
+              </list>
510
+            </option>
511
+          </splitter-proportions>
512
+        </settings>
513
+      </state>
514
+      <state key="JdkListConfigurable.UI">
515
+        <settings>
516
+          <last-edited>1.8</last-edited>
517
+          <splitter-proportions>
518
+            <option name="proportions">
519
+              <list>
520
+                <option value="0.2" />
521
+              </list>
522
+            </option>
523
+          </splitter-proportions>
524
+        </settings>
525
+      </state>
526
+      <state key="ModuleStructureConfigurable.UI">
527
+        <settings>
528
+          <last-edited>interfaces-1</last-edited>
529
+          <splitter-proportions>
530
+            <option name="proportions">
531
+              <list>
532
+                <option value="0.2" />
533
+                <option value="0.6" />
534
+              </list>
535
+            </option>
536
+          </splitter-proportions>
537
+        </settings>
538
+      </state>
539
+      <state key="ProjectJDKs.UI">
540
+        <settings>
541
+          <last-edited>1.8</last-edited>
542
+          <splitter-proportions>
543
+            <option name="proportions">
544
+              <list>
545
+                <option value="0.2" />
546
+              </list>
547
+            </option>
548
+          </splitter-proportions>
549
+        </settings>
550
+      </state>
551
+      <state key="ProjectLibrariesConfigurable.UI">
552
+        <settings>
553
+          <splitter-proportions>
554
+            <option name="proportions">
555
+              <list>
556
+                <option value="0.2" />
557
+              </list>
558
+            </option>
559
+          </splitter-proportions>
560
+        </settings>
561
+      </state>
562
+    </states>
563
+  </component>
564
+</project>

+ 11
- 5
interfaces-1.iml Visa fil

@@ -1,10 +1,16 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2
-<module type="JAVA_MODULE" version="4">
3
-  <component name="NewModuleRootManager">
4
-    <output url="file://$MODULE_DIR$/bin" />
5
-    <exclude-output />
6
-    <content url="file://$MODULE_DIR$" />
2
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
4
+    <output url="file://$MODULE_DIR$/target/classes" />
5
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
6
+    <content url="file://$MODULE_DIR$">
7
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8
+      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9
+      <excludeFolder url="file://$MODULE_DIR$/target" />
10
+    </content>
7 11
     <orderEntry type="inheritedJdk" />
8 12
     <orderEntry type="sourceFolder" forTests="false" />
13
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
14
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
9 15
   </component>
10 16
 </module>

+ 12
- 0
pom.xml Visa fil

@@ -5,6 +5,18 @@
5 5
   <groupId>io.zipcoder</groupId>
6 6
   <artifactId>interfaces-1</artifactId>
7 7
   <version>0.0.1-SNAPSHOT</version>
8
+  <build>
9
+    <plugins>
10
+      <plugin>
11
+        <groupId>org.apache.maven.plugins</groupId>
12
+        <artifactId>maven-compiler-plugin</artifactId>
13
+        <configuration>
14
+          <source>7</source>
15
+          <target>7</target>
16
+        </configuration>
17
+      </plugin>
18
+    </plugins>
19
+  </build>
8 20
   <packaging>jar</packaging>
9 21
 
10 22
   <name>interfaces-1</name>

+ 25
- 1
src/main/java/io/zipcoder/interfaces/Instructor.java Visa fil

@@ -1,4 +1,28 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3
-public class Instructor {
3
+public class Instructor extends Person implements Teacher {
4
+
5
+
6
+    public Instructor(int objectId) {
7
+
8
+        super(objectId);
9
+    }
10
+
11
+    public void teach(Learner learner, double numberOfHours) {
12
+
13
+        learner.learn(numberOfHours);
14
+
15
+    }
16
+
17
+    public void lecture(Learner[] learners, double numberOfHours) {
18
+
19
+        double numberOfHoursPerLearner = numberOfHours / learners.length;
20
+
21
+        for (Learner learner : learners){
22
+
23
+            learner.learn(numberOfHoursPerLearner);
24
+        }
25
+
26
+
27
+    }
4 28
 }

+ 2
- 0
src/main/java/io/zipcoder/interfaces/Learner.java Visa fil

@@ -1,4 +1,6 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3 3
 public interface Learner {
4
+
5
+    public void learn(double numberOfHours);
4 6
 }

+ 70
- 0
src/main/java/io/zipcoder/interfaces/People.java Visa fil

@@ -0,0 +1,70 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import java.util.ArrayList;
4
+import java.util.List;
5
+import java.util.Stack;
6
+
7
+public class People {
8
+
9
+    List<Person> personList = new ArrayList<>();
10
+
11
+    public void add(Person person1) {
12
+
13
+        personList.add(person1);
14
+
15
+    }
16
+
17
+    public int getSize() {
18
+
19
+        return personList.size();
20
+    }
21
+
22
+
23
+    public boolean remove(Person person1) {
24
+
25
+        return personList.remove(person1);
26
+    }
27
+
28
+    public void remove(long i) {
29
+
30
+        Person personToRemove = null;
31
+
32
+        for (Person person : personList) {
33
+
34
+            if (person.getId() == i) {
35
+
36
+                personToRemove = person;
37
+
38
+            }
39
+
40
+        }
41
+        personList.remove(personToRemove);
42
+
43
+    }
44
+
45
+    public Person findById(long i) {
46
+
47
+        Person personToCapture = null;
48
+
49
+        for (Person person : personList) {
50
+
51
+            if (person.getId() == i) {
52
+
53
+                personToCapture = person;
54
+
55
+            }
56
+
57
+        }
58
+        return personToCapture;
59
+    }
60
+
61
+    public Object[] getArray() {
62
+
63
+        return personList.toArray();
64
+    }
65
+
66
+    public boolean removeAll() {
67
+
68
+        return personList.removeAll(personList);
69
+    }
70
+}

+ 22
- 0
src/main/java/io/zipcoder/interfaces/Person.java Visa fil

@@ -2,4 +2,26 @@ package io.zipcoder.interfaces;
2 2
 
3 3
 public class Person {
4 4
 
5
+    private long id;
6
+
7
+    private String name;
8
+
9
+    public Person(int objectId) {
10
+
11
+        this.id = objectId;
12
+
13
+    }
14
+
15
+    public long getId() {
16
+
17
+        return this.id;
18
+    }
19
+
20
+    public String getName() {
21
+        return name;
22
+    }
23
+
24
+    public void setName(String name) {
25
+        this.name = name;
26
+    }
5 27
 }

+ 19
- 1
src/main/java/io/zipcoder/interfaces/Student.java Visa fil

@@ -1,4 +1,22 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3
-public class Student {
3
+public class Student extends Person implements Learner{
4
+
5
+    private double totalStudytime;
6
+
7
+    public Student(int objectId) {
8
+
9
+        super(objectId);
10
+    }
11
+
12
+    public void learn(double numberOfHours) {
13
+
14
+        totalStudytime += numberOfHours;
15
+
16
+    }
17
+
18
+    public double getTotalStudyTime() {
19
+
20
+        return totalStudytime;
21
+    }
4 22
 }

+ 4
- 0
src/main/java/io/zipcoder/interfaces/Teacher.java Visa fil

@@ -1,4 +1,8 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3 3
 public interface Teacher {
4
+
5
+    public void teach(Learner learner, double numberOfHours);
6
+
7
+    public void lecture(Learner[] learner,double numberOfHours);
4 8
 }

+ 73
- 0
src/test/java/io/zipcoder/interfaces/InstructorTest.java Visa fil

@@ -1,4 +1,77 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
3 6
 public class InstructorTest {
7
+
8
+    @Test
9
+    public void testImplementation() {
10
+
11
+        //Given
12
+        Instructor instructor = new Instructor (5);
13
+
14
+
15
+
16
+        //Then
17
+        Assert.assertTrue(instructor instanceof Teacher);
18
+    }
19
+
20
+    @Test
21
+    public void testInheritance() {
22
+        //Given
23
+        Person instructor = new Instructor (5);
24
+
25
+        //Then
26
+        Assert.assertTrue(instructor instanceof Person);
27
+
28
+    }
29
+
30
+    @Test
31
+    public void testTeach() {
32
+        //Given
33
+        Student student = new Student(5);
34
+
35
+        Instructor instructor = new Instructor (5);
36
+
37
+
38
+        double expected = 5.0;
39
+
40
+        student.learn(5.0);
41
+
42
+        //Then
43
+        double actual = student.getTotalStudyTime();
44
+
45
+        //When
46
+        Assert.assertEquals(expected, actual, 0);
47
+
48
+
49
+    }
50
+
51
+    @Test
52
+    public void testLecture() {
53
+
54
+        //Given
55
+        Student student1 = new Student(1);
56
+        Student student2 = new Student(2);
57
+        Student student3 = new Student(3);
58
+        Student student4 = new Student(4);
59
+        Student student5 = new Student(5);
60
+
61
+        Student[] students = {student1,student2,student3,student4,student5};
62
+
63
+        Instructor instructor = new Instructor(5);
64
+
65
+        double expected = 2;
66
+
67
+        //When
68
+        instructor.lecture(students,10);
69
+
70
+        double actual = students[0].getTotalStudyTime();
71
+        //Then
72
+
73
+        Assert.assertEquals(expected,actual,0);
74
+    }
75
+
76
+
4 77
 }

+ 168
- 0
src/test/java/io/zipcoder/interfaces/PeopleTest.java Visa fil

@@ -0,0 +1,168 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Before;
5
+import org.junit.Test;
6
+
7
+import java.util.ArrayList;
8
+import java.util.Arrays;
9
+import java.util.List;
10
+
11
+public class PeopleTest {
12
+
13
+    private People people;
14
+    private Person person1;
15
+    private Person person2;
16
+    private Person person3;
17
+    private Person person4;
18
+
19
+
20
+    @Before
21
+    public void setup() {
22
+        people = new People();
23
+        person1 = new Person(5);
24
+        person2 = new Person(4);
25
+        person3 = new Person(3);
26
+        person4 = new Person(2);
27
+
28
+
29
+    }
30
+
31
+    @Test
32
+    public void testAdd() {
33
+
34
+        //Given
35
+
36
+        int expected = 1;
37
+
38
+        //When
39
+        people.add(person1);
40
+
41
+        int actual = people.getSize();
42
+
43
+
44
+        //Then
45
+
46
+        Assert.assertEquals(expected, actual);
47
+    }
48
+
49
+    @Test
50
+    public void testRemoveByPerson() {
51
+
52
+        //Given
53
+        people.add(person1);
54
+        people.add(person2);
55
+        people.add(person3);
56
+        people.add(person4);
57
+
58
+        //When
59
+        Assert.assertTrue(people.remove(person1));
60
+
61
+        //Then
62
+
63
+
64
+    }
65
+
66
+    @Test
67
+    public void testRemovePersonChangeSize() {
68
+
69
+        //Given
70
+        people.add(person1);
71
+        people.add(person2);
72
+        people.add(person3);
73
+        people.add(person4);
74
+
75
+        //When
76
+        people.remove(person1);
77
+
78
+        int expected = 3;
79
+
80
+        int actual = people.getSize();
81
+
82
+        //Then
83
+        Assert.assertEquals(expected, actual);
84
+
85
+
86
+    }
87
+
88
+    @Test
89
+    public void testRemovePersonById() {
90
+
91
+        //Given
92
+        people.add(person1);
93
+        people.add(person2);
94
+        people.add(person3);
95
+        people.add(person4);
96
+
97
+        //When
98
+        people.remove(5);
99
+
100
+        int expected = 3;
101
+
102
+        int actual = people.getSize();
103
+
104
+        //Then
105
+        Assert.assertEquals(expected, actual);
106
+
107
+
108
+    }
109
+
110
+    @Test
111
+    public void testFindById() {
112
+
113
+        //Given
114
+        people.add(person1);
115
+        people.add(person2);
116
+        people.add(person3);
117
+        people.add(person4);
118
+
119
+        //When
120
+        Person expected = person1;
121
+
122
+        Person actual = people.findById(5);
123
+
124
+        //Then
125
+        Assert.assertEquals(expected, actual);
126
+
127
+
128
+
129
+    }
130
+
131
+    @Test
132
+    public void testGetArray() {
133
+
134
+        //Given
135
+        people.add(person1);
136
+        people.add(person2);
137
+        people.add(person3);
138
+        people.add(person4);
139
+
140
+        //When
141
+        Object[]expected ={person1,person2,person3,person4};
142
+
143
+        Object[] actual = people.getArray();
144
+
145
+        //Then
146
+        Assert.assertArrayEquals(expected, actual);
147
+    }
148
+
149
+    @Test
150
+    public void testRemoveAll() {
151
+
152
+        //Given
153
+        people.add(person1);
154
+        people.add(person2);
155
+        people.add(person3);
156
+        people.add(person4);
157
+
158
+        //When
159
+        Object[]expected ={person1,person2,person3,person4};
160
+
161
+        Object[] actual = people.getArray();
162
+
163
+        //Then
164
+        Assert.assertTrue(people.removeAll());
165
+    }
166
+}
167
+
168
+

+ 49
- 1
src/test/java/io/zipcoder/interfaces/StudentTest.java Visa fil

@@ -1,5 +1,53 @@
1
+package io.zipcoder.interfaces;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
1 6
 import static org.junit.Assert.*;
2 7
 
3 8
 public class StudentTest {
4 9
 
5
-}
10
+    @Test
11
+    public void testImplementation() {
12
+
13
+        //Given
14
+        Student student = new Student(5);
15
+
16
+
17
+
18
+        //Then
19
+        Assert.assertTrue(student instanceof Learner);
20
+    }
21
+
22
+    @Test
23
+    public void testInheritance() {
24
+        //Given
25
+        Person student = new Student(5);
26
+
27
+        //Then
28
+        Assert.assertTrue(student instanceof Person);
29
+
30
+    }
31
+
32
+    @Test
33
+    public void testLearn() {
34
+        //Given
35
+        Student student = new Student(5);
36
+
37
+        double expected = 4.5;
38
+
39
+        student.learn(4.5);
40
+
41
+        //Then
42
+        double actual = student.getTotalStudyTime();
43
+
44
+        //When
45
+        Assert.assertEquals(expected, actual, 0);
46
+
47
+
48
+    }
49
+
50
+
51
+
52
+    }
53
+

+ 35
- 0
src/test/java/io/zipcoder/interfaces/TestPerson.java Visa fil

@@ -1,5 +1,40 @@
1 1
 package io.zipcoder.interfaces;
2 2
 
3
+import org.junit.Assert;
4
+import org.junit.Test;
5
+
3 6
 public class TestPerson {
4 7
 
8
+    @Test
9
+    public void testConstructor() {
10
+
11
+        //Given
12
+        Person person = new Person( 5);
13
+
14
+        long expected = 5;
15
+
16
+        //When
17
+        long actual = person.getId();
18
+
19
+        //Then
20
+        Assert.assertEquals(expected,actual);
21
+    }
22
+
23
+    @Test
24
+    public void testSetAndGetName() {
25
+        //Given
26
+        Person person = new Person(5);
27
+
28
+        person.setName("Xzavia");
29
+
30
+        String expected = "Xzavia";
31
+
32
+        //When
33
+
34
+        String actual = person.getName();
35
+
36
+        //Then
37
+        Assert.assertEquals(expected,actual);
38
+    }
39
+
5 40
 }