Leon 7 年之前
父節點
當前提交
f13e1369f5
共有 24 個檔案被更改,包括 123705 行新增123748 行删除
  1. 185
    273
      .idea/workspace.xml
  2. 1
    7
      src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java
  3. 2
    1
      src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java
  4. 17
    1
      src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java
  5. 1
    1
      src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java
  6. 19
    3
      src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java
  7. 1
    1
      src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java
  8. 1
    1
      src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java
  9. 1
    0
      src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java
  10. 5
    1
      src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java
  11. 31
    1
      src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java
  12. 1
    18
      src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java
  13. 123439
    123439
      target/PersonWarehouse.leonlog
  14. 二進制
      target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class
  15. 二進制
      target/classes/com/zipcodewilmington/streams/conversions/ArrayConverter.class
  16. 二進制
      target/classes/com/zipcodewilmington/streams/conversions/ConversionAgent.class
  17. 二進制
      target/classes/com/zipcodewilmington/streams/conversions/ListConverter.class
  18. 二進制
      target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class
  19. 二進制
      target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils$1.class
  20. 二進制
      target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils.class
  21. 二進制
      target/classes/com/zipcodewilmington/streams/tools/StringUtils.class
  22. 1
    1
      target/global.leonlog
  23. 二進制
      target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPerson.class
  24. 二進制
      target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.class

+ 185
- 273
.idea/workspace.xml 查看文件

2
 <project version="4">
2
 <project version="4">
3
   <component name="ChangeListManager">
3
   <component name="ChangeListManager">
4
     <list default="true" id="30b7e4a0-b899-49c3-865c-0311dfadae62" name="Default" comment="">
4
     <list default="true" id="30b7e4a0-b899-49c3-865c-0311dfadae62" name="Default" comment="">
5
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" />
6
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/DateUtils.java" />
7
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerHandler.java" />
8
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerWarehouse.java" />
9
-      <change type="DELETED" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/Person$PersonProperty.class" afterPath="" />
10
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/StreamFilter.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/StreamFilter.class" />
11
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/StreamMap.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/StreamMap.class" />
12
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/Person.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/Person.class" />
13
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/PersonFactory.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/PersonFactory.class" />
5
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class" />
6
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ArrayConverter.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ArrayConverter.class" />
14
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ConversionAgent.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ConversionAgent.class" />
7
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ConversionAgent.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ConversionAgent.class" />
8
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ListConverter.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/ListConverter.class" />
15
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class" />
9
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class" />
10
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils$1.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils$1.class" />
11
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils.class" />
16
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/StringUtils.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/StringUtils.class" />
12
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/StringUtils.class" afterPath="$PROJECT_DIR$/target/classes/com/zipcodewilmington/streams/tools/StringUtils.class" />
17
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/TestStreamFilter.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/TestStreamFilter.class" />
18
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/TestStreamMap.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/TestStreamMap.class" />
19
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/TestSuiteFullRegression.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/TestSuiteFullRegression.class" />
20
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPerson.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPerson.class" />
21
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.class" />
22
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConversionAgent.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConversionAgent.class" />
23
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConverterArray.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConverterArray.class" />
24
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConverterList.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConverterList.class" />
25
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConverterStream.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestConverterStream.class" />
26
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestSuiteConversionRegression.class" afterPath="$PROJECT_DIR$/target/test-classes/com/zipcodewilmington/streams/conversions/TestSuiteConversionRegression.class" />
27
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
13
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
28
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java" />
29
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java" />
30
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" />
14
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" />
31
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
15
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
16
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" />
17
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java" />
32
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java" />
18
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java" />
19
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java" />
33
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java" />
20
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java" />
21
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java" />
34
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" />
22
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" afterPath="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" />
35
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java" />
36
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" />
23
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" />
37
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" />
24
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" />
38
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConversionAgent.java" afterPath="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConversionAgent.java" />
25
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/PersonWarehouse.leonlog" afterPath="$PROJECT_DIR$/target/PersonWarehouse.leonlog" />
26
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/target/global.leonlog" afterPath="$PROJECT_DIR$/target/global.leonlog" />
39
     </list>
27
     </list>
40
     <ignored path="$PROJECT_DIR$/out/" />
28
     <ignored path="$PROJECT_DIR$/out/" />
41
     <ignored path="$PROJECT_DIR$/target/" />
29
     <ignored path="$PROJECT_DIR$/target/" />
50
   <component name="ExportTestResults" outputFolder="$PROJECT_DIR$" openResultsInEditor="true" userTempatePath="" />
38
   <component name="ExportTestResults" outputFolder="$PROJECT_DIR$" openResultsInEditor="true" userTempatePath="" />
51
   <component name="FileEditorManager">
39
   <component name="FileEditorManager">
52
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
40
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
53
-      <file leaf-file-name="StreamFilter.java" pinned="false" current-in-tab="false">
41
+      <file leaf-file-name="StreamFilter.java" pinned="false" current-in-tab="true">
54
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
42
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
55
           <provider selected="true" editor-type-id="text-editor">
43
           <provider selected="true" editor-type-id="text-editor">
56
-            <state relative-caret-position="309">
57
-              <caret line="90" column="101" lean-forward="true" selection-start-line="90" selection-start-column="101" selection-end-line="90" selection-end-column="101" />
58
-              <folding>
59
-                <element signature="e#690#691#0" expanded="true" />
60
-                <element signature="e#788#789#0" expanded="true" />
61
-              </folding>
44
+            <state relative-caret-position="-514">
45
+              <caret line="36" column="10" lean-forward="false" selection-start-line="36" selection-start-column="10" selection-end-line="36" selection-end-column="10" />
46
+              <folding />
62
             </state>
47
             </state>
63
           </provider>
48
           </provider>
64
         </entry>
49
         </entry>
65
       </file>
50
       </file>
66
-      <file leaf-file-name="TestStreamFilter.java" pinned="false" current-in-tab="false">
67
-        <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java">
51
+      <file leaf-file-name="PersonFactory.java" pinned="false" current-in-tab="false">
52
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java">
68
           <provider selected="true" editor-type-id="text-editor">
53
           <provider selected="true" editor-type-id="text-editor">
69
-            <state relative-caret-position="180">
70
-              <caret line="21" column="33" lean-forward="true" selection-start-line="21" selection-start-column="33" selection-end-line="21" selection-end-column="33" />
71
-              <folding>
72
-                <element signature="e#700#701#0" expanded="true" />
73
-                <element signature="e#758#759#0" expanded="true" />
74
-                <element signature="e#807#808#0" expanded="true" />
75
-                <element signature="e#863#864#0" expanded="true" />
76
-                <element signature="e#915#916#0" expanded="true" />
77
-                <element signature="e#974#975#0" expanded="true" />
78
-                <element signature="e#1024#1025#0" expanded="true" />
79
-                <element signature="e#1081#1082#0" expanded="true" />
80
-                <element signature="e#1133#1134#0" expanded="true" />
81
-                <element signature="e#1183#1184#0" expanded="true" />
82
-              </folding>
54
+            <state relative-caret-position="54">
55
+              <caret line="36" column="18" lean-forward="true" selection-start-line="36" selection-start-column="18" selection-end-line="36" selection-end-column="18" />
56
+              <folding />
83
             </state>
57
             </state>
84
           </provider>
58
           </provider>
85
         </entry>
59
         </entry>
86
       </file>
60
       </file>
87
-      <file leaf-file-name="StringUtils.java" pinned="false" current-in-tab="false">
88
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java">
61
+      <file leaf-file-name="PersonWarehouse.java" pinned="false" current-in-tab="false">
62
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java">
89
           <provider selected="true" editor-type-id="text-editor">
