diff --git a/.classpath b/.classpath index 9f1f1b2..7159d62 100644 --- a/.classpath +++ b/.classpath @@ -15,5 +15,10 @@ + + + + + diff --git a/lib/commons-beanutils-1.9.3.jar b/lib/commons-beanutils-1.9.3.jar new file mode 100644 index 0000000..6728154 Binary files /dev/null and b/lib/commons-beanutils-1.9.3.jar differ diff --git a/lib/commons-beanutils-1.9.3_LICENSE.txt b/lib/commons-beanutils-1.9.3_LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/lib/commons-beanutils-1.9.3_LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/commons-collections4-4.3.jar b/lib/commons-collections4-4.3.jar new file mode 100644 index 0000000..307012f Binary files /dev/null and b/lib/commons-collections4-4.3.jar differ diff --git a/lib/commons-collections4-4.3_LICENSE.txt b/lib/commons-collections4-4.3_LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/lib/commons-collections4-4.3_LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/commons-lang3-3.9.jar b/lib/commons-lang3-3.9.jar new file mode 100644 index 0000000..0d89693 Binary files /dev/null and b/lib/commons-lang3-3.9.jar differ diff --git a/lib/commons-lang3-3.9_LICENSE.txt b/lib/commons-lang3-3.9_LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/lib/commons-lang3-3.9_LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/commons-text-1.6.jar b/lib/commons-text-1.6.jar new file mode 100644 index 0000000..63e4730 Binary files /dev/null and b/lib/commons-text-1.6.jar differ diff --git a/lib/commons-text-1.6_LICENSE.txt b/lib/commons-text-1.6_LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/lib/commons-text-1.6_LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/opencsv-4.6.jar b/lib/opencsv-4.6.jar new file mode 100644 index 0000000..a2d5d57 Binary files /dev/null and b/lib/opencsv-4.6.jar differ diff --git a/src/core/BaseLocFile.java b/src/core/BaseLocFile.java index 4f2bd67..bbcfb62 100644 --- a/src/core/BaseLocFile.java +++ b/src/core/BaseLocFile.java @@ -2,6 +2,8 @@ package core; import java.nio.file.Path; import java.util.ArrayList; +import java.util.List; + import dataStructures.TaggedPairStore; import utils.GlobalLog; import utils.LogFilter; @@ -138,4 +140,9 @@ public abstract class BaseLocFile { return stringStore.toString(); } + + public List toConfigList(); + { + + } } diff --git a/src/core/CommandEnabler.java b/src/core/CommandEnabler.java index d6c2ac6..b8da3e2 100644 --- a/src/core/CommandEnabler.java +++ b/src/core/CommandEnabler.java @@ -13,7 +13,7 @@ import utils.LogFilter; // commands that are being looked up will behave slightly differently so trimming // rules for this file are different than the localization ones - this is more // aggresive with whitespace removal. -public class CommandEnabler extends BaseKeyValueFile implements IConfigSection +public class CommandEnabler extends BaseKeyValueFile implements DEPRECATED_IConfigSection { // Config/const variables public static final String enabled = "1"; diff --git a/src/core/Config.java b/src/core/Config.java index 4f32ffd..b9f6a65 100644 --- a/src/core/Config.java +++ b/src/core/Config.java @@ -1,172 +1,31 @@ package core; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; +import java.util.List; import java.util.Vector; -import utils.GlobalLog; -import utils.LogFilter; -import utils.io.FileMonitor; -import utils.io.FileUtils; public class Config -{ - private static final String filepath = Constants.AssetDirectory + Constants.ConfigFilename; +{ + ConfigCSV configCSV; + List sections; public static Config instance; - - // Private - private Vector sections; - private FileMonitor monitoredConfigFile; public Config() { if(instance == null) { - // Create local variables sections = new Vector(); + + configCSV = new ConfigCSV(sections, "./config.csv"); + configCSV.writeFile(); - // Add all sections - sections.add(new LocCommands()); - sections.add(new LocStrings()); - sections.add(new CommandEnabler()); - - // Read file in and parse everything out - performStartup(); - - // Being monitoring configs and mark this as the instance now that it's made - monitoredConfigFile = new FileMonitor(filepath); instance = this; } else { - GlobalLog.error(LogFilter.Core, "You can't have two of the following: " + this.getClass().getSimpleName()); + System.out.println("Only one config class is allowed, period. Aborting."); + System.out.flush(); System.exit(-1); } } - - // Perform startup - private void performStartup() - { - File configFile = new File(filepath); - - if(configFile.exists()) - { - reformConfig(configFile); - } - else - { - try - { - configFile.createNewFile(); - } - catch (IOException e) - { - GlobalLog.error(LogFilter.Core, "Failed to load config or create empty config at " + filepath); - System.exit(-1); - } - } - } - - public static final String sectionStart = "[["; - public static final String sectionEnd = "]]"; - public static final String headerStart = "["; - public static final String headerEnd = "]"; - public static final String pairSplit = "="; - public static final String pairSeparator = "\n"; - - private void reformConfig(File configFile) - { - // Read and update - String configContents = FileUtils.readContent(configFile); - readConfigs(configContents); - - // Form updated data as necessary for autogeneration - String output = combineConfigs(); - - // Write to file. - try - { - OutputStreamWriter fileWriter = new OutputStreamWriter(new FileOutputStream(configFile), StandardCharsets.UTF_8); - fileWriter.write(output); - fileWriter.close(); - } - catch (IOException e) - { - GlobalLog.error(LogFilter.Core, "Config writing failure."); - GlobalLog.error(LogFilter.Core, e.getMessage()); - } - } - - public void readConfigs(String fullContents) - { - String[] str = fullContents.split(pairSeparator); - HashMap parsedSections = new HashMap(); - - String currentHeader = ""; - for(int i = 0; i < str.length; ++i) - { - String line = str[i].trim(); - if(line.startsWith(sectionStart) && line.endsWith(sectionEnd)) - { - currentHeader = line.substring(sectionStart.length(), line.length() - sectionEnd.length()); - } - else - { - String sectionContents = parsedSections.getOrDefault(currentHeader, ""); - parsedSections.put(currentHeader, sectionContents + line + pairSeparator); - } - } - - for(int i = 0; i < sections.size(); ++i) - { - IConfigSection section = sections.get(i); - String header = section.getHeader(); - String content = parsedSections.getOrDefault(header, null); - - if(content != null) - { - section.read(content); - } - else - { - GlobalLog.warn(LogFilter.Core, "Mismatch during config parsing - expected but did not find " + header); - } - } - } - - public String combineConfigs() - { - String output = ""; - - for(int i = 0; i < sections.size(); ++i) - { - // If not the first section, add spacing! - if(i != 0) - { - for(int spacing = 0; spacing < 3; ++spacing) - { - output += pairSeparator; - } - } - - IConfigSection section = sections.get(i); - output += sectionStart + section.getHeader() + sectionEnd + pairSeparator; - output += section.write() + pairSeparator; - } - - return output; - } - - public void upkeep() - { - monitoredConfigFile.update((monitoredFile) -> { - File configFile = new File(filepath); - reformConfig(configFile); - }); - } - } diff --git a/src/core/ConfigCSV.java b/src/core/ConfigCSV.java new file mode 100644 index 0000000..1a276e8 --- /dev/null +++ b/src/core/ConfigCSV.java @@ -0,0 +1,146 @@ +package core; + +import java.io.File; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import com.opencsv.CSVReader; +import com.opencsv.CSVReaderBuilder; +import com.opencsv.CSVWriter; + +public class ConfigCSV +{ + // Variables + private final String path; + private List fileContents; + + // Constructor + public ConfigCSV(List sections, String path) + { + this.path = path; + fileContents = new Vector(); + + read(path); + } + + // Creates the writer in the format we desire. + public static CSVWriter makeWriter(Writer writer) + { + return new CSVWriter(writer, + CSVWriter.DEFAULT_SEPARATOR, + CSVWriter.DEFAULT_QUOTE_CHARACTER, + '\\', + CSVWriter.DEFAULT_LINE_END); + } + + // Read the file. This is internal only. + private void read(String filepath) + { + try + { + File configFile = new File(filepath); + + // If we had to create a new file, write the default header into it. + if(configFile.createNewFile()) + { + Writer writer = Files.newBufferedWriter(Paths.get(path)); + CSVWriter csvWriter = makeWriter(writer); + csvWriter.writeNext(ConfigItem.header); + csvWriter.close(); + } + + Reader reader = Files.newBufferedReader(Paths.get(filepath)); + CSVReader csvReader = new CSVReaderBuilder(reader).withSkipLines(1).build(); + fileContents.clear(); + + // Read contents. As for the line number, we not only start counting at 1, we also skip the header. + int line = 2; + String[] record = null; + while ((record = csvReader.readNext()) != null) + { + if(record.length < ConfigItem.items) + { + System.out.println("Incorrect number of items on line " + line + " in " + path); + continue; + } + + ConfigItem parsedLine = new ConfigItem(record[0], record[1], record[2]); + System.out.println(parsedLine); + fileContents.add(parsedLine); + ++line; + } + + // Close down + csvReader.close(); + reader.close(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + // Get a copy of the internal items + public List getItems() + { + return Arrays.asList((ConfigItem[])fileContents.toArray()); + } + + // Set the internal items + public void setItems(List newList) + { + fileContents = newList; + } + + // Write out the file, header then body. + public void writeFile() + { + try + { + Writer writer = Files.newBufferedWriter(Paths.get(path)); + CSVWriter csvWriter = makeWriter(writer); + + csvWriter.writeNext(ConfigItem.header); + + for(ConfigItem item : fileContents) + { + csvWriter.writeNext(item.getAll()); + } + + csvWriter.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + + // Static utility function + public static Map> groupByColumn(List items, int columnNumber) + { + if(items == null || items.size() <= 0 || columnNumber < 0) + { + return null; + } + + Map> sortedItems = new HashMap>(); + + for(ConfigItem item : items) + { + String key = item.getColumn(columnNumber); + List list = sortedItems.getOrDefault(key, new Vector()); + list.add(item); + sortedItems.put(key, list); + } + + return sortedItems; + } +} diff --git a/src/core/ConfigItem.java b/src/core/ConfigItem.java new file mode 100644 index 0000000..5e73eb5 --- /dev/null +++ b/src/core/ConfigItem.java @@ -0,0 +1,40 @@ +package core; + +// Everything in here must be a string type. This class does not +// perform any parsing past naming columns, and just holds the raw data. +public class ConfigItem +{ + public String type; + public String key; + public String value; + public static final int items = 3; + public static final String[] header = {"Type","Key","Value"}; + + public ConfigItem(String type, String key, String value) + { + this.type = type; + this.key = key; + this.value = value; + } + + public String getColumn(int column) + { + switch(column) + { + case 0: return type; + case 1: return key; + case 2: return value; + default: return null; + } + } + + public String[] getAll() + { + return new String[] {type, key, value}; + } + + public String toString() + { + return "type: " + type + ", key: " + key + ", value: " + value; + } +} diff --git a/src/core/DEPRECATED_Config.java b/src/core/DEPRECATED_Config.java new file mode 100644 index 0000000..f50c383 --- /dev/null +++ b/src/core/DEPRECATED_Config.java @@ -0,0 +1,172 @@ +package core; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Vector; +import utils.GlobalLog; +import utils.LogFilter; +import utils.io.FileMonitor; +import utils.io.FileUtils; + +public class DEPRECATED_Config +{ + private static final String filepath = Constants.AssetDirectory + Constants.ConfigFilename; + + public static DEPRECATED_Config instance; + + // Private + private Vector sections; + private FileMonitor monitoredConfigFile; + + public DEPRECATED_Config() + { + if(instance == null) + { + // Create local variables + sections = new Vector(); + + // Add all sections + sections.add(new LocCommands()); + sections.add(new LocStrings()); + sections.add(new CommandEnabler()); + + // Read file in and parse everything out + performStartup(); + + // Being monitoring configs and mark this as the instance now that it's made + monitoredConfigFile = new FileMonitor(filepath); + instance = this; + } + else + { + GlobalLog.error(LogFilter.Core, "You can't have two of the following: " + this.getClass().getSimpleName()); + System.exit(-1); + } + } + + // Perform startup + private void performStartup() + { + File configFile = new File(filepath); + + if(configFile.exists()) + { + reformConfig(configFile); + } + else + { + try + { + configFile.createNewFile(); + } + catch (IOException e) + { + GlobalLog.error(LogFilter.Core, "Failed to load config or create empty config at " + filepath); + System.exit(-1); + } + } + } + + public static final String sectionStart = "[["; + public static final String sectionEnd = "]]"; + public static final String headerStart = "["; + public static final String headerEnd = "]"; + public static final String pairSplit = "="; + public static final String pairSeparator = "\n"; + + private void reformConfig(File configFile) + { + // Read and update + String configContents = FileUtils.readContent(configFile); + readConfigs(configContents); + + // Form updated data as necessary for autogeneration + String output = combineConfigs(); + + // Write to file. + try + { + OutputStreamWriter fileWriter = new OutputStreamWriter(new FileOutputStream(configFile), StandardCharsets.UTF_8); + fileWriter.write(output); + fileWriter.close(); + } + catch (IOException e) + { + GlobalLog.error(LogFilter.Core, "Config writing failure."); + GlobalLog.error(LogFilter.Core, e.getMessage()); + } + } + + public void readConfigs(String fullContents) + { + String[] str = fullContents.split(pairSeparator); + HashMap parsedSections = new HashMap(); + + String currentHeader = ""; + for(int i = 0; i < str.length; ++i) + { + String line = str[i].trim(); + if(line.startsWith(sectionStart) && line.endsWith(sectionEnd)) + { + currentHeader = line.substring(sectionStart.length(), line.length() - sectionEnd.length()); + } + else + { + String sectionContents = parsedSections.getOrDefault(currentHeader, ""); + parsedSections.put(currentHeader, sectionContents + line + pairSeparator); + } + } + + for(int i = 0; i < sections.size(); ++i) + { + DEPRECATED_IConfigSection section = sections.get(i); + String header = section.getHeader(); + String content = parsedSections.getOrDefault(header, null); + + if(content != null) + { + section.read(content); + } + else + { + GlobalLog.warn(LogFilter.Core, "Mismatch during config parsing - expected but did not find " + header); + } + } + } + + public String combineConfigs() + { + String output = ""; + + for(int i = 0; i < sections.size(); ++i) + { + // If not the first section, add spacing! + if(i != 0) + { + for(int spacing = 0; spacing < 3; ++spacing) + { + output += pairSeparator; + } + } + + DEPRECATED_IConfigSection section = sections.get(i); + output += sectionStart + section.getHeader() + sectionEnd + pairSeparator; + output += section.write() + pairSeparator; + } + + return output; + } + + public void upkeep() + { + monitoredConfigFile.update((monitoredFile) -> { + File configFile = new File(filepath); + reformConfig(configFile); + }); + } + +} diff --git a/src/core/DEPRECATED_IConfigSection.java b/src/core/DEPRECATED_IConfigSection.java new file mode 100644 index 0000000..6574aaa --- /dev/null +++ b/src/core/DEPRECATED_IConfigSection.java @@ -0,0 +1,8 @@ +package core; + +public abstract interface DEPRECATED_IConfigSection +{ + public abstract String getHeader(); + public abstract void read(String contents); + public abstract String write(); +} diff --git a/src/core/IConfigSection.java b/src/core/IConfigSection.java index 6df338e..03300ce 100644 --- a/src/core/IConfigSection.java +++ b/src/core/IConfigSection.java @@ -1,8 +1,16 @@ package core; +import java.util.List; + +// A config section is a unit of config that holds data. public abstract interface IConfigSection { - public abstract String getHeader(); - public abstract void read(String contents); - public abstract String write(); + // Get the title of the section + public abstract String getSectionTitle(); + + // Provide the parsed key and values for a given section + public abstract void consume(List pairs); + + // Ask the section to produce a list of pairs to be written out to the key and value columns in the csv + public abstract List produce(); } diff --git a/src/core/LocCommands.java b/src/core/LocCommands.java index d72379e..4db7132 100644 --- a/src/core/LocCommands.java +++ b/src/core/LocCommands.java @@ -1,6 +1,8 @@ package core; import java.util.ArrayList; +import java.util.List; + import utils.GlobalLog; import utils.LogFilter; import dataStructures.Pair; @@ -43,20 +45,36 @@ public class LocCommands extends BaseLocFile implements IConfigSection instance.stringStore.forEach((pair) -> raw.add((String)((Pair)pair).First )); return raw; } - +// +// @Override +// public String getHeader() { +// return HeaderName; +// } +// +// @Override +// public void read(String contents) { +// updateLocFromString(contents); +// scrapeAll(); +// } +// +// @Override +// public String write() { +// return toString(); +// } + @Override - public String getHeader() { + public String getSectionTitle() { return HeaderName; } @Override - public void read(String contents) { - updateLocFromString(contents); + public void consume(List pairs) { scrapeAll(); } @Override - public String write() { - return toString(); + public List produce() { + // TODO Auto-generated method stub + return; } } diff --git a/src/core/LocStrings.java b/src/core/LocStrings.java index 84d45ea..74dbf8c 100644 --- a/src/core/LocStrings.java +++ b/src/core/LocStrings.java @@ -1,5 +1,7 @@ package core; +import java.util.List; + import utils.GlobalLog; import utils.LogFilter; @@ -41,18 +43,34 @@ public class LocStrings extends BaseLocFile implements IConfigSection } @Override - public String getHeader() { + public String getSectionTitle() { return HeaderName; } @Override - public void read(String contents) { - updateLocFromString(contents); + public void consume(List pairs) { scrapeAll(); } @Override - public String write() { - return toString(); + public List produce() { + // TODO Auto-generated method stub + return null; } + +// @Override +// public String getHeader() { +// return HeaderName; +// } +// +// @Override +// public void read(String contents) { +// updateLocFromString(contents); +// scrapeAll(); +// } +// +// @Override +// public String write() { +// return toString(); +// } } \ No newline at end of file diff --git a/src/core/ObjectBuilderFactory.java b/src/core/ObjectBuilderFactory.java index a7091f8..78cab5f 100644 --- a/src/core/ObjectBuilderFactory.java +++ b/src/core/ObjectBuilderFactory.java @@ -58,7 +58,7 @@ public class ObjectBuilderFactory @SuppressWarnings("unused") private static LocCommands locCommands; // Config - @SuppressWarnings("unused") private static Config config; + @SuppressWarnings("unused") private static DEPRECATED_Config config; // Lazy initialization multithreaded mutex stuff to prevent explosions. // TODO: Investigate using 'synchronized' instead potentially @@ -88,7 +88,7 @@ public class ObjectBuilderFactory // Start by reading from things that are external. Because // we require these things to be resolved before the rest of the application, // we place them here. - config = new Config(); + config = new DEPRECATED_Config(); } finally { diff --git a/src/core/SubCommand.java b/src/core/SubCommand.java index c490c06..2b0b81f 100644 --- a/src/core/SubCommand.java +++ b/src/core/SubCommand.java @@ -18,7 +18,7 @@ public abstract class SubCommand private void Reject(KittyUser user, String reason) { - GlobalLog.Warn(LogFilter.Command, this.getClass().getSimpleName() + " from " + user.name + " rejected due to command's " + reason); + GlobalLog.warn(LogFilter.Command, this.getClass().getSimpleName() + " from " + user.name + " rejected due to command's " + reason); } private boolean CanCall(KittyGuild guild, KittyChannel channel, KittyUser user) @@ -31,7 +31,7 @@ public abstract class SubCommand //TODO: ADD CHANNEL CHECK HERE - if(user.GetRole().getValue() >= roleLevel.getValue()) + if(user.getRole().getValue() >= roleLevel.getValue()) { return true; } diff --git a/src/core/SubCommandFormattable.java b/src/core/SubCommandFormattable.java index 6507847..a76d2f4 100644 --- a/src/core/SubCommandFormattable.java +++ b/src/core/SubCommandFormattable.java @@ -33,8 +33,8 @@ public class SubCommandFormattable public void Call(Response res) { if(resEmbed == null) - res.Call(resString); + res.send(resString); else - res.CallEmbed(resEmbed); + res.send(resEmbed); } } diff --git a/src/core/SubCommandFramework.java b/src/core/SubCommandFramework.java index 8a62ef2..7906468 100644 --- a/src/core/SubCommandFramework.java +++ b/src/core/SubCommandFramework.java @@ -20,9 +20,9 @@ public class SubCommandFramework { name = name.toLowerCase(); if(commands.put(name, command) != null) - GlobalLog.Error("Multiple registration of a name with name '" + name + "'!"); + GlobalLog.error("Multiple registration of a name with name '" + name + "'!"); - GlobalLog.Log("Registered " + name); + GlobalLog.log("Registered " + name); } public SubCommandFormattable run(KittyGuild guild, KittyChannel channel, KittyUser user, String input) diff --git a/src/main/Main.java b/src/main/Main.java index 5ec601a..52038ac 100644 --- a/src/main/Main.java +++ b/src/main/Main.java @@ -7,7 +7,7 @@ import javax.security.auth.login.LoginException; import core.CharacterManager; import core.CommandEnabler; import core.CommandManager; -import core.Config; +import core.DEPRECATED_Config; import core.DatabaseManager; import core.ObjectBuilderFactory; import core.RPManager; diff --git a/src/main/Superintendent.java b/src/main/Superintendent.java index 1b49ecf..d830a97 100644 --- a/src/main/Superintendent.java +++ b/src/main/Superintendent.java @@ -2,7 +2,7 @@ package main; import java.util.concurrent.atomic.AtomicInteger; -import core.Config; +import core.DEPRECATED_Config; import core.DatabaseManager; import core.RPManager; import core.Stats; @@ -74,7 +74,7 @@ public class Superintendent public static boolean perCommandUpkeepPre() { // Upkeep the config file monitoring - Config.instance.upkeep(); + DEPRECATED_Config.instance.upkeep(); return true; }