From 144b17c87b1699be5dda4aedbb229ed7f06f46b6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A1ra=20Juho=C5=A1ov=C3=A1?=
<s.juhosova@student.tudelft.nl>
Date: Fri, 1 May 2020 13:46:45 +0200
Subject: [PATCH] Set-up gradle project
---
.gitattributes | 7 +
.gitignore | 28 +
LICENSE | 661 +++++++++++++++++++++++
LICENSE.header | 17 +
LICENSE.header.java | 17 +
build.gradle.kts | 169 ++++++
eclipse-formatter.xml | 354 ++++++++++++
gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 58695 bytes
gradle/wrapper/gradle-wrapper.properties | 5 +
gradlew | 183 +++++++
gradlew.bat | 100 ++++
importorder.txt | 6 +
settings.gradle.kts | 10 +
13 files changed, 1557 insertions(+)
create mode 100644 .gitattributes
create mode 100644 .gitignore
create mode 100644 LICENSE
create mode 100644 LICENSE.header
create mode 100644 LICENSE.header.java
create mode 100644 build.gradle.kts
create mode 100644 eclipse-formatter.xml
create mode 100644 gradle/wrapper/gradle-wrapper.jar
create mode 100644 gradle/wrapper/gradle-wrapper.properties
create mode 100755 gradlew
create mode 100644 gradlew.bat
create mode 100644 importorder.txt
create mode 100644 settings.gradle.kts
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..56c6e0f
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,7 @@
+* text eol=lf
+
+# Denote all files that are truly binary and should not be modified.
+*.png binary
+*.jpg binary
+*.jar binary
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8db3dab
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,28 @@
+generated
+# Gradle
+.gradle/
+build/
+bin/
+out/
+lib/
+
+# Maven
+target/
+
+# IntelliJ
+.idea/
+*.iml
+*.ipr
+*.iws
+
+# Eclipse
+.classpath
+.project
+.settings/
+.springBeans
+
+application.properties
+log4j.properties
+
+#h2 databases
+*.db
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bb402d1
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ Labrador
+ Copyright (C) 2019 EIP / Labrador
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<http://www.gnu.org/licenses/>.
diff --git a/LICENSE.header b/LICENSE.header
new file mode 100644
index 0000000..c606bf0
--- /dev/null
+++ b/LICENSE.header
@@ -0,0 +1,17 @@
+Librador - A utilities library for Labrador
+Copyright (C) 2020- Delft University of Technology
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU Affero General Public License as
+published by the Free Software Foundation, either version 3 of the
+License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Affero General Public License for more details.
+
+You should have received a copy of the GNU Affero General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
diff --git a/LICENSE.header.java b/LICENSE.header.java
new file mode 100644
index 0000000..9b746b7
--- /dev/null
+++ b/LICENSE.header.java
@@ -0,0 +1,17 @@
+/*
+ * Librador - A utilities library for Labrador
+ * Copyright (C) 2020- Delft University of Technology
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000..1341a6b
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,169 @@
+import com.diffplug.gradle.spotless.SpotlessExtension
+import nl.javadude.gradle.plugins.license.DownloadLicensesExtension
+import nl.javadude.gradle.plugins.license.LicenseExtension
+
+group = "nl.tudelft.ewi.labrador"
+version = "0.1.0"
+
+val javaVersion = JavaVersion.VERSION_11
+
+val springBootVersion: String = "2.1.7.RELEASE"
+val springDocVersion = "1.2.32"
+val jacksonVersion = "2.10.3"
+val lombokVersion = "1.18.12"
+val guavaVersion = "r05"
+val modelmapperVersion = "2.3.6"
+
+// The repositories used to lookup dependencies.
+repositories {
+ mavenLocal()
+ mavenCentral()
+
+ maven {
+ url = uri("https://build.shibboleth.net/nexus/content/repositories/releases")
+ }
+}
+
+// The plugins used by Gradle to generate files, start Spring boot, perform static analysis etc.
+plugins {
+ // Plugin for the Kotlin-DSL to be on classpath, disabled
+ // because it does not need to be applied during build.
+ `kotlin-dsl` apply false
+
+ // Standard plugins for Gradle to work properly
+ java
+ idea
+ jacoco
+ maven
+
+ // Spotless plugin for checking style of Java code.
+ // TODO: Check if this works after upgrade 3.42.2 -> 3.27.2
+ id("com.diffplug.gradle.spotless").version("3.27.2")
+
+ // Plugin for checking license headers within our code and files.
+ id("com.github.hierynomus.license").version("0.15.0")
+ id("com.github.hierynomus.license-report").version("0.15.0")
+}
+
+sourceSets {
+ main {
+ java {
+ srcDir(file("src/main/java"))
+ }
+
+ }
+
+ test {
+ java {
+ srcDir(file("src/test/java"))
+ }
+ }
+}
+
+///// Plugins configurations ///////
+
+java {
+ sourceCompatibility = javaVersion
+ targetCompatibility = javaVersion
+}
+
+// Configure license plugins.
+configure<DownloadLicensesExtension> {
+ includeProjectDependencies = true
+}
+
+configure<LicenseExtension> {
+ header = file("$rootDir/LICENSE.header")
+ skipExistingHeaders = false
+
+ mapping(mapOf(
+ "java" to "SLASHSTAR_STYLE"
+ ))
+
+ excludes(listOf(
+ "**/*.json"
+ ))
+}
+
+// Configure Spotless plugin for style checking Java code.
+configure<SpotlessExtension> {
+ java {
+ // Use the eclipse formatter format and import order.
+ eclipse().configFile(file("eclipse-formatter.xml"))
+ importOrderFile(file("$rootDir/importorder.txt"))
+
+ // Check for a license header in the form of LICENSE.header.java.
+ licenseHeaderFile(file("$rootDir/LICENSE.header.java"))
+
+
+
+ // Default added rules.
+ paddedCell()
+ removeUnusedImports()
+ trimTrailingWhitespace()
+ endWithNewline()
+ }
+}
+
+
+
+/////// TASKS ///////
+val jacocoTestReport by tasks.getting(JacocoReport::class) {
+ group = "Reporting"
+ reports {
+ xml.isEnabled = true
+ csv.isEnabled = false
+
+ html.destination = file("$buildDir/reports/coverage")
+ }
+}
+
+tasks.withType<Test>().configureEach {
+ useJUnitPlatform()
+ testLogging {
+ events("passed", "skipped", "failed")
+ }
+}
+
+dependencies {
+
+ // Generic Spring Boot starter dependencies
+ implementation("org.springframework.boot", "spring-boot-devtools", springBootVersion)
+ implementation("org.springframework.boot", "spring-boot-starter", springBootVersion)
+ implementation("org.springframework.boot", "spring-boot-starter-data-jpa", springBootVersion)
+ implementation("org.springframework.boot", "spring-boot-starter-data-rest", springBootVersion)
+ implementation("org.springframework.boot", "spring-boot-starter-security", springBootVersion)
+ implementation("org.springframework.boot", "spring-boot-starter-web", springBootVersion)
+
+ // Dependencies for generating API documentation
+ implementation("org.springdoc", "springdoc-openapi-webmvc-core", springDocVersion)
+ implementation("org.springdoc", "springdoc-openapi-ui", springDocVersion)
+
+ // Dependency for mapping one data class to another
+ implementation("org.modelmapper", "modelmapper", modelmapperVersion)
+
+ // Jackson
+ implementation("com.fasterxml.jackson.core", "jackson-core", jacksonVersion)
+
+ // Guava
+ implementation("com.google.guava", "guava", guavaVersion)
+
+ // Test dependencies
+ testImplementation("org.springframework.boot", "spring-boot-starter-test", springBootVersion) {
+ exclude("junit", "junit")
+ }
+ testImplementation("org.junit.jupiter:junit-jupiter:5.6.2")
+ testImplementation("org.mockito:mockito-junit-jupiter:3.3.3")
+ runtimeOnly("org.junit.jupiter:junit-jupiter-engine:5.3.1")
+
+ // Lombok for generation of builder pattern, getters, setters, constructors, etc.
+ compileOnly("org.projectlombok", "lombok", lombokVersion)
+ testCompileOnly("org.projectlombok", "lombok", lombokVersion)
+ annotationProcessor("org.projectlombok", "lombok", lombokVersion)
+ testAnnotationProcessor("org.projectlombok", "lombok", lombokVersion)
+
+ // Annotation Processors for Hibernate and QueryDSL
+ annotationProcessor("javax.annotation", "javax.annotation-api", "1.3.2")
+}
+
+
diff --git a/eclipse-formatter.xml b/eclipse-formatter.xml
new file mode 100644
index 0000000..eb69ded
--- /dev/null
+++ b/eclipse-formatter.xml
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="16">
+<profile kind="CodeFormatterProfile" name="Queue" version="16">
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="separate_lines_if_not_empty"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="20"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="110"/>
+<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="110"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
+</profile>
+</profiles>
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..f3d88b1c2faf2fc91d853cd5d4242b5547257070
GIT binary patch
literal 58695
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
literal 0
HcmV?d00001
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..ba94df8
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..2fe81a7
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,183 @@
+#!/usr/bin/env sh
+
+#
+# Copyright 2015 the original author or authors.
+#
+# 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
+#
+# https://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.
+#
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=`expr $i + 1`
+ done
+ case $i in
+ 0) set -- ;;
+ 1) set -- "$args0" ;;
+ 2) set -- "$args0" "$args1" ;;
+ 3) set -- "$args0" "$args1" "$args2" ;;
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=`save "$@"`
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..9618d8d
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,100 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/importorder.txt b/importorder.txt
new file mode 100644
index 0000000..c123c41
--- /dev/null
+++ b/importorder.txt
@@ -0,0 +1,6 @@
+#Organize Import Order
+#Fri Aug 23 16:13:26 CEST 2019
+3=com
+2=org
+1=javax
+0=java
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 0000000..548e170
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1,10 @@
+rootProject.name = "librador"
+
+pluginManagement {
+ repositories {
+ mavenLocal()
+ mavenCentral()
+
+ gradlePluginPortal()
+ }
+}
--
GitLab