63
           <provider selected="true" editor-type-id="text-editor">
90
-            <state relative-caret-position="690">
91
-              <caret line="50" column="5" lean-forward="true" selection-start-line="50" selection-start-column="5" selection-end-line="50" selection-end-column="5" />
64
+            <state relative-caret-position="-18">
65
+              <caret line="31" column="46" lean-forward="true" selection-start-line="31" selection-start-column="46" selection-end-line="31" selection-end-column="46" />
92
               <folding />
66
               <folding />
93
             </state>
67
             </state>
94
           </provider>
68
           </provider>
95
         </entry>
69
         </entry>
96
       </file>
70
       </file>
97
-      <file leaf-file-name="PersonFactory.java" pinned="false" current-in-tab="false">
98
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java">
71
+      <file leaf-file-name="LoggerHandler.java" pinned="false" current-in-tab="false">
72
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerHandler.java">
99
           <provider selected="true" editor-type-id="text-editor">
73
           <provider selected="true" editor-type-id="text-editor">
100
             <state relative-caret-position="255">
74
             <state relative-caret-position="255">
101
-              <caret line="23" column="90" lean-forward="false" selection-start-line="23" selection-start-column="90" selection-end-line="23" selection-end-column="90" />
75
+              <caret line="57" column="74" lean-forward="true" selection-start-line="57" selection-start-column="74" selection-end-line="57" selection-end-column="74" />
102
               <folding />
76
               <folding />
103
             </state>
77
             </state>
104
           </provider>
78
           </provider>
105
         </entry>
79
         </entry>
106
       </file>
80
       </file>
107
-      <file leaf-file-name="RandomUtils.java" pinned="false" current-in-tab="false">
108
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/RandomUtils.java">
81
+      <file leaf-file-name="ArrayConverter.java" pinned="false" current-in-tab="false">
82
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java">
109
           <provider selected="true" editor-type-id="text-editor">
83
           <provider selected="true" editor-type-id="text-editor">
110
-            <state relative-caret-position="120">
111
-              <caret line="9" column="19" lean-forward="false" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
84
+            <state relative-caret-position="240">
85
+              <caret line="23" column="6" lean-forward="false" selection-start-line="23" selection-start-column="6" selection-end-line="23" selection-end-column="6" />
112
               <folding />
86
               <folding />
113
             </state>
87
             </state>
114
           </provider>
88
           </provider>
115
         </entry>
89
         </entry>
116
       </file>
90
       </file>
117
-      <file leaf-file-name="Person.java" pinned="false" current-in-tab="false">
118
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java">
91
+      <file leaf-file-name="ConversionAgent.java" pinned="false" current-in-tab="false">
92
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java">
119
           <provider selected="true" editor-type-id="text-editor">
93
           <provider selected="true" editor-type-id="text-editor">
120
-            <state relative-caret-position="308">
121
-              <caret line="29" column="37" lean-forward="true" selection-start-line="29" selection-start-column="37" selection-end-line="29" selection-end-column="37" />
122
-              <folding>
123
-                <element signature="imports" expanded="true" />
124
-              </folding>
94
+            <state relative-caret-position="275">
95
+              <caret line="31" column="43" lean-forward="true" selection-start-line="31" selection-start-column="43" selection-end-line="31" selection-end-column="43" />
96
+              <folding />
125
             </state>
97
             </state>
126
           </provider>
98
           </provider>
127
         </entry>
99
         </entry>
128
       </file>
100
       </file>
129
-      <file leaf-file-name="StreamMap.java" pinned="false" current-in-tab="false">
130
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java">
101
+      <file leaf-file-name="ListConverter.java" pinned="false" current-in-tab="false">
102
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java">
131
           <provider selected="true" editor-type-id="text-editor">
103
           <provider selected="true" editor-type-id="text-editor">
132
-            <state relative-caret-position="360">
133
-              <caret line="26" column="69" lean-forward="false" selection-start-line="26" selection-start-column="69" selection-end-line="26" selection-end-column="69" />
104
+            <state relative-caret-position="293">
105
+              <caret line="32" column="6" lean-forward="false" selection-start-line="32" selection-start-column="6" selection-end-line="32" selection-end-column="6" />
134
               <folding>
106
               <folding>
135
-                <element signature="imports" expanded="true" />
107
+                <element signature="e#717#718#0" expanded="true" />
108
+                <element signature="e#759#760#0" expanded="true" />
136
               </folding>
109
               </folding>
137
             </state>
110
             </state>
138
           </provider>
111
           </provider>
141
       <file leaf-file-name="StreamConverter.java" pinned="false" current-in-tab="false">
114
       <file leaf-file-name="StreamConverter.java" pinned="false" current-in-tab="false">
142
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java">
115
         <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java">
143
           <provider selected="true" editor-type-id="text-editor">
116
           <provider selected="true" editor-type-id="text-editor">
144
-            <state relative-caret-position="270">
145
-              <caret line="23" column="5" lean-forward="false" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
117
+            <state relative-caret-position="296">
118
+              <caret line="30" column="7" lean-forward="false" selection-start-line="30" selection-start-column="7" selection-end-line="30" selection-end-column="7" />
146
               <folding />
119
               <folding />
147
             </state>
120
             </state>
148
           </provider>
121
           </provider>
149
         </entry>
122
         </entry>
150
       </file>
123
       </file>
151
-      <file leaf-file-name="ConversionAgent.java" pinned="false" current-in-tab="true">
152
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java">
124
+      <file leaf-file-name="StringUtils.java" pinned="false" current-in-tab="false">
125
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java">
153
           <provider selected="true" editor-type-id="text-editor">
126
           <provider selected="true" editor-type-id="text-editor">
154
-            <state relative-caret-position="90">
155
-              <caret line="11" column="85" lean-forward="false" selection-start-line="11" selection-start-column="85" selection-end-line="11" selection-end-column="85" />
127
+            <state relative-caret-position="567">
128
+              <caret line="51" column="7" lean-forward="true" selection-start-line="51" selection-start-column="7" selection-end-line="51" selection-end-column="7" />
156
               <folding />
129
               <folding />
157
             </state>
130
             </state>
158
           </provider>
131
           </provider>
159
         </entry>
132
         </entry>
160
       </file>
133
       </file>
161
-      <file leaf-file-name="ListConverter.java" pinned="false" current-in-tab="false">
162
-        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java">
134
+      <file leaf-file-name="LoggerWarehouse.java" pinned="false" current-in-tab="false">
135
+        <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerWarehouse.java">
163
           <provider selected="true" editor-type-id="text-editor">
136
           <provider selected="true" editor-type-id="text-editor">
164
-            <state relative-caret-position="345">
165
-              <caret line="33" column="31" lean-forward="true" selection-start-line="33" selection-start-column="31" selection-end-line="33" selection-end-column="31" />
137
+            <state relative-caret-position="270">
138
+              <caret line="19" column="98" lean-forward="false" selection-start-line="19" selection-start-column="98" selection-end-line="19" selection-end-column="98" />
166
               <folding />
139
               <folding />
167
             </state>
140
             </state>
168
           </provider>
141
           </provider>
209
   <component name="IdeDocumentHistory">
182
   <component name="IdeDocumentHistory">
210
     <option name="CHANGED_PATHS">
183
     <option name="CHANGED_PATHS">
211
       <list>
184
       <list>
212
-        <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestConversionAgents.java" />
213
-        <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestStreamConversion.java" />
214
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestListConversion.java" />
185
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestListConversion.java" />
215
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestArrayConversion.java" />
186
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestArrayConversion.java" />
216
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestConversionArray.java" />
187
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/lambdas/exercises/TestConversionArray.java" />
234
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestPersonFactory.java" />
205
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestPersonFactory.java" />
235
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/DemoStreamFilter.java" />
206
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/DemoStreamFilter.java" />
236
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/exercises/ConversionAgent.java" />
207
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/exercises/ConversionAgent.java" />
237
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java" />
238
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/RandomUtils.java" />
208
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/RandomUtils.java" />
239
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java" />
240
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConverterArray.java" />
209
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConverterArray.java" />
241
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConverterList.java" />
210
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConverterList.java" />
242
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConverterStream.java" />
211
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConverterStream.java" />
245
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestSuiteFullRegression.java" />
214
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestSuiteFullRegression.java" />
246
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerWarehouse.java" />
215
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerWarehouse.java" />
247
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConversionAgent.java" />
216
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/conversions/TestConversionAgent.java" />
248
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" />
249
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestConstants.java" />
217
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestConstants.java" />
250
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerHandler.java" />
218
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerHandler.java" />
251
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java" />
252
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java" />
219
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java" />
253
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWorld.java" />
220
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWorld.java" />
221
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/DateUtils.java" />
222
+        <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java" />
223
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java" />
224
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/PersonConversionAgent.java" />
225
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java" />
226
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java" />
227
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java" />
228
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java" />
254
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" />
229
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java" />
255
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" />
230
         <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java" />
231
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java" />
232
+        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
256
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" />
233
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java" />
257
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/DateUtils.java" />
258
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" />
234
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java" />
259
-        <option value="$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java" />
260
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java" />
261
-        <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java" />
262
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java" />
235
         <option value="$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java" />
263
       </list>
236
       </list>
264
     </option>
237
     </option>
265
   </component>
238
   </component>
266
   <component name="ProjectFrameBounds">
239
   <component name="ProjectFrameBounds">
267
-    <option name="x" value="482" />
268
-    <option name="y" value="74" />
240
+    <option name="y" value="23" />
269
     <option name="width" value="1440" />
241
     <option name="width" value="1440" />
270
-    <option name="height" value="877" />
242
+    <option name="height" value="873" />
271
   </component>
243
   </component>
272
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
244
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
273
   <component name="ProjectView">
245
   <component name="ProjectView">
470
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
442
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
471
             </PATH_ELEMENT>
443
             </PATH_ELEMENT>
472
             <PATH_ELEMENT>
444
             <PATH_ELEMENT>
473
-              <option name="myItemId" value="tools" />
474
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
475
-            </PATH_ELEMENT>
476
-            <PATH_ELEMENT>
477
-              <option name="myItemId" value="logging" />
478
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
479
-            </PATH_ELEMENT>
480
-          </PATH>
481
-          <PATH>
482
-            <PATH_ELEMENT>
483
-              <option name="myItemId" value="looptest" />
484
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
485
-            </PATH_ELEMENT>
486
-            <PATH_ELEMENT>
487
-              <option name="myItemId" value="looptest" />
488
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
489
-            </PATH_ELEMENT>
490
-            <PATH_ELEMENT>
491
-              <option name="myItemId" value="src" />
492
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
493
-            </PATH_ELEMENT>
494
-            <PATH_ELEMENT>
495
-              <option name="myItemId" value="main" />
496
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
497
-            </PATH_ELEMENT>
498
-            <PATH_ELEMENT>
499
-              <option name="myItemId" value="java" />
500
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
501
-            </PATH_ELEMENT>
502
-            <PATH_ELEMENT>
503
-              <option name="myItemId" value="streams" />
504
-              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
505
-            </PATH_ELEMENT>
506
-            <PATH_ELEMENT>
507
               <option name="myItemId" value="conversions" />
445
               <option name="myItemId" value="conversions" />
508
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
446
               <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
509
             </PATH_ELEMENT>
447
             </PATH_ELEMENT>
547
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
485
     <property name="last_opened_file_path" value="$PROJECT_DIR$" />
548
     <property name="project.structure.last.edited" value="Modules" />
486
     <property name="project.structure.last.edited" value="Modules" />
549
     <property name="project.structure.proportion" value="0.0" />
487
     <property name="project.structure.proportion" value="0.0" />
550
-    <property name="project.structure.side.proportion" value="0.0" />
488
+    <property name="project.structure.side.proportion" value="0.2" />
551
   </component>
489
   </component>
552
   <component name="RecentsManager">
490
   <component name="RecentsManager">
553
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
491
     <key name="MoveClassesOrPackagesDialog.RECENTS_KEY">
939
     <servers />
877
     <servers />
940
   </component>
878
   </component>
941
   <component name="TestHistory">
879
   <component name="TestHistory">
942
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 19m 55s.xml">
880
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 22m 48s.xml">
943
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
881
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
944
     </history-entry>
882
     </history-entry>
945
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 20m 14s.xml">
883
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 22m 56s.xml">
946
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
884
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
947
     </history-entry>
885
     </history-entry>
948
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 21m 59s.xml">
886
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 46s.xml">
949
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
887
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
950
     </history-entry>
888
     </history-entry>
951
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 22m 29s.xml">
889
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 53s.xml">
952
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
890
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
953
     </history-entry>
891
     </history-entry>
954
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 22m 48s.xml">
892
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 58s.xml">
955
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
893
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
956
     </history-entry>
894
     </history-entry>
957
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 22m 56s.xml">
895
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 24m 21s.xml">
958
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
896
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
959
     </history-entry>
897
     </history-entry>
960
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 46s.xml">
898
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 19h 08m 54s.xml">
961
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
899
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
962
     </history-entry>
900
     </history-entry>
963
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 53s.xml">
901
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 19h 10m 18s.xml">
964
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
902
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
965
     </history-entry>
903
     </history-entry>
966
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 23m 58s.xml">
904
+    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 19h 44m 08s.xml">
967
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
905
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
968
     </history-entry>
906
     </history-entry>
969
-    <history-entry file="TestSuiteFullRegression - 2017.05.30 at 16h 24m 21s.xml">
907
+    <history-entry file="TestSuiteFullRegression - 2017.05.31 at 07h 13m 04s.xml">
970
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
908
       <configuration name="TestSuiteFullRegression" configurationId="JUnit" />
971
     </history-entry>
909
     </history-entry>
972
   </component>
910
   </component>
980
     </todo-panel>
918
     </todo-panel>
981
   </component>
919
   </component>
982
   <component name="ToolWindowManager">
920
   <component name="ToolWindowManager">
983
-    <frame x="482" y="74" width="1440" height="877" extended-state="0" />
921
+    <frame x="0" y="23" width="1440" height="873" extended-state="6" />
984
     <editor active="true" />
922
     <editor active="true" />
985
     <layout>
923
     <layout>
986
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
924
       <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
987
-      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32882413" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
925
+      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3277849" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
988
       <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
926
       <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
989
-      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3298647" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
927
+      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32866243" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
990
       <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
928
       <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
991
       <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
929
       <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
992
       <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
930
       <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
993
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
931
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
994
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
932
       <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
995
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
933
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
996
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.31464967" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
934
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3149808" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
997
       <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
935
       <window_info id="Properties" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
998
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2663892" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
936
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.2637644" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
999
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
937
       <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
1000
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
938
       <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
1001
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24105866" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
939
       <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24105866" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
940
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3298647" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
1002
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
941
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
1003
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
942
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
1004
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
943
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
1010
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
949
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
1011
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
950
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
1012
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
951
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
1013
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3298647" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
1014
     </layout>
952
     </layout>
1015
   </component>
953
   </component>
1016
   <component name="VcsContentAnnotationSettings">
954
   <component name="VcsContentAnnotationSettings">
1018
   </component>
956
   </component>
1019
   <component name="XDebuggerManager">
957
   <component name="XDebuggerManager">
1020
     <breakpoint-manager>
958
     <breakpoint-manager>
1021
-      <option name="time" value="9" />
959
+      <option name="time" value="10" />
1022
     </breakpoint-manager>
960
     </breakpoint-manager>
1023
     <watches-manager />
961
     <watches-manager />
1024
   </component>
962
   </component>
1027
     <option name="FILTER_TARGETS" value="false" />
965
     <option name="FILTER_TARGETS" value="false" />
1028
   </component>
966
   </component>
1029
   <component name="editorHistoryManager">
967
   <component name="editorHistoryManager">
1030
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcode/Person.kt" />
1031
     <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcode.java" />
968
     <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcode.java" />
1032
     <entry file="file://$PROJECT_DIR$/pom.xml">
969
     <entry file="file://$PROJECT_DIR$/pom.xml">
1033
       <provider selected="true" editor-type-id="text-editor">
970
       <provider selected="true" editor-type-id="text-editor">
1049
       <provider selected="true" editor-type-id="text-editor">
986
       <provider selected="true" editor-type-id="text-editor">
1050
         <state relative-caret-position="312">
987
         <state relative-caret-position="312">
1051
           <caret line="70" column="53" lean-forward="false" selection-start-line="70" selection-start-column="53" selection-end-line="70" selection-end-column="53" />
988
           <caret line="70" column="53" lean-forward="false" selection-start-line="70" selection-start-column="53" selection-end-line="70" selection-end-column="53" />
989
+          <folding />
1052
         </state>
990
         </state>
1053
       </provider>
991
       </provider>
1054
     </entry>
992
     </entry>
1072
       <provider selected="true" editor-type-id="text-editor">
1010
       <provider selected="true" editor-type-id="text-editor">
1073
         <state relative-caret-position="312">
1011
         <state relative-caret-position="312">
1074
           <caret line="60" column="59" lean-forward="true" selection-start-line="60" selection-start-column="59" selection-end-line="60" selection-end-column="59" />
1012
           <caret line="60" column="59" lean-forward="true" selection-start-line="60" selection-start-column="59" selection-end-line="60" selection-end-column="59" />
1075
-        </state>
1076
-      </provider>
1077
-    </entry>
1078
-    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip!/java/util/function/Predicate.java">
1079
-      <provider selected="true" editor-type-id="text-editor">
1080
-        <state relative-caret-position="312">
1081
-          <caret line="48" column="12" lean-forward="false" selection-start-line="48" selection-start-column="12" selection-end-line="48" selection-end-column="12" />
1082
           <folding />
1013
           <folding />
1083
         </state>
1014
         </state>
1084
       </provider>
1015
       </provider>
1122
         </state>
1053
         </state>
1123
       </provider>
1054
       </provider>
1124
     </entry>
1055
     </entry>
1125
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestSuiteFullRegression.java">
1126
-      <provider selected="true" editor-type-id="text-editor">
1127
-        <state relative-caret-position="240">
1128
-          <caret line="19" column="25" lean-forward="false" selection-start-line="19" selection-start-column="25" selection-end-line="19" selection-end-column="25" />
1129
-        </state>
1130
-      </provider>
1131
-    </entry>
1132
     <entry file="file://$PROJECT_DIR$/target/index.html">
1056
     <entry file="file://$PROJECT_DIR$/target/index.html">
1133
       <provider selected="true" editor-type-id="text-editor">
1057
       <provider selected="true" editor-type-id="text-editor">
1134
         <state relative-caret-position="0">
1058
         <state relative-caret-position="0">
1140
       <provider selected="true" editor-type-id="text-editor">
1064
       <provider selected="true" editor-type-id="text-editor">
1141
         <state relative-caret-position="90">
1065
         <state relative-caret-position="90">
1142
           <caret line="6" column="69" lean-forward="false" selection-start-line="6" selection-start-column="69" selection-end-line="6" selection-end-column="69" />
1066
           <caret line="6" column="69" lean-forward="false" selection-start-line="6" selection-start-column="69" selection-end-line="6" selection-end-column="69" />
1067
+          <folding />
1143
         </state>
1068
         </state>
1144
       </provider>
1069
       </provider>
1145
     </entry>
1070
     </entry>
1147
       <provider selected="true" editor-type-id="text-editor">
1072
       <provider selected="true" editor-type-id="text-editor">
1148
         <state relative-caret-position="90">
1073
         <state relative-caret-position="90">
1149
           <caret line="6" column="69" lean-forward="false" selection-start-line="6" selection-start-column="69" selection-end-line="6" selection-end-column="69" />
1074
           <caret line="6" column="69" lean-forward="false" selection-start-line="6" selection-start-column="69" selection-end-line="6" selection-end-column="69" />
1075
+          <folding />
1150
         </state>
1076
         </state>
1151
       </provider>
1077
       </provider>
1152
     </entry>
1078
     </entry>
1173
         </state>
1099
         </state>
1174
       </provider>
1100
       </provider>
1175
     </entry>
1101
     </entry>
1176
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java">
1177
-      <provider selected="true" editor-type-id="text-editor">
1178
-        <state relative-caret-position="195">
1179
-          <caret line="17" column="0" lean-forward="true" selection-start-line="17" selection-start-column="0" selection-end-line="17" selection-end-column="0" />
1180
-          <folding />
1181
-        </state>
1182
-      </provider>
1183
-    </entry>
1184
     <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip!/java/time/LocalDate.java">
1102
     <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip!/java/time/LocalDate.java">
1185
       <provider selected="true" editor-type-id="text-editor">
1103
       <provider selected="true" editor-type-id="text-editor">
1186
         <state relative-caret-position="415">
1104
         <state relative-caret-position="415">
1188
         </state>
1106
         </state>
1189
       </provider>
1107
       </provider>
1190
     </entry>
1108
     </entry>
1191
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestConstants.java">
1192
-      <provider selected="true" editor-type-id="text-editor">
1193
-        <state relative-caret-position="105">
1194
-          <caret line="7" column="26" lean-forward="true" selection-start-line="7" selection-start-column="26" selection-end-line="7" selection-end-column="26" />
1195
-        </state>
1196
-      </provider>
1197
-    </entry>
1198
     <entry file="file://$PROJECT_DIR$/target/global.leonlog.1">
1109
     <entry file="file://$PROJECT_DIR$/target/global.leonlog.1">
1199
       <provider selected="true" editor-type-id="LargeFileEditor">
1110
       <provider selected="true" editor-type-id="LargeFileEditor">
1200
         <state relative-caret-position="146">
1111
         <state relative-caret-position="146">
1224
     </entry>
1135
     </entry>
1225
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWorld.java" />
1136
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWorld.java" />
1226
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouseWarehouse.java" />
1137
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouseWarehouse.java" />
1227
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java">
1138
+    <entry file="jar:///Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip!/java/util/function/Predicate.java">
1228
       <provider selected="true" editor-type-id="text-editor">
1139
       <provider selected="true" editor-type-id="text-editor">
1229
-        <state relative-caret-position="195">
1230
-          <caret line="20" column="71" lean-forward="true" selection-start-line="20" selection-start-column="71" selection-end-line="20" selection-end-column="71" />
1140
+        <state relative-caret-position="126">
1141
+          <caret line="36" column="13" lean-forward="true" selection-start-line="36" selection-start-column="13" selection-end-line="36" selection-end-column="13" />
1231
           <folding />
1142
           <folding />
1232
         </state>
1143
         </state>
1233
       </provider>
1144
       </provider>
1234
     </entry>
1145
     </entry>
1235
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java">
1146
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/PersonConversionAgent.java">
1147
+      <provider selected="true" editor-type-id="text-editor">
1148
+        <state relative-caret-position="150">
1149
+          <caret line="10" column="5" lean-forward="true" selection-start-line="10" selection-start-column="5" selection-end-line="10" selection-end-column="5" />
1150
+          <folding />
1151
+        </state>
1152
+      </provider>
1153
+    </entry>
1154
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/DateUtils.java">
1155
+      <provider selected="true" editor-type-id="text-editor">
1156
+        <state relative-caret-position="97">
1157
+          <caret line="24" column="5" lean-forward="false" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" />
1158
+          <folding />
1159
+        </state>
1160
+      </provider>
1161
+    </entry>
1162
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/RandomUtils.java">
1236
       <provider selected="true" editor-type-id="text-editor">
1163
       <provider selected="true" editor-type-id="text-editor">
1237
-        <state relative-caret-position="120">
1238
-          <caret line="8" column="1" lean-forward="true" selection-start-line="8" selection-start-column="1" selection-end-line="8" selection-end-column="1" />
1164
+        <state relative-caret-position="275">
1165
+          <caret line="60" column="9" lean-forward="true" selection-start-line="60" selection-start-column="9" selection-end-line="60" selection-end-column="9" />
1166
+          <folding />
1167
+        </state>
1168
+      </provider>
1169
+    </entry>
1170
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestSuiteFullRegression.java">
1171
+      <provider selected="true" editor-type-id="text-editor">
1172
+        <state relative-caret-position="240">
1173
+          <caret line="19" column="25" lean-forward="false" selection-start-line="19" selection-start-column="25" selection-end-line="19" selection-end-column="25" />
1174
+          <folding />
1239
         </state>
1175
         </state>
1240
       </provider>
1176
       </provider>
1241
     </entry>
1177
     </entry>
1247
         </state>
1183
         </state>
1248
       </provider>
1184
       </provider>
1249
     </entry>
1185
     </entry>
1250
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java">
1186
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java">
1251
       <provider selected="true" editor-type-id="text-editor">
1187
       <provider selected="true" editor-type-id="text-editor">
1252
-        <state relative-caret-position="360">
1253
-          <caret line="36" column="65" lean-forward="false" selection-start-line="36" selection-start-column="65" selection-end-line="36" selection-end-column="65" />
1188
+        <state relative-caret-position="180">
1189
+          <caret line="21" column="33" lean-forward="true" selection-start-line="21" selection-start-column="33" selection-end-line="21" selection-end-column="33" />
1254
           <folding>
1190
           <folding>
1255
-            <element signature="e#975#976#0" expanded="false" />
1256
-            <element signature="e#1052#1053#0" expanded="false" />
1191
+            <element signature="e#600#601#0" expanded="false" />
1192
+            <element signature="e#649#650#0" expanded="false" />
1257
           </folding>
1193
           </folding>
1258
         </state>
1194
         </state>
1259
       </provider>
1195
       </provider>
1260
     </entry>
1196
     </entry>
1261
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerHandler.java">
1197
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestConstants.java">
1262
       <provider selected="true" editor-type-id="text-editor">
1198
       <provider selected="true" editor-type-id="text-editor">
1263
-        <state relative-caret-position="915">
1264
-          <caret line="87" column="35" lean-forward="false" selection-start-line="87" selection-start-column="35" selection-end-line="87" selection-end-column="35" />
1265
-          <folding>
1266
-            <element signature="imports" expanded="false" />
1267
-            <element signature="e#459#460#0" expanded="false" />
1268
-            <element signature="e#498#499#0" expanded="false" />
1269
-            <element signature="e#545#546#0" expanded="false" />
1270
-            <element signature="e#595#596#0" expanded="false" />
1271
-            <element signature="e#1082#1083#0" expanded="false" />
1272
-            <element signature="e#1119#1120#0" expanded="false" />
1273
-            <element signature="e#1169#1170#0" expanded="false" />
1274
-            <element signature="e#1203#1204#0" expanded="false" />
1275
-            <element signature="e#1253#1254#0" expanded="false" />
1276
-            <element signature="e#1305#1306#0" expanded="false" />
1277
-            <element signature="e#1356#1357#0" expanded="false" />
1278
-            <element signature="e#1392#1393#0" expanded="false" />
1279
-            <element signature="e#1688#1689#0" expanded="false" />
1280
-            <element signature="e#1726#1727#0" expanded="false" />
1281
-            <element signature="e#1762#1763#0" expanded="false" />
1282
-            <element signature="e#1805#1806#0" expanded="false" />
1283
-            <element signature="e#1842#1843#0" expanded="false" />
1284
-            <element signature="e#1886#1887#0" expanded="false" />
1285
-            <element signature="e#1930#1931#0" expanded="false" />
1286
-            <element signature="e#1990#1991#0" expanded="false" />
1287
-          </folding>
1199
+        <state relative-caret-position="105">
1200
+          <caret line="7" column="26" lean-forward="true" selection-start-line="7" selection-start-column="26" selection-end-line="7" selection-end-column="26" />
1201
+          <folding />
1288
         </state>
1202
         </state>
1289
       </provider>
1203
       </provider>
1290
     </entry>
1204
     </entry>
1291
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java">
1205
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java">
1292
       <provider selected="true" editor-type-id="text-editor">
1206
       <provider selected="true" editor-type-id="text-editor">
1293
-        <state relative-caret-position="180">
1294
-          <caret line="19" column="49" lean-forward="false" selection-start-line="19" selection-start-column="49" selection-end-line="19" selection-end-column="49" />
1295
-          <folding>
1296
-            <element signature="e#1822#1823#0" expanded="false" />
1297
-            <element signature="e#1878#1879#0" expanded="false" />
1298
-          </folding>
1207
+        <state relative-caret-position="270">
1208
+          <caret line="26" column="69" lean-forward="false" selection-start-line="26" selection-start-column="69" selection-end-line="26" selection-end-column="69" />
1209
+          <folding />
1299
         </state>
1210
         </state>
1300
       </provider>
1211
       </provider>
1301
     </entry>
1212
     </entry>
1302
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/DateUtils.java">
1213
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java">
1303
       <provider selected="true" editor-type-id="text-editor">
1214
       <provider selected="true" editor-type-id="text-editor">
1304
-        <state relative-caret-position="345">
1305
-          <caret line="24" column="5" lean-forward="false" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" />
1215
+        <state relative-caret-position="225">
1216
+          <caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
1306
           <folding />
1217
           <folding />
1307
         </state>
1218
         </state>
1308
       </provider>
1219
       </provider>
1309
     </entry>
1220
     </entry>
1310
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerWarehouse.java">
1221
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java">
1311
       <provider selected="true" editor-type-id="text-editor">
1222
       <provider selected="true" editor-type-id="text-editor">
1312
-        <state relative-caret-position="270">
1313
-          <caret line="19" column="98" lean-forward="false" selection-start-line="19" selection-start-column="98" selection-end-line="19" selection-end-column="98" />
1223
+        <state relative-caret-position="265">
1224
+          <caret line="25" column="12" lean-forward="false" selection-start-line="25" selection-start-column="12" selection-end-line="25" selection-end-column="12" />
1314
           <folding>
1225
           <folding>
1315
             <element signature="imports" expanded="false" />
1226
             <element signature="imports" expanded="false" />
1316
           </folding>
1227
           </folding>
1317
         </state>
1228
         </state>
1318
       </provider>
1229
       </provider>
1319
     </entry>
1230
     </entry>
1320
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamMap.java">
1231
+    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java">
1321
       <provider selected="true" editor-type-id="text-editor">
1232
       <provider selected="true" editor-type-id="text-editor">
1322
-        <state relative-caret-position="360">
1323
-          <caret line="26" column="69" lean-forward="false" selection-start-line="26" selection-start-column="69" selection-end-line="26" selection-end-column="69" />
1324
-          <folding>
1325
-            <element signature="imports" expanded="true" />
1326
-          </folding>
1233
+        <state relative-caret-position="166">
1234
+          <caret line="23" column="5" lean-forward="true" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
1235
+          <folding />
1327
         </state>
1236
         </state>
1328
       </provider>
1237
       </provider>
1329
     </entry>
1238
     </entry>
1330
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java">
1239
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java">
1331
       <provider selected="true" editor-type-id="text-editor">
1240
       <provider selected="true" editor-type-id="text-editor">
1332
-        <state relative-caret-position="690">
1333
-          <caret line="50" column="5" lean-forward="true" selection-start-line="50" selection-start-column="5" selection-end-line="50" selection-end-column="5" />
1241
+        <state relative-caret-position="225">
1242
+          <caret line="20" column="28" lean-forward="false" selection-start-line="20" selection-start-column="28" selection-end-line="20" selection-end-column="28" />
1334
           <folding />
1243
           <folding />
1335
         </state>
1244
         </state>
1336
       </provider>
1245
       </provider>
1337
     </entry>
1246
     </entry>
1338
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/RandomUtils.java">
1247
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java">
1339
       <provider selected="true" editor-type-id="text-editor">
1248
       <provider selected="true" editor-type-id="text-editor">
1340
-        <state relative-caret-position="120">
1341
-          <caret line="9" column="19" lean-forward="false" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
1249
+        <state relative-caret-position="567">
1250
+          <caret line="51" column="7" lean-forward="true" selection-start-line="51" selection-start-column="7" selection-end-line="51" selection-end-column="7" />
1342
           <folding />
1251
           <folding />
1343
         </state>
1252
         </state>
1344
       </provider>
1253
       </provider>
1345
     </entry>
1254
     </entry>
1346
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java">
1255
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java">
1347
       <provider selected="true" editor-type-id="text-editor">
1256
       <provider selected="true" editor-type-id="text-editor">
1348
-        <state relative-caret-position="308">
1349
-          <caret line="29" column="37" lean-forward="true" selection-start-line="29" selection-start-column="37" selection-end-line="29" selection-end-column="37" />
1350
-          <folding>
1351
-            <element signature="imports" expanded="true" />
1352
-          </folding>
1257
+        <state relative-caret-position="-18">
1258
+          <caret line="31" column="46" lean-forward="true" selection-start-line="31" selection-start-column="46" selection-end-line="31" selection-end-column="46" />
1259
+          <folding />
1353
         </state>
1260
         </state>
1354
       </provider>
1261
       </provider>
1355
     </entry>
1262
     </entry>
1356
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java">
1263
     <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java">
1357
       <provider selected="true" editor-type-id="text-editor">
1264
       <provider selected="true" editor-type-id="text-editor">
1358
-        <state relative-caret-position="255">
1359
-          <caret line="23" column="90" lean-forward="false" selection-start-line="23" selection-start-column="90" selection-end-line="23" selection-end-column="90" />
1265
+        <state relative-caret-position="54">
1266
+          <caret line="36" column="18" lean-forward="true" selection-start-line="36" selection-start-column="18" selection-end-line="36" selection-end-column="18" />
1360
           <folding />
1267
           <folding />
1361
         </state>
1268
         </state>
1362
       </provider>
1269
       </provider>
1363
     </entry>
1270
     </entry>
1364
-    <entry file="file://$PROJECT_DIR$/src/test/java/com/zipcodewilmington/streams/TestStreamFilter.java">
1271
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java">
1365
       <provider selected="true" editor-type-id="text-editor">
1272
       <provider selected="true" editor-type-id="text-editor">
1366
-        <state relative-caret-position="180">
1367
-          <caret line="21" column="33" lean-forward="true" selection-start-line="21" selection-start-column="33" selection-end-line="21" selection-end-column="33" />
1368
-          <folding>
1369
-            <element signature="e#700#701#0" expanded="true" />
1370
-            <element signature="e#758#759#0" expanded="true" />
1371
-            <element signature="e#807#808#0" expanded="true" />
1372
-            <element signature="e#863#864#0" expanded="true" />
1373
-            <element signature="e#915#916#0" expanded="true" />
1374
-            <element signature="e#974#975#0" expanded="true" />
1375
-            <element signature="e#1024#1025#0" expanded="true" />
1376
-            <element signature="e#1081#1082#0" expanded="true" />
1377
-            <element signature="e#1133#1134#0" expanded="true" />
1378
-            <element signature="e#1183#1184#0" expanded="true" />
1379
-          </folding>
1273
+        <state relative-caret-position="296">
1274
+          <caret line="30" column="7" lean-forward="false" selection-start-line="30" selection-start-column="7" selection-end-line="30" selection-end-column="7" />
1275
+          <folding />
1380
         </state>
1276
         </state>
1381
       </provider>
1277
       </provider>
1382
     </entry>
1278
     </entry>
1383
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
1279
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java">
1280
+      <provider selected="true" editor-type-id="text-editor">
1281
+        <state relative-caret-position="240">
1282
+          <caret line="23" column="6" lean-forward="false" selection-start-line="23" selection-start-column="6" selection-end-line="23" selection-end-column="6" />
1283
+          <folding />
1284
+        </state>
1285
+      </provider>
1286
+    </entry>
1287
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java">
1384
       <provider selected="true" editor-type-id="text-editor">
1288
       <provider selected="true" editor-type-id="text-editor">
1385
-        <state relative-caret-position="309">
1386
-          <caret line="90" column="101" lean-forward="true" selection-start-line="90" selection-start-column="101" selection-end-line="90" selection-end-column="101" />
1289
+        <state relative-caret-position="293">
1290
+          <caret line="32" column="6" lean-forward="false" selection-start-line="32" selection-start-column="6" selection-end-line="32" selection-end-column="6" />
1387
           <folding>
1291
           <folding>
1388
-            <element signature="e#690#691#0" expanded="true" />
1389
-            <element signature="e#788#789#0" expanded="true" />
1292
+            <element signature="e#717#718#0" expanded="true" />
1293
+            <element signature="e#759#760#0" expanded="true" />
1390
           </folding>
1294
           </folding>
1391
         </state>
1295
         </state>
1392
       </provider>
1296
       </provider>
1393
     </entry>
1297
     </entry>
1394
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java">
1298
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java">
1395
       <provider selected="true" editor-type-id="text-editor">
1299
       <provider selected="true" editor-type-id="text-editor">
1396
-        <state relative-caret-position="270">
1397
-          <caret line="23" column="5" lean-forward="false" selection-start-line="23" selection-start-column="5" selection-end-line="23" selection-end-column="5" />
1300
+        <state relative-caret-position="275">
1301
+          <caret line="31" column="43" lean-forward="true" selection-start-line="31" selection-start-column="43" selection-end-line="31" selection-end-column="43" />
1398
           <folding />
1302
           <folding />
1399
         </state>
1303
         </state>
1400
       </provider>
1304
       </provider>
1401
     </entry>
1305
     </entry>
1402
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java">
1306
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerHandler.java">
1403
       <provider selected="true" editor-type-id="text-editor">
1307
       <provider selected="true" editor-type-id="text-editor">
1404
-        <state relative-caret-position="345">
1405
-          <caret line="33" column="31" lean-forward="true" selection-start-line="33" selection-start-column="31" selection-end-line="33" selection-end-column="31" />
1308
+        <state relative-caret-position="255">
1309
+          <caret line="57" column="74" lean-forward="true" selection-start-line="57" selection-start-column="74" selection-end-line="57" selection-end-column="74" />
1406
           <folding />
1310
           <folding />
1407
         </state>
1311
         </state>
1408
       </provider>
1312
       </provider>
1409
     </entry>
1313
     </entry>
1410
-    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java">
1314
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/tools/logging/LoggerWarehouse.java">
1411
       <provider selected="true" editor-type-id="text-editor">
1315
       <provider selected="true" editor-type-id="text-editor">
1412
-        <state relative-caret-position="90">
1413
-          <caret line="11" column="85" lean-forward="false" selection-start-line="11" selection-start-column="85" selection-end-line="11" selection-end-column="85" />
1316
+        <state relative-caret-position="270">
1317
+          <caret line="19" column="98" lean-forward="false" selection-start-line="19" selection-start-column="98" selection-end-line="19" selection-end-column="98" />
1318
+          <folding />
1319
+        </state>
1320
+      </provider>
1321
+    </entry>
1322
+    <entry file="file://$PROJECT_DIR$/src/main/java/com/zipcodewilmington/streams/StreamFilter.java">
1323
+      <provider selected="true" editor-type-id="text-editor">
1324
+        <state relative-caret-position="-514">
1325
+          <caret line="36" column="10" lean-forward="false" selection-start-line="36" selection-start-column="10" selection-end-line="36" selection-end-column="10" />
1414
           <folding />
1326
           <folding />
1415
         </state>
1327
         </state>
1416
       </provider>
1328
       </provider>

+ 1
- 7
src/main/java/com/zipcodewilmington/streams/anthropoid/Person.java 查看文件

17
     public final long personalId;
17
     public final long personalId;
18
     public final Date birthDate;
18
     public final Date birthDate;
19
     public final String[] aliases;
19
     public final String[] aliases;
20
-    /**
21
-     * @param name - name of person
22
-     * @param age - age of person
23
-     * @param isMale - gender flag
24
-     * @param personalId - unique id
25
-     * @param birthDate - date of birth
26
-     */
20
+
27
     Person(String name, int age, boolean isMale, long personalId, Date birthDate, String... aliases) {
21
     Person(String name, int age, boolean isMale, long personalId, Date birthDate, String... aliases) {
28
         this.name = name;
22
         this.name = name;
29
         this.isMale = isMale;
23
         this.isMale = isMale;

+ 2
- 1
src/main/java/com/zipcodewilmington/streams/anthropoid/PersonFactory.java 查看文件

28
         long personalId = System.nanoTime();
28
         long personalId = System.nanoTime();
29
         Date birthDate = RandomUtils.createDate(1950, 2010);
29
         Date birthDate = RandomUtils.createDate(1950, 2010);
30
 
30
 
31
-
32
         Person randomPerson = new Person(name, age, isMale, personalId, birthDate, aliases);
31
         Person randomPerson = new Person(name, age, isMale, personalId, birthDate, aliases);
33
         PersonWarehouse.addPerson(randomPerson);
32
         PersonWarehouse.addPerson(randomPerson);
34
         return randomPerson;
33
         return randomPerson;
35
     }
34
     }
36
 
35
 
37
     /**
36
     /**
37
+     * Section 8.8
38
      * @param personCount - number of Person objects to create
38
      * @param personCount - number of Person objects to create
39
      * @return - ArrayList of Person objects
39
      * @return - ArrayList of Person objects
40
      */ // TODO
40
      */ // TODO
53
 
53
 
54
 
54
 
55
     /**
55
     /**
56
+     * Section 8.2
56
      * @param personCount - number of Person objects to create
57
      * @param personCount - number of Person objects to create
57
      * @return - Stream representation of collection of Person objects
58
      * @return - Stream representation of collection of Person objects
58
      */ // TODO
59
      */ // TODO

+ 17
- 1
src/main/java/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.java 查看文件

11
 
11
 
12
 /**
12
 /**
13
  * Created by leon on 5/29/17.
13
  * Created by leon on 5/29/17.
14
- * The warehouse is responsible for storing, retrieving, and filtering people
14
+ * The warehouse is responsible for storing, retrieving, and filtering personSequence
15
  */
15
  */
16
 public class PersonWarehouse {
16
 public class PersonWarehouse {
17
     private static final LoggerHandler loggerHandler = LoggerWarehouse.getLogger(PersonWarehouse.class);
17
     private static final LoggerHandler loggerHandler = LoggerWarehouse.getLogger(PersonWarehouse.class);
57
         return people.parallelStream().collect(
57
         return people.parallelStream().collect(
58
                 Collectors.toMap(p -> p.getPersonalId(), p -> p.getName()));
58
                 Collectors.toMap(p -> p.getPersonalId(), p -> p.getName()));
59
     }
59
     }
60
+
61
+
62
+    /**
63
+     * @return Stream of Stream of Aliases
64
+     */ // TODO
65
+    public static Stream<Stream<String>> getNestedAliases() {
66
+        return people.parallelStream().map(person -> Stream.of(person.getAliases()));
67
+    }
68
+
69
+
70
+    /**
71
+     * @return Stream of all Aliases
72
+     */ // TODO
73
+    public static Stream<String> getAllAliases() {
74
+        return people.parallelStream().flatMap(person -> Stream.of(person.getAliases()));
75
+    }
60
 }
76
 }

+ 1
- 1
src/main/java/com/zipcodewilmington/streams/conversions/ArrayConverter.java 查看文件

33
 
33
 
34
     @Override
34
     @Override
35
     public Person[] toArray() {
35
     public Person[] toArray() {
36
-        return this.people;
36
+        return this.personSequence;
37
     }
37
     }
38
 }
38
 }

+ 19
- 3
src/main/java/com/zipcodewilmington/streams/conversions/ConversionAgent.java 查看文件

6
 import java.util.function.Function;
6
 import java.util.function.Function;
7
 import java.util.function.Predicate;
7
 import java.util.function.Predicate;
8
 import java.util.stream.Stream;
8
 import java.util.stream.Stream;
9
+
9
 /**
10
 /**
10
  * Created by leon on 5/25/17.
11
  * Created by leon on 5/25/17.
11
  * ConversionAgent is responsible for conversion between different object sequent data types
12
  * ConversionAgent is responsible for conversion between different object sequent data types
12
  * Object sequent data types include: collections, arrays, lists, maps, iterators
13
  * Object sequent data types include: collections, arrays, lists, maps, iterators
14
+ *
15
+ * @ATTENTION_TO_STUDENTS You are FORBIDDEN from modifying this class
13
  */
16
  */
14
-public abstract class ConversionAgent<T> {
15
-    protected T people;
17
+public abstract class ConversionAgent<T, R> {
18
+    protected T personSequence;
16
 
19
 
17
     public ConversionAgent(T objectSequence) {
20
     public ConversionAgent(T objectSequence) {
18
-        this.people = objectSequence;
21
+        this.personSequence = objectSequence;
19
     }
22
     }
20
 
23
 
24
+    /**
25
+     * @return list representation of this object sequence
26
+     */
21
     abstract public List<Person> toList();
27
     abstract public List<Person> toList();
22
 
28
 
29
+    /**
30
+     * @return stream representation of this object sequence
31
+     */
23
     abstract public Stream<Person> toStream();
32
     abstract public Stream<Person> toStream();
24
 
33
 
34
+    /**
35
+     * @return array representation of this object sequence
36
+     */
25
     abstract public Person[] toArray();
37
     abstract public Person[] toArray();
26
 
38
 
39
+    /**
40
+     * @param predicate Represents a predicate (boolean-valued function) of one argument
41
+     * @return stream representation of respectively filtered
42
+     */
27
     public Stream<Person> filter(Predicate<? super Person> predicate) {
43
     public Stream<Person> filter(Predicate<? super Person> predicate) {
28
         return toStream().filter(predicate);
44
         return toStream().filter(predicate);
29
     }
45
     }

+ 1
- 1
src/main/java/com/zipcodewilmington/streams/conversions/ListConverter.java 查看文件

22
 
22
 
23
     @Override
23
     @Override
24
     public List<Person> toList() {
24
     public List<Person> toList() {
25
-        return this.people;
25
+        return this.personSequence;
26
     }
26
     }
27
 
27
 
28
     //TODO
28
     //TODO

+ 1
- 1
src/main/java/com/zipcodewilmington/streams/conversions/StreamConverter.java 查看文件

14
     private final List<Person> personList;
14
     private final List<Person> personList;
15
     public StreamConverter(Stream<Person> people) {
15
     public StreamConverter(Stream<Person> people) {
16
         super(people);
16
         super(people);
17
-        this.personList = super.people.collect(Collectors.toList());
17
+        this.personList = super.personSequence.collect(Collectors.toList());
18
     }
18
     }
19
 
19
 
20
     public StreamConverter(int collectionSize) {
20
     public StreamConverter(int collectionSize) {

+ 1
- 0
src/main/java/com/zipcodewilmington/streams/tools/ReflectionUtils.java 查看文件

3
 import java.lang.reflect.Field;
3
 import java.lang.reflect.Field;
4
 import java.util.HashMap;
4
 import java.util.HashMap;
5
 import java.util.Iterator;
5
 import java.util.Iterator;
6
+import java.util.stream.Stream;
6
 
7
 
7
 /**
8
 /**
8
  * Created by leon on 5/19/17.
9
  * Created by leon on 5/19/17.

+ 5
- 1
src/main/java/com/zipcodewilmington/streams/tools/StringUtils.java 查看文件

17
     /**
17
     /**
18
      * @param numberOfRepeats - number of times to repeat this string
18
      * @param numberOfRepeats - number of times to repeat this string
19
      * @param val             - value of string to repeat
19
      * @param val             - value of string to repeat
20
-     * @return - `people` concatenated with itself `numberOfRepeats` times
20
+     * @return - `personSequence` concatenated with itself `numberOfRepeats` times
21
      */
21
      */
22
     public static String repeatString(int numberOfRepeats, String val) {
22
     public static String repeatString(int numberOfRepeats, String val) {
23
         StringBuffer sb = new StringBuffer();
23
         StringBuffer sb = new StringBuffer();
46
         return padLeft(s, -n);
46
         return padLeft(s, -n);
47
     }
47
     }
48
 
48
 
49
+    /**
50
+     * @param str string to check
51
+     * @return true if `str` is a palindrome
52
+     */
49
     public static boolean isPalindromeIgnoreCase(String str) {
53
     public static boolean isPalindromeIgnoreCase(String str) {
50
         return new StringBuilder(str).reverse().toString().equalsIgnoreCase(str);
54
         return new StringBuilder(str).reverse().toString().equalsIgnoreCase(str);
51
     }
55
     }

+ 31
- 1
src/test/java/com/zipcodewilmington/streams/anthropoid/TestPerson.java 查看文件

1
 package com.zipcodewilmington.streams.anthropoid;
1
 package com.zipcodewilmington.streams.anthropoid;
2
 
2
 
3
+import com.zipcodewilmington.streams.tools.ReflectionUtils;
4
+import org.junit.Assert;
5
+
6
+import java.lang.reflect.Field;
7
+import java.util.HashMap;
8
+import java.util.Map;
9
+
3
 /**
10
 /**
4
  * Created by leon on 5/25/17.
11
  * Created by leon on 5/25/17.
5
  *
12
  *
6
  * @ATTENTION_TO_STUDENTS You are FORBIDDEN from modifying this class
13
  * @ATTENTION_TO_STUDENTS You are FORBIDDEN from modifying this class
7
  */
14
  */
8
-public class TestPerson {
15
+public final class TestPerson {
16
+    private TestPerson() {
17
+    }
18
+
19
+    public static void checkPeople(Person... people) {
20
+        for (Person person : people) {
21
+            checkPerson(person);
22
+        }
23
+
24
+    }
25
+
26
+    private static void checkPerson(Person person) {
27
+        String messageCheckKey = "Ensuring field is non-null";
28
+        String messageCheckValue = "Ensuring field-value is non-null";
29
+
30
+        HashMap<Field, String> fieldMap = ReflectionUtils.getFieldMap(person);
31
+        for (Map.Entry<Field, String> entry : fieldMap.entrySet()) {
32
+            Field key = entry.getKey();
33
+            String value = entry.getValue();
34
+
35
+            Assert.assertTrue(messageCheckKey, key != null);
36
+            Assert.assertTrue(messageCheckValue, value != null);
37
+        }
38
+    }
9
 }
39
 }

+ 1
- 18
src/test/java/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.java 查看文件

33
         checkStream(PersonFactory.createPersonStream(collectionSize));
33
         checkStream(PersonFactory.createPersonStream(collectionSize));
34
     }
34
     }
35
 
35
 
36
-    //8.1 - 8.6; 8.7 - rest
37
     private final void checkStream(Stream<Person> personStream) {
36
     private final void checkStream(Stream<Person> personStream) {
38
         String messageCheckSize = "Ensuring appropriately sized stream was produced.";
37
         String messageCheckSize = "Ensuring appropriately sized stream was produced.";
39
 
38
 
40
         Person[] personArray = personStream.toArray(Person[]::new);
39
         Person[] personArray = personStream.toArray(Person[]::new);
41
         Assert.assertEquals(messageCheckSize, collectionSize, personArray.length);
40
         Assert.assertEquals(messageCheckSize, collectionSize, personArray.length);
42
-        for (Person person : personArray) {
43
-           checkPerson(person);
44
-        }
45
-    }
46
-
47
-    private final void checkPerson(Person person) {
48
-        String messageCheckKey = "Ensuring field is non-null";
49
-        String messageCheckValue = "Ensuring field-value is non-null";
50
-
51
-        HashMap<Field, String> fieldMap = ReflectionUtils.getFieldMap(person);
52
-        for (Map.Entry<Field, String> entry : fieldMap.entrySet()) {
53
-            Field key = entry.getKey();
54
-            String value = entry.getValue();
55
-
56
-            Assert.assertTrue(messageCheckKey, key != null);
57
-            Assert.assertTrue(messageCheckValue, value != null);
58
-        }
41
+        TestPerson.checkPeople(personArray);
59
     }
42
     }
60
 }
43
 }

+ 123439
- 123439
target/PersonWarehouse.leonlog
文件差異過大導致無法顯示
查看文件


二進制
target/classes/com/zipcodewilmington/streams/anthropoid/PersonWarehouse.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/conversions/ArrayConverter.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/conversions/ConversionAgent.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/conversions/ListConverter.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/conversions/StreamConverter.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils$1.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/tools/ReflectionUtils.class 查看文件


二進制
target/classes/com/zipcodewilmington/streams/tools/StringUtils.class 查看文件


+ 1
- 1
target/global.leonlog 查看文件

1
-May 30, 2017 4:24:18 PM com.zipcodewilmington.streams.tools.logging.LoggerHandler log
1
+May 31, 2017 7:13:01 AM com.zipcodewilmington.streams.tools.logging.LoggerHandler log
2
 INFO: Instantiating logger for [ com.zipcodewilmington.streams.anthropoid.PersonWarehouse ] ... 
2
 INFO: Instantiating logger for [ com.zipcodewilmington.streams.anthropoid.PersonWarehouse ] ... 

二進制
target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPerson.class 查看文件


二進制
target/test-classes/com/zipcodewilmington/streams/anthropoid/TestPersonFactory.class 查看文件