Compare commits

..

113 Commits

Author SHA1 Message Date
d41077f355 docs: update .all-contributorsrc [skip ci] 2020-08-01 08:45:39 +00:00
e4473e5c88 docs: update README.md [skip ci] 2020-08-01 08:45:38 +00:00
7af544998d Merge pull request #1465 from iluwatar/all-contributors/add-MananS77
docs: add MananS77 as a contributor
2020-08-01 11:08:05 +03:00
0a2c87d49a docs: update .all-contributorsrc [skip ci] 2020-08-01 08:07:21 +00:00
15eb49e574 docs: update README.md [skip ci] 2020-08-01 08:07:20 +00:00
661f9e1373 Merge pull request #1464 from iluwatar/all-contributors/add-charlesfinley
docs: add charlesfinley as a contributor
2020-08-01 10:42:44 +03:00
7908d38604 docs: update .all-contributorsrc [skip ci] 2020-08-01 07:41:48 +00:00
41020982de docs: update README.md [skip ci] 2020-08-01 07:41:47 +00:00
43569ecd66 Merge pull request #1463 from charlesfinley/master
Fixes Issue #1462 - Unit Test assertEquals parameters are reversed
2020-08-01 10:39:20 +03:00
fb6507ceda Corrected assertEquals order for expected, actual. 2020-07-31 22:52:23 -04:00
29f799c815 Corrected assertEquals order for expected, actual. 2020-07-31 22:50:48 -04:00
55bb1f11e0 #590 fix typo 2020-07-30 21:57:07 +03:00
8364b289b4 #590 explanation for Abstract Document 2020-07-30 21:39:11 +03:00
417f21ed3d Code cleanup (#1461)
* Code cleanup

* Fix flux tests

* Fix checkstyle errors

* Fix compile error
2020-07-30 20:28:47 +03:00
5381387026 docs: add xiaod-dev as a contributor (#1460)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 21:03:29 +03:00
f95aadc8f5 docs: add hbothra15 as a contributor (#1459)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

* fix merge

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 20:42:45 +03:00
402b753480 docs: add webpro as a contributor (#1458)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:24:01 +03:00
6a28d09a3c docs: add zd-zero as a contributor (#1457)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:22:29 +03:00
1e38edec15 docs: add rachelcarmena as a contributor (#1456)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:21:07 +03:00
ec7a2025f0 docs: add iamrichardjones as a contributor (#1455)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:19:47 +03:00
de79019ece docs: add Jahhein as a contributor (#1454)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:18:15 +03:00
f2ac53edca docs: add Bobo1239 as a contributor (#1453)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:16:54 +03:00
c9e30390d3 docs: add vertti as a contributor (#1452)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:14:42 +03:00
f49f9a15b6 docs: add d4gg4d as a contributor (#1451)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:13:24 +03:00
f878bf63aa docs: add sivasubramanim as a contributor (#1450)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:11:51 +03:00
51ef7176b1 docs: add grzesiekkedzior as a contributor (#1449)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:08:47 +03:00
047285aed7 docs: add PalAditya as a contributor (#1448)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:07:30 +03:00
4db3a1cfb2 docs: add varunu28 as a contributor (#1447)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:06:01 +03:00
075fbe7433 docs: add yorlov as a contributor (#1446)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 20:04:33 +03:00
1f0a24cefa docs: add trautonen as a contributor (#1445)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-29 19:59:40 +03:00
69341ff712 docs: add IAmPramod as a contributor (#1443)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:53:14 +03:00
a1b2ab129e docs: add Amarnath510 as a contributor (#1442)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:51:03 +03:00
87c2644842 docs: add Anurag870 as a contributor (#1441)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:49:20 +03:00
1d025b7019 docs: add Deathnerd as a contributor (#1440)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:47:29 +03:00
34a36cb519 docs: add Harshrajsinh as a contributor (#1439)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:45:07 +03:00
62ac59afda docs: add MaVdbussche as a contributor (#1438)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:43:26 +03:00
beffc87deb docs: add alexsomai as a contributor (#1437)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:41:47 +03:00
706c5092c1 docs: add amogozov as a contributor (#1436)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:40:00 +03:00
e222a69964 docs: add anthonycampbell as a contributor (#1435)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:38:23 +03:00
9483888b5e docs: add christophercolumbusdog as a contributor (#1434)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:36:36 +03:00
73d55afd58 docs: add dzmitryh as a contributor (#1433)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:34:58 +03:00
1f900d164d docs: add jjjimenez100 as a contributor (#1432)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:33:18 +03:00
5d21a03acd docs: add kaiwinter as a contributor (#1431)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:31:35 +03:00
6c9b912620 docs: add lbroman as a contributor (#1430)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:29:55 +03:00
7fdcd2ec5a docs: add pnowy as a contributor (#1429)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:28:18 +03:00
dafe495610 docs: add prafful1 as a contributor (#1428)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:26:38 +03:00
6f0035e7c2 docs: add sankypanhale as a contributor (#1427)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:25:03 +03:00
652a68b134 docs: add staillebois as a contributor (#1426)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:23:12 +03:00
b5fac5cf86 docs: add valdar-hu as a contributor (#1425)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:21:22 +03:00
ecb7b44f97 docs: add vanogrid as a contributor (#1424)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:19:24 +03:00
1841fba831 docs: add yosfik as a contributor (#1423)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:17:45 +03:00
325f0d93b2 docs: add 7agustibm as a contributor (#1422)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:16:02 +03:00
efd8c8156e docs: add Juaanma as a contributor (#1421)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:14:26 +03:00
ae57ec75f3 docs: add LuigiCortese as a contributor (#1420)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:12:46 +03:00
47acedaaf7 docs: add Rzeposlaw as a contributor (#1419)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 19:10:44 +03:00
65d627b2ed docs: add akrystian as a contributor (#1418)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:49:46 +03:00
b4e4cf9cfe docs: add baislsl as a contributor (#1417)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:48:09 +03:00
b67a019c48 docs: add besok as a contributor (#1416)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:45:53 +03:00
1bbae5fd5a docs: add dmitraver as a contributor (#1415)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:44:29 +03:00
d11b2f06ea docs: add fanofxiaofeng as a contributor (#1414)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:42:55 +03:00
2a66fec6fe docs: add hoangnam2261 as a contributor (#1413)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:41:17 +03:00
a475df845b docs: add jarpit96 as a contributor (#1412)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:38:07 +03:00
1bc77a80f2 docs: add joningiwork as a contributor (#1411)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:36:27 +03:00
9b5ae765fc docs: add kirill-vlasov as a contributor (#1410)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:34:45 +03:00
8e268cf261 docs: add mitchellirvin as a contributor (#1409)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:32:59 +03:00
fe2f8f74a1 docs: add ranjeet-floyd as a contributor (#1408)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:29:41 +03:00
e2a42b0051 docs: add Alwayswithme as a contributor (#1407)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:28:10 +03:00
54bb02f691 docs: add MSaifAsif as a contributor (#1406)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:26:34 +03:00
a70213f852 docs: add kanwarpreet25 as a contributor (#1405)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:25:03 +03:00
19929d9e72 docs: add leonmak as a contributor (#1404)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:23:23 +03:00
09880e3850 docs: add perwramdemark as a contributor (#1403)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:21:41 +03:00
96bfb8bd9f docs: add waisuan as a contributor (#1402)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:19:53 +03:00
a727a1d05b docs: add AnaghaSasikumar as a contributor (#1401)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:18:07 +03:00
46fdc5a54f docs: add christofferh as a contributor (#1400)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:16:12 +03:00
8137609e2f docs: add dgruntz as a contributor (#1399)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:14:30 +03:00
e924c9399a docs: add hannespernpeintner as a contributor (#1398)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:12:47 +03:00
d791c78501 docs: add leogtzr as a contributor (#1397)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:11:09 +03:00
ba485e2c3e docs: add npczwh as a contributor (#1396)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:09:00 +03:00
be54dc1c7e docs: add oconnelc as a contributor (#1395)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:07:15 +03:00
ec80402fe5 docs: add giorgosmav21 as a contributor (#1394)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:05:22 +03:00
d1de465780 docs: add hbothra15 as a contributor (#1393)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:02:13 +03:00
c2fb591749 docs: add igeligel as a contributor (#1392)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 18:00:07 +03:00
c5479cc882 docs: add llorllale as a contributor (#1391)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:58:00 +03:00
7968615ad4 docs: add mookkiah as a contributor (#1390)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:55:53 +03:00
c0d7c8922e docs: add Azureyjt as a contributor (#1388)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:53:30 +03:00
5a23fab795 docs: add vehpsr as a contributor (#1389)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:50:53 +03:00
8c21809dad docs: add ThatGuyWithTheHat as a contributor (#1387)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:49:00 +03:00
37bffb4a99 docs: add gopinath-langote as a contributor (#1386)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:47:06 +03:00
8182405796 docs: add hoswey as a contributor (#1385)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:44:05 +03:00
39e5436ed5 docs: add amit2103 as a contributor (#1384)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:41:35 +03:00
8d6791490b docs: add gwildor28 as a contributor (#1383)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:39:11 +03:00
eb8ddde98f docs: add llitfkitfk as a contributor (#1382)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-29 17:36:32 +03:00
0358fcec4c update readme 2020-07-28 20:53:31 +03:00
023865ad4c docs: add pitsios-s as a contributor (#1381)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-28 20:45:59 +03:00
60ab9fa3ce docs: add qza as a contributor (#1380)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-28 20:43:09 +03:00
f85e4db0be docs: add Tschis as a contributor (#1379)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-28 20:40:11 +03:00
2b095bec28 docs: add ankurkaushal as a contributor (#1378)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-28 20:37:11 +03:00
cfba28f9a4 docs: add okinskas as a contributor (#1377)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ilkka Seppälä <ilkka.seppala@gofore.com>
2020-07-28 20:33:05 +03:00
c0d2c7fdb0 docs: add robertt240 as a contributor (#1376)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 20:23:30 +03:00
96344142e9 docs: add sideris as a contributor (#1375)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:52:31 +03:00
0bc3756250 update all-contributors config 2020-07-28 18:49:46 +03:00
d94199f5ff update readme 2020-07-28 18:23:47 +03:00
b805a7526e docs: add SrdjanPaunovic as a contributor (#1374)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:17:42 +03:00
0cff538c27 docs: add gvsharma as a contributor (#1373)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:16:14 +03:00
452981669b docs: add kapinuss as a contributor (#1372)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:14:37 +03:00
2706c8fc37 docs: add qpi as a contributor (#1371)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:13:03 +03:00
03ebd5f353 docs: add yusufaytas as a contributor (#1370)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:11:29 +03:00
5b269d5af1 docs: add 4lexis as a contributor (#1369)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:09:43 +03:00
0563ac7645 docs: add bernardosulzbach as a contributor (#1368)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:08:01 +03:00
a5ff32c13e docs: add dheeraj-mummareddy as a contributor (#1367)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 18:02:49 +03:00
97adc13a1b docs: add JuhoKang as a contributor (#1366)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 17:57:26 +03:00
d8f12529f2 docs: add ruslanpa as a contributor (#1365)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 17:55:47 +03:00
4c766b9e71 docs: add colinbut as a contributor (#1364)
* docs: update README.md [skip ci]

* docs: update .all-contributorsrc [skip ci]

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
2020-07-28 17:52:39 +03:00
251 changed files with 2359 additions and 1186 deletions

View File

@ -191,9 +191,883 @@
"contributions": [ "contributions": [
"code" "code"
] ]
},
{
"login": "ruslanpa",
"name": "Ruslan",
"avatar_url": "https://avatars2.githubusercontent.com/u/1503411?v=4",
"profile": "https://github.com/ruslanpa",
"contributions": [
"code"
]
},
{
"login": "JuhoKang",
"name": "Juho Kang",
"avatar_url": "https://avatars1.githubusercontent.com/u/4745294?v=4",
"profile": "https://github.com/JuhoKang",
"contributions": [
"code"
]
},
{
"login": "dheeraj-mummareddy",
"name": "Dheeraj Mummareddy",
"avatar_url": "https://avatars2.githubusercontent.com/u/7002230?v=4",
"profile": "https://github.com/dheeraj-mummareddy",
"contributions": [
"code"
]
},
{
"login": "bernardosulzbach",
"name": "Bernardo Sulzbach",
"avatar_url": "https://avatars0.githubusercontent.com/u/8271090?v=4",
"profile": "https://www.bernardosulzbach.com",
"contributions": [
"code"
]
},
{
"login": "4lexis",
"name": "Aleksandar Dudukovic",
"avatar_url": "https://avatars0.githubusercontent.com/u/19871727?v=4",
"profile": "https://github.com/4lexis",
"contributions": [
"code"
]
},
{
"login": "yusufaytas",
"name": "Yusuf Aytaş",
"avatar_url": "https://avatars2.githubusercontent.com/u/1049483?v=4",
"profile": "https://www.yusufaytas.com",
"contributions": [
"code"
]
},
{
"login": "qpi",
"name": "Mihály Kuprivecz",
"avatar_url": "https://avatars2.githubusercontent.com/u/1001491?v=4",
"profile": "http://futurehomes.hu",
"contributions": [
"code"
]
},
{
"login": "kapinuss",
"name": "Stanislav Kapinus",
"avatar_url": "https://avatars0.githubusercontent.com/u/17639945?v=4",
"profile": "https://github.com/kapinuss",
"contributions": [
"code"
]
},
{
"login": "gvsharma",
"name": "GVSharma",
"avatar_url": "https://avatars1.githubusercontent.com/u/6648152?v=4",
"profile": "https://github.com/gvsharma",
"contributions": [
"code"
]
},
{
"login": "SrdjanPaunovic",
"name": "Srđan Paunović",
"avatar_url": "https://avatars1.githubusercontent.com/u/22815104?v=4",
"profile": "https://github.com/SrdjanPaunovic",
"contributions": [
"code"
]
},
{
"login": "sideris",
"name": "Petros G. Sideris",
"avatar_url": "https://avatars3.githubusercontent.com/u/5484694?v=4",
"profile": "https://sideris.xyz/",
"contributions": [
"code"
]
},
{
"login": "IAmPramod",
"name": "Pramod Gupta",
"avatar_url": "https://avatars1.githubusercontent.com/u/2184241?v=4",
"profile": "https://www.linkedin.com/in/pramodgupta3/",
"contributions": [
"review"
]
},
{
"login": "Amarnath510",
"name": "Amarnath Chandana",
"avatar_url": "https://avatars0.githubusercontent.com/u/4599623?v=4",
"profile": "https://amarnath510.github.io/portfolio",
"contributions": [
"code"
]
},
{
"login": "Anurag870",
"name": "Anurag870",
"avatar_url": "https://avatars1.githubusercontent.com/u/6295975?v=4",
"profile": "https://github.com/Anurag870",
"contributions": [
"code"
]
},
{
"login": "Deathnerd",
"name": "Wes Gilleland",
"avatar_url": "https://avatars0.githubusercontent.com/u/1685953?v=4",
"profile": "http://theerroris.me",
"contributions": [
"code"
]
},
{
"login": "Harshrajsinh",
"name": "Harshraj Thakor",
"avatar_url": "https://avatars2.githubusercontent.com/u/22811531?v=4",
"profile": "https://github.com/Harshrajsinh",
"contributions": [
"code"
]
},
{
"login": "MaVdbussche",
"name": "Martin Vandenbussche",
"avatar_url": "https://avatars1.githubusercontent.com/u/26136934?v=4",
"profile": "https://github.com/MaVdbussche",
"contributions": [
"code"
]
},
{
"login": "alexsomai",
"name": "Alexandru Somai",
"avatar_url": "https://avatars1.githubusercontent.com/u/5720977?v=4",
"profile": "https://alexsomai.com",
"contributions": [
"code"
]
},
{
"login": "amogozov",
"name": "Artur Mogozov",
"avatar_url": "https://avatars3.githubusercontent.com/u/7372215?v=4",
"profile": "https://github.com/amogozov",
"contributions": [
"code"
]
},
{
"login": "anthonycampbell",
"name": "anthony",
"avatar_url": "https://avatars3.githubusercontent.com/u/10249255?v=4",
"profile": "https://github.com/anthonycampbell",
"contributions": [
"code"
]
},
{
"login": "christophercolumbusdog",
"name": "Christian Cygnus",
"avatar_url": "https://avatars1.githubusercontent.com/u/9342724?v=4",
"profile": "http://ccygnus.com/",
"contributions": [
"code"
]
},
{
"login": "dzmitryh",
"name": "Dima Gubin",
"avatar_url": "https://avatars2.githubusercontent.com/u/5390492?v=4",
"profile": "https://about.me/dzmitryh",
"contributions": [
"code"
]
},
{
"login": "jjjimenez100",
"name": "Joshua Jimenez",
"avatar_url": "https://avatars3.githubusercontent.com/u/22243493?v=4",
"profile": "https://github.com/jjjimenez100",
"contributions": [
"code"
]
},
{
"login": "kaiwinter",
"name": "Kai Winter",
"avatar_url": "https://avatars0.githubusercontent.com/u/110982?v=4",
"profile": "http://about.me/kaiwinter",
"contributions": [
"code"
]
},
{
"login": "lbroman",
"name": "lbroman",
"avatar_url": "https://avatars1.githubusercontent.com/u/86007?v=4",
"profile": "https://github.com/lbroman",
"contributions": [
"code"
]
},
{
"login": "pnowy",
"name": "Przemek",
"avatar_url": "https://avatars1.githubusercontent.com/u/3254609?v=4",
"profile": "https://przemeknowak.com",
"contributions": [
"code"
]
},
{
"login": "prafful1",
"name": "Prafful Agarwal",
"avatar_url": "https://avatars0.githubusercontent.com/u/14350274?v=4",
"profile": "https://github.com/prafful1",
"contributions": [
"content"
]
},
{
"login": "sankypanhale",
"name": "Sanket Panhale",
"avatar_url": "https://avatars1.githubusercontent.com/u/6478783?v=4",
"profile": "https://github.com/sankypanhale",
"contributions": [
"content"
]
},
{
"login": "staillebois",
"name": "staillebois",
"avatar_url": "https://avatars0.githubusercontent.com/u/23701200?v=4",
"profile": "https://github.com/staillebois",
"contributions": [
"code"
]
},
{
"login": "valdar-hu",
"name": "Krisztián Nagy",
"avatar_url": "https://avatars3.githubusercontent.com/u/17962817?v=4",
"profile": "https://github.com/valdar-hu",
"contributions": [
"code"
]
},
{
"login": "vanogrid",
"name": "Alexander Ivanov",
"avatar_url": "https://avatars0.githubusercontent.com/u/4307918?v=4",
"profile": "https://www.vanogrid.com",
"contributions": [
"code"
]
},
{
"login": "yosfik",
"name": "Yosfik Alqadri",
"avatar_url": "https://avatars3.githubusercontent.com/u/4850270?v=4",
"profile": "https://github.com/yosfik",
"contributions": [
"code"
]
},
{
"login": "7agustibm",
"name": "Agustí Becerra Milà",
"avatar_url": "https://avatars0.githubusercontent.com/u/8149332?v=4",
"profile": "https://github.com/7agustibm",
"contributions": [
"code"
]
},
{
"login": "Juaanma",
"name": "Juan Manuel Suárez",
"avatar_url": "https://avatars3.githubusercontent.com/u/7390500?v=4",
"profile": "https://github.com/Juaanma",
"contributions": [
"code"
]
},
{
"login": "LuigiCortese",
"name": "Luigi Cortese",
"avatar_url": "https://avatars0.githubusercontent.com/u/9956006?v=4",
"profile": "http://www.devsedge.net/",
"contributions": [
"code"
]
},
{
"login": "Rzeposlaw",
"name": "Katarzyna Rzepecka",
"avatar_url": "https://avatars2.githubusercontent.com/u/18425745?v=4",
"profile": "https://github.com/Rzeposlaw",
"contributions": [
"code"
]
},
{
"login": "akrystian",
"name": "adamski.pro",
"avatar_url": "https://avatars1.githubusercontent.com/u/6537430?v=4",
"profile": "http://adamski.pro",
"contributions": [
"code"
]
},
{
"login": "baislsl",
"name": "Shengli Bai",
"avatar_url": "https://avatars0.githubusercontent.com/u/17060584?v=4",
"profile": "https://github.com/baislsl",
"contributions": [
"code"
]
},
{
"login": "besok",
"name": "Boris",
"avatar_url": "https://avatars2.githubusercontent.com/u/29834592?v=4",
"profile": "https://github.com/besok",
"contributions": [
"code"
]
},
{
"login": "dmitraver",
"name": "Dmitry Avershin",
"avatar_url": "https://avatars3.githubusercontent.com/u/1798156?v=4",
"profile": "https://github.com/dmitraver",
"contributions": [
"code"
]
},
{
"login": "fanofxiaofeng",
"name": "靳阳",
"avatar_url": "https://avatars0.githubusercontent.com/u/3983683?v=4",
"profile": "https://github.com/fanofxiaofeng",
"contributions": [
"code"
]
},
{
"login": "hoangnam2261",
"name": "hoangnam2261",
"avatar_url": "https://avatars2.githubusercontent.com/u/31692990?v=4",
"profile": "https://github.com/hoangnam2261",
"contributions": [
"code"
]
},
{
"login": "jarpit96",
"name": "Arpit Jain",
"avatar_url": "https://avatars2.githubusercontent.com/u/10098713?v=4",
"profile": "https://github.com/jarpit96",
"contributions": [
"code"
]
},
{
"login": "joningiwork",
"name": "Jón Ingi Sveinbjörnsson",
"avatar_url": "https://avatars2.githubusercontent.com/u/6115148?v=4",
"profile": "http://joningi.net",
"contributions": [
"code"
]
},
{
"login": "kirill-vlasov",
"name": "Kirill Vlasov",
"avatar_url": "https://avatars3.githubusercontent.com/u/16112495?v=4",
"profile": "https://github.com/kirill-vlasov",
"contributions": [
"code"
]
},
{
"login": "mitchellirvin",
"name": "Mitchell Irvin",
"avatar_url": "https://avatars0.githubusercontent.com/u/16233245?v=4",
"profile": "http://mitchell-irvin.com",
"contributions": [
"code"
]
},
{
"login": "ranjeet-floyd",
"name": "Ranjeet",
"avatar_url": "https://avatars0.githubusercontent.com/u/1992972?v=4",
"profile": "https://ranjeet-floyd.github.io",
"contributions": [
"code"
]
},
{
"login": "Alwayswithme",
"name": "PhoenixYip",
"avatar_url": "https://avatars3.githubusercontent.com/u/3234786?v=4",
"profile": "https://alwayswithme.github.io",
"contributions": [
"code"
]
},
{
"login": "MSaifAsif",
"name": "M Saif Asif",
"avatar_url": "https://avatars1.githubusercontent.com/u/6280554?v=4",
"profile": "https://github.com/MSaifAsif",
"contributions": [
"code"
]
},
{
"login": "kanwarpreet25",
"name": "kanwarpreet25",
"avatar_url": "https://avatars0.githubusercontent.com/u/39183641?v=4",
"profile": "https://github.com/kanwarpreet25",
"contributions": [
"code"
]
},
{
"login": "leonmak",
"name": "Leon Mak",
"avatar_url": "https://avatars3.githubusercontent.com/u/13071508?v=4",
"profile": "http://leonmak.me",
"contributions": [
"code"
]
},
{
"login": "perwramdemark",
"name": "Per Wramdemark",
"avatar_url": "https://avatars2.githubusercontent.com/u/7052193?v=4",
"profile": "http://www.wramdemark.se",
"contributions": [
"code"
]
},
{
"login": "waisuan",
"name": "Evan Sia Wai Suan",
"avatar_url": "https://avatars2.githubusercontent.com/u/10975700?v=4",
"profile": "https://github.com/waisuan",
"contributions": [
"code"
]
},
{
"login": "AnaghaSasikumar",
"name": "AnaghaSasikumar",
"avatar_url": "https://avatars2.githubusercontent.com/u/42939261?v=4",
"profile": "https://github.com/AnaghaSasikumar",
"contributions": [
"code"
]
},
{
"login": "christofferh",
"name": "Christoffer Hamberg",
"avatar_url": "https://avatars1.githubusercontent.com/u/767643?v=4",
"profile": "https://christofferh.com",
"contributions": [
"code"
]
},
{
"login": "dgruntz",
"name": "Dominik Gruntz",
"avatar_url": "https://avatars0.githubusercontent.com/u/1516800?v=4",
"profile": "https://github.com/dgruntz",
"contributions": [
"code"
]
},
{
"login": "hannespernpeintner",
"name": "Hannes",
"avatar_url": "https://avatars3.githubusercontent.com/u/1679437?v=4",
"profile": "https://bitbucket.org/hannespernpeintner/",
"contributions": [
"code"
]
},
{
"login": "leogtzr",
"name": "Leo Gutiérrez Ramírez",
"avatar_url": "https://avatars0.githubusercontent.com/u/1211969?v=4",
"profile": "https://github.com/leogtzr",
"contributions": [
"code"
]
},
{
"login": "npczwh",
"name": "Zhang WH",
"avatar_url": "https://avatars0.githubusercontent.com/u/14066422?v=4",
"profile": "https://github.com/npczwh",
"contributions": [
"code"
]
},
{
"login": "oconnelc",
"name": "Christopher O'Connell",
"avatar_url": "https://avatars0.githubusercontent.com/u/1112973?v=4",
"profile": "https://github.com/oconnelc",
"contributions": [
"code"
]
},
{
"login": "giorgosmav21",
"name": "George Mavroeidis",
"avatar_url": "https://avatars2.githubusercontent.com/u/22855493?v=4",
"profile": "https://github.com/giorgosmav21",
"contributions": [
"code"
]
},
{
"login": "hbothra15",
"name": "Hemant Bothra",
"avatar_url": "https://avatars1.githubusercontent.com/u/7418012?v=4",
"profile": "https://github.com/hbothra15",
"contributions": [
"code",
"design"
]
},
{
"login": "igeligel",
"name": "Kevin Peters",
"avatar_url": "https://avatars1.githubusercontent.com/u/12736734?v=4",
"profile": "https://www.kevinpeters.net/about/",
"contributions": [
"code"
]
},
{
"login": "llorllale",
"name": "George Aristy",
"avatar_url": "https://avatars1.githubusercontent.com/u/2019896?v=4",
"profile": "https://llorllale.github.io/",
"contributions": [
"code"
]
},
{
"login": "mookkiah",
"name": "Mahendran Mookkiah",
"avatar_url": "https://avatars1.githubusercontent.com/u/8975264?v=4",
"profile": "https://github.com/mookkiah",
"contributions": [
"code"
]
},
{
"login": "Azureyjt",
"name": "Azureyjt",
"avatar_url": "https://avatars2.githubusercontent.com/u/18476317?v=4",
"profile": "https://github.com/Azureyjt",
"contributions": [
"code"
]
},
{
"login": "vehpsr",
"name": "gans",
"avatar_url": "https://avatars2.githubusercontent.com/u/3133265?v=4",
"profile": "https://github.com/vehpsr",
"contributions": [
"code"
]
},
{
"login": "ThatGuyWithTheHat",
"name": "Matt",
"avatar_url": "https://avatars0.githubusercontent.com/u/24470582?v=4",
"profile": "https://github.com/ThatGuyWithTheHat",
"contributions": [
"content"
]
},
{
"login": "gopinath-langote",
"name": "Gopinath Langote",
"avatar_url": "https://avatars2.githubusercontent.com/u/10210778?v=4",
"profile": "https://www.linkedin.com/in/gopinathlangote/",
"contributions": [
"code"
]
},
{
"login": "hoswey",
"name": "Hoswey",
"avatar_url": "https://avatars3.githubusercontent.com/u/3689445?v=4",
"profile": "https://github.com/hoswey",
"contributions": [
"code"
]
},
{
"login": "amit2103",
"name": "Amit Pandey",
"avatar_url": "https://avatars3.githubusercontent.com/u/7566692?v=4",
"profile": "https://github.com/amit2103",
"contributions": [
"code"
]
},
{
"login": "gwildor28",
"name": "gwildor28",
"avatar_url": "https://avatars0.githubusercontent.com/u/16000365?v=4",
"profile": "https://github.com/gwildor28",
"contributions": [
"content"
]
},
{
"login": "llitfkitfk",
"name": "田浩",
"avatar_url": "https://avatars1.githubusercontent.com/u/2404785?v=4",
"profile": "https://t.me/paul_docker",
"contributions": [
"content"
]
},
{
"login": "pitsios-s",
"name": "Stamatis Pitsios",
"avatar_url": "https://avatars1.githubusercontent.com/u/6773603?v=4",
"profile": "https://twitter.com/StPitsios",
"contributions": [
"code"
]
},
{
"login": "qza",
"name": "qza",
"avatar_url": "https://avatars3.githubusercontent.com/u/233149?v=4",
"profile": "https://github.com/qza",
"contributions": [
"code"
]
},
{
"login": "Tschis",
"name": "Rodolfo Forte",
"avatar_url": "https://avatars1.githubusercontent.com/u/20662669?v=4",
"profile": "http://tschis.github.io",
"contributions": [
"content"
]
},
{
"login": "ankurkaushal",
"name": "Ankur Kaushal",
"avatar_url": "https://avatars2.githubusercontent.com/u/2236616?v=4",
"profile": "https://github.com/ankurkaushal",
"contributions": [
"code"
]
},
{
"login": "okinskas",
"name": "Ovidijus Okinskas",
"avatar_url": "https://avatars0.githubusercontent.com/u/20372387?v=4",
"profile": "https://www.linkedin.com/in/ovidijus-okinskas/",
"contributions": [
"code"
]
},
{
"login": "robertt240",
"name": "Robert Kasperczyk",
"avatar_url": "https://avatars1.githubusercontent.com/u/9137432?v=4",
"profile": "https://github.com/robertt240",
"contributions": [
"code"
]
},
{
"login": "trautonen",
"name": "Tapio Rautonen",
"avatar_url": "https://avatars3.githubusercontent.com/u/1641063?v=4",
"profile": "https://github.com/trautonen",
"contributions": [
"code"
]
},
{
"login": "yorlov",
"name": "Yuri Orlov",
"avatar_url": "https://avatars0.githubusercontent.com/u/1595733?v=4",
"profile": "http://vk.com/yuri.orlov",
"contributions": [
"code"
]
},
{
"login": "varunu28",
"name": "Varun Upadhyay",
"avatar_url": "https://avatars0.githubusercontent.com/u/7676016?v=4",
"profile": "https://www.linkedin.com/in/varunu28/",
"contributions": [
"code"
]
},
{
"login": "PalAditya",
"name": "Aditya Pal",
"avatar_url": "https://avatars2.githubusercontent.com/u/25523604?v=4",
"profile": "https://github.com/PalAditya",
"contributions": [
"code"
]
},
{
"login": "grzesiekkedzior",
"name": "grzesiekkedzior",
"avatar_url": "https://avatars3.githubusercontent.com/u/23739158?v=4",
"profile": "https://github.com/grzesiekkedzior",
"contributions": [
"code"
]
},
{
"login": "sivasubramanim",
"name": "Sivasubramani M",
"avatar_url": "https://avatars2.githubusercontent.com/u/51107434?v=4",
"profile": "https://github.com/sivasubramanim",
"contributions": [
"code"
]
},
{
"login": "d4gg4d",
"name": "Sami Airaksinen",
"avatar_url": "https://avatars2.githubusercontent.com/u/99457?v=4",
"profile": "https://github.com/d4gg4d",
"contributions": [
"code"
]
},
{
"login": "vertti",
"name": "Janne Sinivirta",
"avatar_url": "https://avatars0.githubusercontent.com/u/557751?v=4",
"profile": "https://github.com/vertti",
"contributions": [
"code"
]
},
{
"login": "Bobo1239",
"name": "Boris-Chengbiao Zhou",
"avatar_url": "https://avatars1.githubusercontent.com/u/2302947?v=4",
"profile": "https://github.com/Bobo1239",
"contributions": [
"content"
]
},
{
"login": "Jahhein",
"name": "Jacob Hein",
"avatar_url": "https://avatars2.githubusercontent.com/u/10779515?v=4",
"profile": "https://jahhein.github.io",
"contributions": [
"content"
]
},
{
"login": "iamrichardjones",
"name": "Richard Jones",
"avatar_url": "https://avatars3.githubusercontent.com/u/14842151?v=4",
"profile": "https://github.com/iamrichardjones",
"contributions": [
"content"
]
},
{
"login": "rachelcarmena",
"name": "Rachel M. Carmena",
"avatar_url": "https://avatars0.githubusercontent.com/u/22792183?v=4",
"profile": "https://rachelcarmena.github.io",
"contributions": [
"content"
]
},
{
"login": "zd-zero",
"name": "Zaerald Denze Lungos",
"avatar_url": "https://avatars0.githubusercontent.com/u/21978370?v=4",
"profile": "https://zd-zero.github.io",
"contributions": [
"content"
]
},
{
"login": "webpro",
"name": "Lars Kappert",
"avatar_url": "https://avatars1.githubusercontent.com/u/456426?v=4",
"profile": "https://webpro.nl",
"contributions": [
"content"
]
},
{
"login": "xiaod-dev",
"name": "Mike Liu",
"avatar_url": "https://avatars2.githubusercontent.com/u/21277644?v=4",
"profile": "https://xiaod.info",
"contributions": [
"translation"
]
},
{
"login": "charlesfinley",
"name": "Matt Dolan",
"avatar_url": "https://avatars1.githubusercontent.com/u/6307904?v=4",
"profile": "https://github.com/charlesfinley",
"contributions": [
"code"
]
},
{
"login": "MananS77",
"name": "Manan",
"avatar_url": "https://avatars3.githubusercontent.com/u/21033516?v=4",
"profile": "https://github.com/MananS77",
"contributions": [
"review"
]
},
{
"login": "nishant",
"name": "Nishant Arora",
"avatar_url": "https://avatars2.githubusercontent.com/u/15331971?v=4",
"profile": "https://github.com/nishant",
"contributions": [
"code"
]
} }
], ],
"contributorsPerLine": 7, "contributorsPerLine": 4,
"projectName": "java-design-patterns", "projectName": "java-design-patterns",
"projectOwner": "iluwatar", "projectOwner": "iluwatar",
"repoType": "github", "repoType": "github",

161
README.md
View File

@ -9,7 +9,7 @@
[![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=alert_status)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns) [![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=alert_status)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns)
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors-) [![All Contributors](https://img.shields.io/badge/all_contributors-117-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END --> <!-- ALL-CONTRIBUTORS-BADGE:END -->
# Introduction # Introduction
@ -73,31 +73,180 @@ This project is licensed under the terms of the MIT license.
<td align="center"><a href="https://github.com/amit1307"><img src="https://avatars0.githubusercontent.com/u/23420222?v=4" width="100px;" alt=""/><br /><sub><b>amit1307</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=amit1307" title="Code">💻</a></td> <td align="center"><a href="https://github.com/amit1307"><img src="https://avatars0.githubusercontent.com/u/23420222?v=4" width="100px;" alt=""/><br /><sub><b>amit1307</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=amit1307" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/npathai"><img src="https://avatars2.githubusercontent.com/u/1792515?v=4" width="100px;" alt=""/><br /><sub><b>Narendra Pathai</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=npathai" title="Code">💻</a> <a href="#ideas-npathai" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/iluwatar/java-design-patterns/pulls?q=is%3Apr+reviewed-by%3Anpathai" title="Reviewed Pull Requests">👀</a></td> <td align="center"><a href="https://github.com/npathai"><img src="https://avatars2.githubusercontent.com/u/1792515?v=4" width="100px;" alt=""/><br /><sub><b>Narendra Pathai</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=npathai" title="Code">💻</a> <a href="#ideas-npathai" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/iluwatar/java-design-patterns/pulls?q=is%3Apr+reviewed-by%3Anpathai" title="Reviewed Pull Requests">👀</a></td>
<td align="center"><a href="https://github.com/fluxw42"><img src="https://avatars1.githubusercontent.com/u/1545460?v=4" width="100px;" alt=""/><br /><sub><b>Jeroen Meulemeester</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=fluxw42" title="Code">💻</a></td> <td align="center"><a href="https://github.com/fluxw42"><img src="https://avatars1.githubusercontent.com/u/1545460?v=4" width="100px;" alt=""/><br /><sub><b>Jeroen Meulemeester</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=fluxw42" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://www.joemccarthy.co.uk"><img src="https://avatars0.githubusercontent.com/u/4526195?v=4" width="100px;" alt=""/><br /><sub><b>Joseph McCarthy</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=mikulucky" title="Code">💻</a></td> <td align="center"><a href="http://www.joemccarthy.co.uk"><img src="https://avatars0.githubusercontent.com/u/4526195?v=4" width="100px;" alt=""/><br /><sub><b>Joseph McCarthy</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=mikulucky" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/thomasoss"><img src="https://avatars1.githubusercontent.com/u/22516154?v=4" width="100px;" alt=""/><br /><sub><b>Thomas</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=thomasoss" title="Code">💻</a></td> <td align="center"><a href="https://github.com/thomasoss"><img src="https://avatars1.githubusercontent.com/u/22516154?v=4" width="100px;" alt=""/><br /><sub><b>Thomas</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=thomasoss" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/anuragagarwal561994"><img src="https://avatars1.githubusercontent.com/u/6075379?v=4" width="100px;" alt=""/><br /><sub><b>Anurag Agarwal</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=anuragagarwal561994" title="Code">💻</a></td> <td align="center"><a href="https://github.com/anuragagarwal561994"><img src="https://avatars1.githubusercontent.com/u/6075379?v=4" width="100px;" alt=""/><br /><sub><b>Anurag Agarwal</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=anuragagarwal561994" title="Code">💻</a></td>
<td align="center"><a href="https://markusmo3.github.io"><img src="https://avatars1.githubusercontent.com/u/3317416?v=4" width="100px;" alt=""/><br /><sub><b>Markus Moser</b></sub></a><br /><a href="#design-markusmo3" title="Design">🎨</a> <a href="https://github.com/iluwatar/java-design-patterns/commits?author=markusmo3" title="Code">💻</a> <a href="#ideas-markusmo3" title="Ideas, Planning, & Feedback">🤔</a></td>
</tr> </tr>
<tr> <tr>
<td align="center"><a href="https://markusmo3.github.io"><img src="https://avatars1.githubusercontent.com/u/3317416?v=4" width="100px;" alt=""/><br /><sub><b>Markus Moser</b></sub></a><br /><a href="#design-markusmo3" title="Design">🎨</a> <a href="https://github.com/iluwatar/java-design-patterns/commits?author=markusmo3" title="Code">💻</a> <a href="#ideas-markusmo3" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center"><a href="https://twitter.com/i_sabiq"><img src="https://avatars1.githubusercontent.com/u/19510920?v=4" width="100px;" alt=""/><br /><sub><b>Sabiq Ihab</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=isabiq" title="Code">💻</a></td> <td align="center"><a href="https://twitter.com/i_sabiq"><img src="https://avatars1.githubusercontent.com/u/19510920?v=4" width="100px;" alt=""/><br /><sub><b>Sabiq Ihab</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=isabiq" title="Code">💻</a></td>
<td align="center"><a href="http://inbravo.github.io"><img src="https://avatars3.githubusercontent.com/u/5253764?v=4" width="100px;" alt=""/><br /><sub><b>Amit Dixit</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=inbravo" title="Code">💻</a></td> <td align="center"><a href="http://inbravo.github.io"><img src="https://avatars3.githubusercontent.com/u/5253764?v=4" width="100px;" alt=""/><br /><sub><b>Amit Dixit</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=inbravo" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/piyushchaudhari04"><img src="https://avatars3.githubusercontent.com/u/10268029?v=4" width="100px;" alt=""/><br /><sub><b>Piyush Kailash Chaudhari</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=piyushchaudhari04" title="Code">💻</a></td> <td align="center"><a href="https://github.com/piyushchaudhari04"><img src="https://avatars3.githubusercontent.com/u/10268029?v=4" width="100px;" alt=""/><br /><sub><b>Piyush Kailash Chaudhari</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=piyushchaudhari04" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/joshzambales"><img src="https://avatars1.githubusercontent.com/u/8704552?v=4" width="100px;" alt=""/><br /><sub><b>joshzambales</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=joshzambales" title="Code">💻</a></td> <td align="center"><a href="https://github.com/joshzambales"><img src="https://avatars1.githubusercontent.com/u/8704552?v=4" width="100px;" alt=""/><br /><sub><b>joshzambales</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=joshzambales" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Crossy147"><img src="https://avatars2.githubusercontent.com/u/7272996?v=4" width="100px;" alt=""/><br /><sub><b>Kamil Pietruszka</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Crossy147" title="Code">💻</a></td>
<td align="center"><a href="http://cs.joensuu.fi/~zkhayda"><img src="https://avatars2.githubusercontent.com/u/660742?v=4" width="100px;" alt=""/><br /><sub><b>Zafar Khaydarov</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=zafarella" title="Code">💻</a> <a href="https://github.com/iluwatar/java-design-patterns/commits?author=zafarella" title="Documentation">📖</a></td>
</tr> </tr>
<tr> <tr>
<td align="center"><a href="https://github.com/Crossy147"><img src="https://avatars2.githubusercontent.com/u/7272996?v=4" width="100px;" alt=""/><br /><sub><b>Kamil Pietruszka</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Crossy147" title="Code">💻</a></td>
<td align="center"><a href="http://cs.joensuu.fi/~zkhayda"><img src="https://avatars2.githubusercontent.com/u/660742?v=4" width="100px;" alt=""/><br /><sub><b>Zafar Khaydarov</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=zafarella" title="Code">💻</a> <a href="https://github.com/iluwatar/java-design-patterns/commits?author=zafarella" title="Documentation">📖</a></td>
<td align="center"><a href="https://kemitix.github.io/"><img src="https://avatars1.githubusercontent.com/u/1147749?v=4" width="100px;" alt=""/><br /><sub><b>Paul Campbell</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=kemitix" title="Code">💻</a></td> <td align="center"><a href="https://kemitix.github.io/"><img src="https://avatars1.githubusercontent.com/u/1147749?v=4" width="100px;" alt=""/><br /><sub><b>Paul Campbell</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=kemitix" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Argyro-Sioziou"><img src="https://avatars0.githubusercontent.com/u/22822639?v=4" width="100px;" alt=""/><br /><sub><b>Argyro Sioziou</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Argyro-Sioziou" title="Code">💻</a></td> <td align="center"><a href="https://github.com/Argyro-Sioziou"><img src="https://avatars0.githubusercontent.com/u/22822639?v=4" width="100px;" alt=""/><br /><sub><b>Argyro Sioziou</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Argyro-Sioziou" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/TylerMcConville"><img src="https://avatars0.githubusercontent.com/u/4946449?v=4" width="100px;" alt=""/><br /><sub><b>TylerMcConville</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=TylerMcConville" title="Code">💻</a></td> <td align="center"><a href="https://github.com/TylerMcConville"><img src="https://avatars0.githubusercontent.com/u/4946449?v=4" width="100px;" alt=""/><br /><sub><b>TylerMcConville</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=TylerMcConville" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/saksham93"><img src="https://avatars1.githubusercontent.com/u/37399540?v=4" width="100px;" alt=""/><br /><sub><b>saksham93</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=saksham93" title="Code">💻</a></td> <td align="center"><a href="https://github.com/saksham93"><img src="https://avatars1.githubusercontent.com/u/37399540?v=4" width="100px;" alt=""/><br /><sub><b>saksham93</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=saksham93" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/nikhilbarar"><img src="https://avatars2.githubusercontent.com/u/37332144?v=4" width="100px;" alt=""/><br /><sub><b>nikhilbarar</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=nikhilbarar" title="Code">💻</a></td> <td align="center"><a href="https://github.com/nikhilbarar"><img src="https://avatars2.githubusercontent.com/u/37332144?v=4" width="100px;" alt=""/><br /><sub><b>nikhilbarar</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=nikhilbarar" title="Code">💻</a></td>
<td align="center"><a href="http://colinbut.com"><img src="https://avatars2.githubusercontent.com/u/10725674?v=4" width="100px;" alt=""/><br /><sub><b>Colin But</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=colinbut" title="Code">💻</a></td> <td align="center"><a href="http://colinbut.com"><img src="https://avatars2.githubusercontent.com/u/10725674?v=4" width="100px;" alt=""/><br /><sub><b>Colin But</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=colinbut" title="Code">💻</a></td>
</tr> </tr>
<tr>
<td align="center"><a href="https://github.com/ruslanpa"><img src="https://avatars2.githubusercontent.com/u/1503411?v=4" width="100px;" alt=""/><br /><sub><b>Ruslan</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=ruslanpa" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/JuhoKang"><img src="https://avatars1.githubusercontent.com/u/4745294?v=4" width="100px;" alt=""/><br /><sub><b>Juho Kang</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=JuhoKang" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/dheeraj-mummareddy"><img src="https://avatars2.githubusercontent.com/u/7002230?v=4" width="100px;" alt=""/><br /><sub><b>Dheeraj Mummareddy</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=dheeraj-mummareddy" title="Code">💻</a></td>
<td align="center"><a href="https://www.bernardosulzbach.com"><img src="https://avatars0.githubusercontent.com/u/8271090?v=4" width="100px;" alt=""/><br /><sub><b>Bernardo Sulzbach</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=bernardosulzbach" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/4lexis"><img src="https://avatars0.githubusercontent.com/u/19871727?v=4" width="100px;" alt=""/><br /><sub><b>Aleksandar Dudukovic</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=4lexis" title="Code">💻</a></td>
<td align="center"><a href="https://www.yusufaytas.com"><img src="https://avatars2.githubusercontent.com/u/1049483?v=4" width="100px;" alt=""/><br /><sub><b>Yusuf Aytaş</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=yusufaytas" title="Code">💻</a></td>
<td align="center"><a href="http://futurehomes.hu"><img src="https://avatars2.githubusercontent.com/u/1001491?v=4" width="100px;" alt=""/><br /><sub><b>Mihály Kuprivecz</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=qpi" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/kapinuss"><img src="https://avatars0.githubusercontent.com/u/17639945?v=4" width="100px;" alt=""/><br /><sub><b>Stanislav Kapinus</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=kapinuss" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/gvsharma"><img src="https://avatars1.githubusercontent.com/u/6648152?v=4" width="100px;" alt=""/><br /><sub><b>GVSharma</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=gvsharma" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/SrdjanPaunovic"><img src="https://avatars1.githubusercontent.com/u/22815104?v=4" width="100px;" alt=""/><br /><sub><b>Srđan Paunović</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=SrdjanPaunovic" title="Code">💻</a></td>
<td align="center"><a href="https://sideris.xyz/"><img src="https://avatars3.githubusercontent.com/u/5484694?v=4" width="100px;" alt=""/><br /><sub><b>Petros G. Sideris</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=sideris" title="Code">💻</a></td>
<td align="center"><a href="https://www.linkedin.com/in/pramodgupta3/"><img src="https://avatars1.githubusercontent.com/u/2184241?v=4" width="100px;" alt=""/><br /><sub><b>Pramod Gupta</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/pulls?q=is%3Apr+reviewed-by%3AIAmPramod" title="Reviewed Pull Requests">👀</a></td>
</tr>
<tr>
<td align="center"><a href="https://amarnath510.github.io/portfolio"><img src="https://avatars0.githubusercontent.com/u/4599623?v=4" width="100px;" alt=""/><br /><sub><b>Amarnath Chandana</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Amarnath510" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Anurag870"><img src="https://avatars1.githubusercontent.com/u/6295975?v=4" width="100px;" alt=""/><br /><sub><b>Anurag870</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Anurag870" title="Code">💻</a></td>
<td align="center"><a href="http://theerroris.me"><img src="https://avatars0.githubusercontent.com/u/1685953?v=4" width="100px;" alt=""/><br /><sub><b>Wes Gilleland</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Deathnerd" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Harshrajsinh"><img src="https://avatars2.githubusercontent.com/u/22811531?v=4" width="100px;" alt=""/><br /><sub><b>Harshraj Thakor</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Harshrajsinh" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/MaVdbussche"><img src="https://avatars1.githubusercontent.com/u/26136934?v=4" width="100px;" alt=""/><br /><sub><b>Martin Vandenbussche</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=MaVdbussche" title="Code">💻</a></td>
<td align="center"><a href="https://alexsomai.com"><img src="https://avatars1.githubusercontent.com/u/5720977?v=4" width="100px;" alt=""/><br /><sub><b>Alexandru Somai</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=alexsomai" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/amogozov"><img src="https://avatars3.githubusercontent.com/u/7372215?v=4" width="100px;" alt=""/><br /><sub><b>Artur Mogozov</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=amogozov" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/anthonycampbell"><img src="https://avatars3.githubusercontent.com/u/10249255?v=4" width="100px;" alt=""/><br /><sub><b>anthony</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=anthonycampbell" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://ccygnus.com/"><img src="https://avatars1.githubusercontent.com/u/9342724?v=4" width="100px;" alt=""/><br /><sub><b>Christian Cygnus</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=christophercolumbusdog" title="Code">💻</a></td>
<td align="center"><a href="https://about.me/dzmitryh"><img src="https://avatars2.githubusercontent.com/u/5390492?v=4" width="100px;" alt=""/><br /><sub><b>Dima Gubin</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=dzmitryh" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jjjimenez100"><img src="https://avatars3.githubusercontent.com/u/22243493?v=4" width="100px;" alt=""/><br /><sub><b>Joshua Jimenez</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=jjjimenez100" title="Code">💻</a></td>
<td align="center"><a href="http://about.me/kaiwinter"><img src="https://avatars0.githubusercontent.com/u/110982?v=4" width="100px;" alt=""/><br /><sub><b>Kai Winter</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=kaiwinter" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/lbroman"><img src="https://avatars1.githubusercontent.com/u/86007?v=4" width="100px;" alt=""/><br /><sub><b>lbroman</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=lbroman" title="Code">💻</a></td>
<td align="center"><a href="https://przemeknowak.com"><img src="https://avatars1.githubusercontent.com/u/3254609?v=4" width="100px;" alt=""/><br /><sub><b>Przemek</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=pnowy" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/prafful1"><img src="https://avatars0.githubusercontent.com/u/14350274?v=4" width="100px;" alt=""/><br /><sub><b>Prafful Agarwal</b></sub></a><br /><a href="#content-prafful1" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/sankypanhale"><img src="https://avatars1.githubusercontent.com/u/6478783?v=4" width="100px;" alt=""/><br /><sub><b>Sanket Panhale</b></sub></a><br /><a href="#content-sankypanhale" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/staillebois"><img src="https://avatars0.githubusercontent.com/u/23701200?v=4" width="100px;" alt=""/><br /><sub><b>staillebois</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=staillebois" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/valdar-hu"><img src="https://avatars3.githubusercontent.com/u/17962817?v=4" width="100px;" alt=""/><br /><sub><b>Krisztián Nagy</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=valdar-hu" title="Code">💻</a></td>
<td align="center"><a href="https://www.vanogrid.com"><img src="https://avatars0.githubusercontent.com/u/4307918?v=4" width="100px;" alt=""/><br /><sub><b>Alexander Ivanov</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=vanogrid" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/yosfik"><img src="https://avatars3.githubusercontent.com/u/4850270?v=4" width="100px;" alt=""/><br /><sub><b>Yosfik Alqadri</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=yosfik" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/7agustibm"><img src="https://avatars0.githubusercontent.com/u/8149332?v=4" width="100px;" alt=""/><br /><sub><b>Agustí Becerra Milà</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=7agustibm" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Juaanma"><img src="https://avatars3.githubusercontent.com/u/7390500?v=4" width="100px;" alt=""/><br /><sub><b>Juan Manuel Suárez</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Juaanma" title="Code">💻</a></td>
<td align="center"><a href="http://www.devsedge.net/"><img src="https://avatars0.githubusercontent.com/u/9956006?v=4" width="100px;" alt=""/><br /><sub><b>Luigi Cortese</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=LuigiCortese" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Rzeposlaw"><img src="https://avatars2.githubusercontent.com/u/18425745?v=4" width="100px;" alt=""/><br /><sub><b>Katarzyna Rzepecka</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Rzeposlaw" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://adamski.pro"><img src="https://avatars1.githubusercontent.com/u/6537430?v=4" width="100px;" alt=""/><br /><sub><b>adamski.pro</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=akrystian" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/baislsl"><img src="https://avatars0.githubusercontent.com/u/17060584?v=4" width="100px;" alt=""/><br /><sub><b>Shengli Bai</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=baislsl" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/besok"><img src="https://avatars2.githubusercontent.com/u/29834592?v=4" width="100px;" alt=""/><br /><sub><b>Boris</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=besok" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/dmitraver"><img src="https://avatars3.githubusercontent.com/u/1798156?v=4" width="100px;" alt=""/><br /><sub><b>Dmitry Avershin</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=dmitraver" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/fanofxiaofeng"><img src="https://avatars0.githubusercontent.com/u/3983683?v=4" width="100px;" alt=""/><br /><sub><b>靳阳</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=fanofxiaofeng" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/hoangnam2261"><img src="https://avatars2.githubusercontent.com/u/31692990?v=4" width="100px;" alt=""/><br /><sub><b>hoangnam2261</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=hoangnam2261" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/jarpit96"><img src="https://avatars2.githubusercontent.com/u/10098713?v=4" width="100px;" alt=""/><br /><sub><b>Arpit Jain</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=jarpit96" title="Code">💻</a></td>
<td align="center"><a href="http://joningi.net"><img src="https://avatars2.githubusercontent.com/u/6115148?v=4" width="100px;" alt=""/><br /><sub><b>Jón Ingi Sveinbjörnsson</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=joningiwork" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/kirill-vlasov"><img src="https://avatars3.githubusercontent.com/u/16112495?v=4" width="100px;" alt=""/><br /><sub><b>Kirill Vlasov</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=kirill-vlasov" title="Code">💻</a></td>
<td align="center"><a href="http://mitchell-irvin.com"><img src="https://avatars0.githubusercontent.com/u/16233245?v=4" width="100px;" alt=""/><br /><sub><b>Mitchell Irvin</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=mitchellirvin" title="Code">💻</a></td>
<td align="center"><a href="https://ranjeet-floyd.github.io"><img src="https://avatars0.githubusercontent.com/u/1992972?v=4" width="100px;" alt=""/><br /><sub><b>Ranjeet</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=ranjeet-floyd" title="Code">💻</a></td>
<td align="center"><a href="https://alwayswithme.github.io"><img src="https://avatars3.githubusercontent.com/u/3234786?v=4" width="100px;" alt=""/><br /><sub><b>PhoenixYip</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Alwayswithme" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/MSaifAsif"><img src="https://avatars1.githubusercontent.com/u/6280554?v=4" width="100px;" alt=""/><br /><sub><b>M Saif Asif</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=MSaifAsif" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/kanwarpreet25"><img src="https://avatars0.githubusercontent.com/u/39183641?v=4" width="100px;" alt=""/><br /><sub><b>kanwarpreet25</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=kanwarpreet25" title="Code">💻</a></td>
<td align="center"><a href="http://leonmak.me"><img src="https://avatars3.githubusercontent.com/u/13071508?v=4" width="100px;" alt=""/><br /><sub><b>Leon Mak</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=leonmak" title="Code">💻</a></td>
<td align="center"><a href="http://www.wramdemark.se"><img src="https://avatars2.githubusercontent.com/u/7052193?v=4" width="100px;" alt=""/><br /><sub><b>Per Wramdemark</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=perwramdemark" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/waisuan"><img src="https://avatars2.githubusercontent.com/u/10975700?v=4" width="100px;" alt=""/><br /><sub><b>Evan Sia Wai Suan</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=waisuan" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/AnaghaSasikumar"><img src="https://avatars2.githubusercontent.com/u/42939261?v=4" width="100px;" alt=""/><br /><sub><b>AnaghaSasikumar</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=AnaghaSasikumar" title="Code">💻</a></td>
<td align="center"><a href="https://christofferh.com"><img src="https://avatars1.githubusercontent.com/u/767643?v=4" width="100px;" alt=""/><br /><sub><b>Christoffer Hamberg</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=christofferh" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/dgruntz"><img src="https://avatars0.githubusercontent.com/u/1516800?v=4" width="100px;" alt=""/><br /><sub><b>Dominik Gruntz</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=dgruntz" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://bitbucket.org/hannespernpeintner/"><img src="https://avatars3.githubusercontent.com/u/1679437?v=4" width="100px;" alt=""/><br /><sub><b>Hannes</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=hannespernpeintner" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/leogtzr"><img src="https://avatars0.githubusercontent.com/u/1211969?v=4" width="100px;" alt=""/><br /><sub><b>Leo Gutiérrez Ramírez</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=leogtzr" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/npczwh"><img src="https://avatars0.githubusercontent.com/u/14066422?v=4" width="100px;" alt=""/><br /><sub><b>Zhang WH</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=npczwh" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/oconnelc"><img src="https://avatars0.githubusercontent.com/u/1112973?v=4" width="100px;" alt=""/><br /><sub><b>Christopher O'Connell</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=oconnelc" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/giorgosmav21"><img src="https://avatars2.githubusercontent.com/u/22855493?v=4" width="100px;" alt=""/><br /><sub><b>George Mavroeidis</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=giorgosmav21" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/hbothra15"><img src="https://avatars1.githubusercontent.com/u/7418012?v=4" width="100px;" alt=""/><br /><sub><b>Hemant Bothra</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=hbothra15" title="Code">💻</a> <a href="#design-hbothra15" title="Design">🎨</a></td>
<td align="center"><a href="https://www.kevinpeters.net/about/"><img src="https://avatars1.githubusercontent.com/u/12736734?v=4" width="100px;" alt=""/><br /><sub><b>Kevin Peters</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=igeligel" title="Code">💻</a></td>
<td align="center"><a href="https://llorllale.github.io/"><img src="https://avatars1.githubusercontent.com/u/2019896?v=4" width="100px;" alt=""/><br /><sub><b>George Aristy</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=llorllale" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/mookkiah"><img src="https://avatars1.githubusercontent.com/u/8975264?v=4" width="100px;" alt=""/><br /><sub><b>Mahendran Mookkiah</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=mookkiah" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Azureyjt"><img src="https://avatars2.githubusercontent.com/u/18476317?v=4" width="100px;" alt=""/><br /><sub><b>Azureyjt</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=Azureyjt" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/vehpsr"><img src="https://avatars2.githubusercontent.com/u/3133265?v=4" width="100px;" alt=""/><br /><sub><b>gans</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=vehpsr" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/ThatGuyWithTheHat"><img src="https://avatars0.githubusercontent.com/u/24470582?v=4" width="100px;" alt=""/><br /><sub><b>Matt</b></sub></a><br /><a href="#content-ThatGuyWithTheHat" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center"><a href="https://www.linkedin.com/in/gopinathlangote/"><img src="https://avatars2.githubusercontent.com/u/10210778?v=4" width="100px;" alt=""/><br /><sub><b>Gopinath Langote</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=gopinath-langote" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/hoswey"><img src="https://avatars3.githubusercontent.com/u/3689445?v=4" width="100px;" alt=""/><br /><sub><b>Hoswey</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=hoswey" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/amit2103"><img src="https://avatars3.githubusercontent.com/u/7566692?v=4" width="100px;" alt=""/><br /><sub><b>Amit Pandey</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=amit2103" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/gwildor28"><img src="https://avatars0.githubusercontent.com/u/16000365?v=4" width="100px;" alt=""/><br /><sub><b>gwildor28</b></sub></a><br /><a href="#content-gwildor28" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center"><a href="https://t.me/paul_docker"><img src="https://avatars1.githubusercontent.com/u/2404785?v=4" width="100px;" alt=""/><br /><sub><b>田浩</b></sub></a><br /><a href="#content-llitfkitfk" title="Content">🖋</a></td>
<td align="center"><a href="https://twitter.com/StPitsios"><img src="https://avatars1.githubusercontent.com/u/6773603?v=4" width="100px;" alt=""/><br /><sub><b>Stamatis Pitsios</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=pitsios-s" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/qza"><img src="https://avatars3.githubusercontent.com/u/233149?v=4" width="100px;" alt=""/><br /><sub><b>qza</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=qza" title="Code">💻</a></td>
<td align="center"><a href="http://tschis.github.io"><img src="https://avatars1.githubusercontent.com/u/20662669?v=4" width="100px;" alt=""/><br /><sub><b>Rodolfo Forte</b></sub></a><br /><a href="#content-Tschis" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ankurkaushal"><img src="https://avatars2.githubusercontent.com/u/2236616?v=4" width="100px;" alt=""/><br /><sub><b>Ankur Kaushal</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=ankurkaushal" title="Code">💻</a></td>
<td align="center"><a href="https://www.linkedin.com/in/ovidijus-okinskas/"><img src="https://avatars0.githubusercontent.com/u/20372387?v=4" width="100px;" alt=""/><br /><sub><b>Ovidijus Okinskas</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=okinskas" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/robertt240"><img src="https://avatars1.githubusercontent.com/u/9137432?v=4" width="100px;" alt=""/><br /><sub><b>Robert Kasperczyk</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=robertt240" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/trautonen"><img src="https://avatars3.githubusercontent.com/u/1641063?v=4" width="100px;" alt=""/><br /><sub><b>Tapio Rautonen</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=trautonen" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="http://vk.com/yuri.orlov"><img src="https://avatars0.githubusercontent.com/u/1595733?v=4" width="100px;" alt=""/><br /><sub><b>Yuri Orlov</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=yorlov" title="Code">💻</a></td>
<td align="center"><a href="https://www.linkedin.com/in/varunu28/"><img src="https://avatars0.githubusercontent.com/u/7676016?v=4" width="100px;" alt=""/><br /><sub><b>Varun Upadhyay</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=varunu28" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/PalAditya"><img src="https://avatars2.githubusercontent.com/u/25523604?v=4" width="100px;" alt=""/><br /><sub><b>Aditya Pal</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=PalAditya" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/grzesiekkedzior"><img src="https://avatars3.githubusercontent.com/u/23739158?v=4" width="100px;" alt=""/><br /><sub><b>grzesiekkedzior</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=grzesiekkedzior" title="Code">💻</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/sivasubramanim"><img src="https://avatars2.githubusercontent.com/u/51107434?v=4" width="100px;" alt=""/><br /><sub><b>Sivasubramani M</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=sivasubramanim" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/d4gg4d"><img src="https://avatars2.githubusercontent.com/u/99457?v=4" width="100px;" alt=""/><br /><sub><b>Sami Airaksinen</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=d4gg4d" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/vertti"><img src="https://avatars0.githubusercontent.com/u/557751?v=4" width="100px;" alt=""/><br /><sub><b>Janne Sinivirta</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=vertti" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/Bobo1239"><img src="https://avatars1.githubusercontent.com/u/2302947?v=4" width="100px;" alt=""/><br /><sub><b>Boris-Chengbiao Zhou</b></sub></a><br /><a href="#content-Bobo1239" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center"><a href="https://jahhein.github.io"><img src="https://avatars2.githubusercontent.com/u/10779515?v=4" width="100px;" alt=""/><br /><sub><b>Jacob Hein</b></sub></a><br /><a href="#content-Jahhein" title="Content">🖋</a></td>
<td align="center"><a href="https://github.com/iamrichardjones"><img src="https://avatars3.githubusercontent.com/u/14842151?v=4" width="100px;" alt=""/><br /><sub><b>Richard Jones</b></sub></a><br /><a href="#content-iamrichardjones" title="Content">🖋</a></td>
<td align="center"><a href="https://rachelcarmena.github.io"><img src="https://avatars0.githubusercontent.com/u/22792183?v=4" width="100px;" alt=""/><br /><sub><b>Rachel M. Carmena</b></sub></a><br /><a href="#content-rachelcarmena" title="Content">🖋</a></td>
<td align="center"><a href="https://zd-zero.github.io"><img src="https://avatars0.githubusercontent.com/u/21978370?v=4" width="100px;" alt=""/><br /><sub><b>Zaerald Denze Lungos</b></sub></a><br /><a href="#content-zd-zero" title="Content">🖋</a></td>
</tr>
<tr>
<td align="center"><a href="https://webpro.nl"><img src="https://avatars1.githubusercontent.com/u/456426?v=4" width="100px;" alt=""/><br /><sub><b>Lars Kappert</b></sub></a><br /><a href="#content-webpro" title="Content">🖋</a></td>
<td align="center"><a href="https://xiaod.info"><img src="https://avatars2.githubusercontent.com/u/21277644?v=4" width="100px;" alt=""/><br /><sub><b>Mike Liu</b></sub></a><br /><a href="#translation-xiaod-dev" title="Translation">🌍</a></td>
<td align="center"><a href="https://github.com/charlesfinley"><img src="https://avatars1.githubusercontent.com/u/6307904?v=4" width="100px;" alt=""/><br /><sub><b>Matt Dolan</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=charlesfinley" title="Code">💻</a></td>
<td align="center"><a href="https://github.com/MananS77"><img src="https://avatars3.githubusercontent.com/u/21033516?v=4" width="100px;" alt=""/><br /><sub><b>Manan</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/pulls?q=is%3Apr+reviewed-by%3AMananS77" title="Reviewed Pull Requests">👀</a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/nishant"><img src="https://avatars2.githubusercontent.com/u/15331971?v=4" width="100px;" alt=""/><br /><sub><b>Nishant Arora</b></sub></a><br /><a href="https://github.com/iluwatar/java-design-patterns/commits?author=nishant" title="Code">💻</a></td>
</tr>
</table> </table>
<!-- markdownlint-enable --> <!-- markdownlint-enable -->
<!-- prettier-ignore-end --> <!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END --> <!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

View File

@ -9,21 +9,182 @@ tags:
--- ---
## Intent ## Intent
Achieve flexibility of untyped languages and keep the type-safety
Use dynamic properties and achieve flexibility of untyped languages while keeping type-safety.
## Explanation
The Abstract Document pattern enables handling additional, non-static properties. This pattern
uses concept of traits to enable type safety and separate properties of different classes into
set of interfaces.
Real world example
> Consider a car that consists of multiple parts. However we don't know if the specific car really has all the parts, or just some of them. Our cars are dynamic and extremely flexible.
In plain words
> Abstract Document pattern allows attaching properties to objects without them knowing about it.
Wikipedia says
> An object-oriented structural design pattern for organizing objects in loosely typed key-value stores and exposing
the data using typed views. The purpose of the pattern is to achieve a high degree of flexibility between components
in a strongly typed language where new properties can be added to the object-tree on the fly, without losing the
support of type-safety. The pattern makes use of traits to separate different properties of a class into different
interfaces.
**Programmatic Example**
Let's first define the base classes `Document` and `AbstractDocument`. They basically make the object hold a property
map and any amount of child objects.
```java
public interface Document {
Void put(String key, Object value);
Object get(String key);
<T> Stream<T> children(String key, Function<Map<String, Object>, T> constructor);
}
public abstract class AbstractDocument implements Document {
private final Map<String, Object> properties;
protected AbstractDocument(Map<String, Object> properties) {
Objects.requireNonNull(properties, "properties map is required");
this.properties = properties;
}
@Override
public Void put(String key, Object value) {
properties.put(key, value);
return null;
}
@Override
public Object get(String key) {
return properties.get(key);
}
@Override
public <T> Stream<T> children(String key, Function<Map<String, Object>, T> constructor) {
return Stream.ofNullable(get(key))
.filter(Objects::nonNull)
.map(el -> (List<Map<String, Object>>) el)
.findAny()
.stream()
.flatMap(Collection::stream)
.map(constructor);
}
...
}
```
Next we define an enum `Property` and a set of interfaces for type, price, model and parts. This allows us to create
static looking interface to our `Car` class.
```java
public enum Property {
PARTS, TYPE, PRICE, MODEL
}
public interface HasType extends Document {
default Optional<String> getType() {
return Optional.ofNullable((String) get(Property.TYPE.toString()));
}
}
public interface HasPrice extends Document {
default Optional<Number> getPrice() {
return Optional.ofNullable((Number) get(Property.PRICE.toString()));
}
}
public interface HasModel extends Document {
default Optional<String> getModel() {
return Optional.ofNullable((String) get(Property.MODEL.toString()));
}
}
public interface HasParts extends Document {
default Stream<Part> getParts() {
return children(Property.PARTS.toString(), Part::new);
}
}
```
Now we are ready to introduce the `Car`.
```java
public class Car extends AbstractDocument implements HasModel, HasPrice, HasParts {
public Car(Map<String, Object> properties) {
super(properties);
}
}
```
And finally here's how we construct and use the `Car` in a full example.
```java
LOGGER.info("Constructing parts and car");
var wheelProperties = Map.of(
Property.TYPE.toString(), "wheel",
Property.MODEL.toString(), "15C",
Property.PRICE.toString(), 100L);
var doorProperties = Map.of(
Property.TYPE.toString(), "door",
Property.MODEL.toString(), "Lambo",
Property.PRICE.toString(), 300L);
var carProperties = Map.of(
Property.MODEL.toString(), "300SL",
Property.PRICE.toString(), 10000L,
Property.PARTS.toString(), List.of(wheelProperties, doorProperties));
var car = new Car(carProperties);
LOGGER.info("Here is our car:");
LOGGER.info("-> model: {}", car.getModel().orElseThrow());
LOGGER.info("-> price: {}", car.getPrice().orElseThrow());
LOGGER.info("-> parts: ");
car.getParts().forEach(p -> LOGGER.info("\t{}/{}/{}",
p.getType().orElse(null),
p.getModel().orElse(null),
p.getPrice().orElse(null))
);
// Constructing parts and car
// Here is our car:
// model: 300SL
// price: 10000
// parts:
// wheel/15C/100
// door/Lambo/300
```
## Class diagram ## Class diagram
![alt text](./etc/abstract-document.png "Abstract Document Traits and Domain") ![alt text](./etc/abstract-document.png "Abstract Document Traits and Domain")
## Applicability ## Applicability
Use the Abstract Document Pattern when Use the Abstract Document Pattern when
* there is a need to add new properties on the fly * There is a need to add new properties on the fly
* you want a flexible way to organize domain in tree like structure * You want a flexible way to organize domain in tree like structure
* you want more loosely coupled system * You want more loosely coupled system
## Credits ## Credits
* [Wikipedia: Abstract Document Pattern](https://en.wikipedia.org/wiki/Abstract_Document_Pattern) * [Wikipedia: Abstract Document Pattern](https://en.wikipedia.org/wiki/Abstract_Document_Pattern)
* [Martin Fowler: Dealing with properties](http://martinfowler.com/apsupp/properties.pdf) * [Martin Fowler: Dealing with properties](http://martinfowler.com/apsupp/properties.pdf)
* [Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing (v. 4)](https://www.amazon.com/gp/product/0470059028/ref=as_li_qf_asin_il_tl?ie=UTF8&tag=javadesignpat-20&creative=9325&linkCode=as2&creativeASIN=0470059028&linkId=e3aacaea7017258acf184f9f3283b492)

View File

@ -32,7 +32,6 @@ import java.util.stream.Stream;
*/ */
public interface HasParts extends Document { public interface HasParts extends Document {
default Stream<Part> getParts() { default Stream<Part> getParts() {
return children(Property.PARTS.toString(), Part::new); return children(Property.PARTS.toString(), Part::new);
} }

View File

@ -32,7 +32,6 @@ import java.util.Optional;
*/ */
public interface HasPrice extends Document { public interface HasPrice extends Document {
default Optional<Number> getPrice() { default Optional<Number> getPrice() {
return Optional.ofNullable((Number) get(Property.PRICE.toString())); return Optional.ofNullable((Number) get(Property.PRICE.toString()));
} }

View File

@ -32,7 +32,6 @@ import java.util.Optional;
*/ */
public interface HasType extends Document { public interface HasType extends Document {
default Optional<String> getType() { default Optional<String> getType() {
return Optional.ofNullable((String) get(Property.TYPE.toString())); return Optional.ofNullable((String) get(Property.TYPE.toString()));
} }

View File

@ -47,7 +47,7 @@ public class AbstractDocumentTest {
} }
} }
private DocumentImplementation document = new DocumentImplementation(new HashMap<>()); private final DocumentImplementation document = new DocumentImplementation(new HashMap<>());
@Test @Test
public void shouldPutAndGetValue() { public void shouldPutAndGetValue() {

View File

@ -36,7 +36,7 @@ import org.junit.jupiter.api.Test;
*/ */
public class AbstractFactoryTest { public class AbstractFactoryTest {
private App app = new App(); private final App app = new App();
private KingdomFactory elfFactory; private KingdomFactory elfFactory;
private KingdomFactory orcFactory; private KingdomFactory orcFactory;

View File

@ -37,7 +37,7 @@ import uk.org.lidalia.slf4jtest.TestLoggerFactory;
*/ */
public class ConfigureForDosVisitorTest { public class ConfigureForDosVisitorTest {
private TestLogger logger = TestLoggerFactory.getTestLogger(ConfigureForDosVisitor.class); private final TestLogger logger = TestLoggerFactory.getTestLogger(ConfigureForDosVisitor.class);
@Test @Test
public void testVisitForZoom() { public void testVisitForZoom() {

View File

@ -56,7 +56,7 @@ And captain expects an implementation of `RowingBoat` interface to be able to mo
```java ```java
public class Captain { public class Captain {
private RowingBoat rowingBoat; private final RowingBoat rowingBoat;
// default constructor and setter for rowingBoat // default constructor and setter for rowingBoat
public Captain(RowingBoat rowingBoat) { public Captain(RowingBoat rowingBoat) {
this.rowingBoat = rowingBoat; this.rowingBoat = rowingBoat;
@ -75,7 +75,7 @@ public class FishingBoatAdapter implements RowingBoat {
private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoatAdapter.class); private static final Logger LOGGER = LoggerFactory.getLogger(FishingBoatAdapter.class);
private FishingBoat boat; private final FishingBoat boat;
public FishingBoatAdapter() { public FishingBoatAdapter() {
boat = new FishingBoat(); boat = new FishingBoat();

View File

@ -29,7 +29,7 @@ package com.iluwatar.adapter;
*/ */
public class FishingBoatAdapter implements RowingBoat { public class FishingBoatAdapter implements RowingBoat {
private FishingBoat boat; private final FishingBoat boat;
public FishingBoatAdapter() { public FishingBoatAdapter() {
boat = new FishingBoat(); boat = new FishingBoat();

View File

@ -48,7 +48,7 @@ class RemoteServiceTest {
} }
private static class StaticRandomProvider implements RandomProvider { private static class StaticRandomProvider implements RandomProvider {
private double value; private final double value;
StaticRandomProvider(double value) { StaticRandomProvider(double value) {
this.value = value; this.value = value;

View File

@ -60,7 +60,7 @@ public class CashAAATest {
//Act //Act
cash.plus(4); cash.plus(4);
//Assert //Assert
assertEquals(cash.count(), 7); assertEquals(7, cash.count());
} }
@Test @Test
@ -71,7 +71,7 @@ public class CashAAATest {
var result = cash.minus(5); var result = cash.minus(5);
//Assert //Assert
assertTrue(result); assertTrue(result);
assertEquals(cash.count(), 3); assertEquals(3, cash.count());
} }
@Test @Test
@ -82,7 +82,7 @@ public class CashAAATest {
var result = cash.minus(6); var result = cash.minus(6);
//Assert //Assert
assertFalse(result); assertFalse(result);
assertEquals(cash.count(), 1); assertEquals(1, cash.count());
} }
@Test @Test
@ -94,6 +94,6 @@ public class CashAAATest {
var result = cash.minus(3); var result = cash.minus(3);
//Assert //Assert
assertTrue(result); assertTrue(result);
assertEquals(cash.count(), 8); assertEquals(8, cash.count());
} }
} }

View File

@ -44,16 +44,16 @@ public class CashAntiAAATest {
var cash = new Cash(3); var cash = new Cash(3);
//test plus //test plus
cash.plus(4); cash.plus(4);
assertEquals(cash.count(), 7); assertEquals(7, cash.count());
//test minus //test minus
cash = new Cash(8); cash = new Cash(8);
assertTrue(cash.minus(5)); assertTrue(cash.minus(5));
assertEquals(cash.count(), 3); assertEquals(3, cash.count());
assertFalse(cash.minus(6)); assertFalse(cash.minus(6));
assertEquals(cash.count(), 3); assertEquals(3, cash.count());
//test update //test update
cash.plus(5); cash.plus(5);
assertTrue(cash.minus(5)); assertTrue(cash.minus(5));
assertEquals(cash.count(), 3); assertEquals(3, cash.count());
} }
} }

View File

@ -100,7 +100,7 @@ public class ThreadAsyncExecutor implements AsyncExecutor {
void setValue(T value) { void setValue(T value) {
this.value = value; this.value = value;
this.state = COMPLETED; this.state = COMPLETED;
this.callback.ifPresent(ac -> ac.onComplete(value, Optional.<Exception>empty())); this.callback.ifPresent(ac -> ac.onComplete(value, Optional.empty()));
synchronized (lock) { synchronized (lock) {
lock.notifyAll(); lock.notifyAll();
} }

View File

@ -28,7 +28,7 @@ package com.iluwatar.business.delegate;
*/ */
public class Client { public class Client {
private BusinessDelegate businessDelegate; private final BusinessDelegate businessDelegate;
public Client(BusinessDelegate businessDelegate) { public Client(BusinessDelegate businessDelegate) {
this.businessDelegate = businessDelegate; this.businessDelegate = businessDelegate;

View File

@ -28,5 +28,5 @@ package com.iluwatar.business.delegate;
*/ */
public enum ServiceType { public enum ServiceType {
EJB, JMS; EJB, JMS
} }

View File

@ -30,9 +30,9 @@ import java.util.Stack;
*/ */
public class VirtualMachine { public class VirtualMachine {
private Stack<Integer> stack = new Stack<>(); private final Stack<Integer> stack = new Stack<>();
private Wizard[] wizards = new Wizard[2]; private final Wizard[] wizards = new Wizard[2];
/** /**
* Constructor. * Constructor.

View File

@ -104,7 +104,7 @@ public class VirtualMachineTest {
bytecode[2] = LITERAL.getIntValue(); bytecode[2] = LITERAL.getIntValue();
bytecode[3] = 50; // health amount bytecode[3] = 50; // health amount
bytecode[4] = SET_HEALTH.getIntValue(); bytecode[4] = SET_HEALTH.getIntValue();
bytecode[5] = LITERAL.getIntValue();; bytecode[5] = LITERAL.getIntValue();
bytecode[6] = wizardNumber; bytecode[6] = wizardNumber;
bytecode[7] = GET_HEALTH.getIntValue(); bytecode[7] = GET_HEALTH.getIntValue();

View File

@ -29,7 +29,7 @@ package com.iluwatar.caching;
public enum CachingPolicy { public enum CachingPolicy {
THROUGH("through"), AROUND("around"), BEHIND("behind"), ASIDE("aside"); THROUGH("through"), AROUND("around"), BEHIND("behind"), ASIDE("aside");
private String policy; private final String policy;
CachingPolicy(String policy) { CachingPolicy(String policy) {
this.policy = policy; this.policy = policy;

View File

@ -65,7 +65,7 @@ Then the request handler hierarchy
```java ```java
public abstract class RequestHandler { public abstract class RequestHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class); private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class);
private RequestHandler next; private final RequestHandler next;
public RequestHandler(RequestHandler next) { public RequestHandler(RequestHandler next) {
this.next = next; this.next = next;

View File

@ -33,7 +33,7 @@ public abstract class RequestHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class); private static final Logger LOGGER = LoggerFactory.getLogger(RequestHandler.class);
private RequestHandler next; private final RequestHandler next;
public RequestHandler(RequestHandler next) { public RequestHandler(RequestHandler next) {
this.next = next; this.next = next;

View File

@ -87,10 +87,7 @@ public class Car {
} else if (!model.equals(other.model)) { } else if (!model.equals(other.model)) {
return false; return false;
} }
if (year != other.year) { return year == other.year;
return false;
}
return true;
} }
public String getMake() { public String getMake() {

View File

@ -29,7 +29,7 @@ import java.util.List;
* A Person class that has the list of cars that the person owns and use. * A Person class that has the list of cars that the person owns and use.
*/ */
public class Person { public class Person {
private List<Car> cars; private final List<Car> cars;
/** /**
* Constructor to create an instance of person. * Constructor to create an instance of person.

View File

@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
public class AppTest { public class AppTest {
private static final Logger LOGGER = LoggerFactory.getLogger(AppTest.class); private static final Logger LOGGER = LoggerFactory.getLogger(AppTest.class);
private List<Car> cars = CarFactory.createCars(); private final List<Car> cars = CarFactory.createCars();
@Test @Test
public void testGetModelsAfter2000UsingFor() { public void testGetModelsAfter2000UsingFor() {

View File

@ -36,8 +36,8 @@ public class Wizard {
private static final Logger LOGGER = LoggerFactory.getLogger(Wizard.class); private static final Logger LOGGER = LoggerFactory.getLogger(Wizard.class);
private Deque<Command> undoStack = new LinkedList<>(); private final Deque<Command> undoStack = new LinkedList<>();
private Deque<Command> redoStack = new LinkedList<>(); private final Deque<Command> redoStack = new LinkedList<>();
public Wizard() {} public Wizard() {}

View File

@ -30,7 +30,7 @@ public enum Size {
SMALL("small"), NORMAL("normal"); SMALL("small"), NORMAL("normal");
private String title; private final String title;
Size(String title) { Size(String title) {
this.title = title; this.title = title;

View File

@ -30,7 +30,7 @@ public enum Visibility {
VISIBLE("visible"), INVISIBLE("invisible"); VISIBLE("visible"), INVISIBLE("invisible");
private String title; private final String title;
Visibility(String title) { Visibility(String title) {
this.title = title; this.title = title;

View File

@ -35,8 +35,8 @@ public class Wizard {
private static final Logger LOGGER = LoggerFactory.getLogger(Wizard.class); private static final Logger LOGGER = LoggerFactory.getLogger(Wizard.class);
private Deque<Command> undoStack = new LinkedList<>(); private final Deque<Command> undoStack = new LinkedList<>();
private Deque<Command> redoStack = new LinkedList<>(); private final Deque<Command> redoStack = new LinkedList<>();
public Wizard() { public Wizard() {
// comment to ignore sonar issue: LEVEL critical // comment to ignore sonar issue: LEVEL critical

View File

@ -33,7 +33,7 @@ import java.util.Hashtable;
*/ */
public class EmployeeDatabase extends Database<Order> { public class EmployeeDatabase extends Database<Order> {
private Hashtable<String, Order> data; private final Hashtable<String, Order> data;
public EmployeeDatabase() { public EmployeeDatabase() {
this.data = new Hashtable<>(); this.data = new Hashtable<>();

View File

@ -33,7 +33,7 @@ import java.util.Hashtable;
*/ */
public class MessagingDatabase extends Database<MessageRequest> { public class MessagingDatabase extends Database<MessageRequest> {
private Hashtable<String, MessageRequest> data; private final Hashtable<String, MessageRequest> data;
public MessagingDatabase() { public MessagingDatabase() {
this.data = new Hashtable<>(); this.data = new Hashtable<>();

View File

@ -34,7 +34,7 @@ import java.util.Hashtable;
public class PaymentDatabase extends Database<PaymentRequest> { public class PaymentDatabase extends Database<PaymentRequest> {
private Hashtable<String, PaymentRequest> data; private final Hashtable<String, PaymentRequest> data;
public PaymentDatabase() { public PaymentDatabase() {
this.data = new Hashtable<>(); this.data = new Hashtable<>();

View File

@ -35,7 +35,7 @@ import java.util.List;
public class QueueDatabase extends Database<QueueTask> { public class QueueDatabase extends Database<QueueTask> {
private Queue<QueueTask> data; private final Queue<QueueTask> data;
public List<Exception> exceptionsList; public List<Exception> exceptionsList;
public QueueDatabase(Exception... exc) { public QueueDatabase(Exception... exc) {

View File

@ -34,7 +34,7 @@ import java.util.Hashtable;
public class ShippingDatabase extends Database<ShippingRequest> { public class ShippingDatabase extends Database<ShippingRequest> {
private Hashtable<String, ShippingRequest> data; private final Hashtable<String, ShippingRequest> data;
public ShippingDatabase() { public ShippingDatabase() {
this.data = new Hashtable<>(); this.data = new Hashtable<>();

View File

@ -34,7 +34,7 @@ Taking our sentence example from above. Here we have the base class and differen
```java ```java
public abstract class LetterComposite { public abstract class LetterComposite {
private List<LetterComposite> children = new ArrayList<>(); private final List<LetterComposite> children = new ArrayList<>();
public void add(LetterComposite letter) { public void add(LetterComposite letter) {
children.add(letter); children.add(letter);
@ -59,7 +59,7 @@ public abstract class LetterComposite {
public class Letter extends LetterComposite { public class Letter extends LetterComposite {
private char character; private final char character;
public Letter(char c) { public Letter(char c) {
this.character = c; this.character = c;

View File

@ -28,7 +28,7 @@ package com.iluwatar.composite;
*/ */
public class Letter extends LetterComposite { public class Letter extends LetterComposite {
private char character; private final char character;
public Letter(char c) { public Letter(char c) {
this.character = c; this.character = c;

View File

@ -31,7 +31,7 @@ import java.util.List;
*/ */
public abstract class LetterComposite { public abstract class LetterComposite {
private List<LetterComposite> children = new ArrayList<>(); private final List<LetterComposite> children = new ArrayList<>();
public void add(LetterComposite letter) { public void add(LetterComposite letter) {
children.add(letter); children.add(letter);

View File

@ -29,10 +29,10 @@ import java.util.Objects;
* User class. * User class.
*/ */
public class User { public class User {
private String firstName; private final String firstName;
private String lastName; private final String lastName;
private boolean isActive; private final boolean isActive;
private String userId; private final String userId;
/** /**
* Constructor. * Constructor.

View File

@ -30,10 +30,10 @@ import java.util.Objects;
*/ */
public class UserDto { public class UserDto {
private String firstName; private final String firstName;
private String lastName; private final String lastName;
private boolean isActive; private final boolean isActive;
private String email; private final String email;
/** /**
* Constructor. * Constructor.

View File

@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test;
*/ */
public class ConverterTest { public class ConverterTest {
private UserConverter userConverter = new UserConverter(); private final UserConverter userConverter = new UserConverter();
/** /**
* Tests whether a converter created of opposite functions holds equality as a bijection. * Tests whether a converter created of opposite functions holds equality as a bijection.

View File

@ -34,7 +34,7 @@ import org.hibernate.SessionFactory;
*/ */
public class CommandServiceImpl implements ICommandService { public class CommandServiceImpl implements ICommandService {
private SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); private final SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
private Author getAuthorByUsername(String username) { private Author getAuthorByUsername(String username) {
Author author; Author author;

View File

@ -38,7 +38,7 @@ import org.hibernate.transform.Transformers;
*/ */
public class QueryServiceImpl implements IQueryService { public class QueryServiceImpl implements IQueryService {
private SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); private final SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
@Override @Override
public Author getAuthorByUsername(String username) { public Author getAuthorByUsername(String username) {

View File

@ -112,7 +112,7 @@ public interface CustomerDao {
public class InMemoryCustomerDao implements CustomerDao { public class InMemoryCustomerDao implements CustomerDao {
private Map<Integer, Customer> idToCustomer = new HashMap<>(); private final Map<Integer, Customer> idToCustomer = new HashMap<>();
@Override @Override
public Stream<Customer> getAll() { public Stream<Customer> getAll() {

View File

@ -44,7 +44,7 @@ import org.slf4j.LoggerFactory;
*/ */
public class App { public class App {
private static final String DB_URL = "jdbc:h2:~/dao"; private static final String DB_URL = "jdbc:h2:~/dao";
private static Logger log = LoggerFactory.getLogger(App.class); private static final Logger log = LoggerFactory.getLogger(App.class);
private static final String ALL_CUSTOMERS = "customerDao.getAllCustomers(): "; private static final String ALL_CUSTOMERS = "customerDao.getAllCustomers(): ";
/** /**

View File

@ -36,7 +36,7 @@ import java.util.stream.Stream;
*/ */
public class InMemoryCustomerDao implements CustomerDao { public class InMemoryCustomerDao implements CustomerDao {
private Map<Integer, Customer> idToCustomer = new HashMap<>(); private final Map<Integer, Customer> idToCustomer = new HashMap<>();
/** /**
* An eagerly evaluated stream of customers stored in memory. * An eagerly evaluated stream of customers stored in memory.

View File

@ -50,7 +50,7 @@ public class DbCustomerDaoTest {
private static final String DB_URL = "jdbc:h2:~/dao"; private static final String DB_URL = "jdbc:h2:~/dao";
private DbCustomerDao dao; private DbCustomerDao dao;
private Customer existingCustomer = new Customer(1, "Freddy", "Krueger"); private final Customer existingCustomer = new Customer(1, "Freddy", "Krueger");
/** /**
* Creates customers schema. * Creates customers schema.

View File

@ -41,7 +41,7 @@ public class MessageCollectorMember implements Member {
private final String name; private final String name;
private List<String> messages = new ArrayList<>(); private final List<String> messages = new ArrayList<>();
public MessageCollectorMember(String name) { public MessageCollectorMember(String name) {
this.name = name; this.name = name;

View File

@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
*/ */
public final class App { public final class App {
private static Logger log = LoggerFactory.getLogger(App.class); private static final Logger log = LoggerFactory.getLogger(App.class);
private static final String STUDENT_STRING = "App.main(), student : "; private static final String STUDENT_STRING = "App.main(), student : ";

View File

@ -33,7 +33,7 @@ import java.util.Optional;
public final class StudentDataMapperImpl implements StudentDataMapper { public final class StudentDataMapperImpl implements StudentDataMapper {
/* Note: Normally this would be in the form of an actual database */ /* Note: Normally this would be in the form of an actual database */
private List<Student> students = new ArrayList<>(); private final List<Student> students = new ArrayList<>();
@Override @Override
public Optional<Student> find(int studentId) { public Optional<Student> find(int studentId) {

View File

@ -64,7 +64,7 @@ Customer resource class acts as the server for customer information.
```java ```java
public class CustomerResource { public class CustomerResource {
private List<CustomerDto> customers; private final List<CustomerDto> customers;
public CustomerResource(List<CustomerDto> customers) { public CustomerResource(List<CustomerDto> customers) {
this.customers = customers; this.customers = customers;

View File

@ -30,7 +30,7 @@ import java.util.List;
* has all customer details. * has all customer details.
*/ */
public class CustomerResource { public class CustomerResource {
private List<CustomerDto> customers; private final List<CustomerDto> customers;
/** /**
* Initialise resource with existing customers. * Initialise resource with existing customers.

View File

@ -70,7 +70,7 @@ public class ClubbedTroll implements Troll {
private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class); private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class);
private Troll decorated; private final Troll decorated;
public ClubbedTroll(Troll decorated) { public ClubbedTroll(Troll decorated) {
this.decorated = decorated; this.decorated = decorated;

View File

@ -33,7 +33,7 @@ public class ClubbedTroll implements Troll {
private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class); private static final Logger LOGGER = LoggerFactory.getLogger(ClubbedTroll.class);
private Troll decorated; private final Troll decorated;
public ClubbedTroll(Troll decorated) { public ClubbedTroll(Troll decorated) {
this.decorated = decorated; this.decorated = decorated;

View File

@ -68,7 +68,7 @@ public class SimpleTrollTest {
private class InMemoryAppender extends AppenderBase<ILoggingEvent> { private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>(); private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender(Class clazz) { public InMemoryAppender(Class clazz) {
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);

View File

@ -86,7 +86,7 @@ public class DelegateTest {
*/ */
private class InMemoryAppender extends AppenderBase<ILoggingEvent> { private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>(); private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender() { public InMemoryAppender() {
((Logger) LoggerFactory.getLogger("root")).addAppender(this); ((Logger) LoggerFactory.getLogger("root")).addAppender(this);

View File

@ -62,7 +62,7 @@ public interface Wizard {
public class AdvancedWizard implements Wizard { public class AdvancedWizard implements Wizard {
private Tobacco tobacco; private final Tobacco tobacco;
public AdvancedWizard(Tobacco tobacco) { public AdvancedWizard(Tobacco tobacco) {
this.tobacco = tobacco; this.tobacco = tobacco;

View File

@ -29,7 +29,7 @@ package com.iluwatar.dependency.injection;
*/ */
public class AdvancedWizard implements Wizard { public class AdvancedWizard implements Wizard {
private Tobacco tobacco; private final Tobacco tobacco;
public AdvancedWizard(Tobacco tobacco) { public AdvancedWizard(Tobacco tobacco) {
this.tobacco = tobacco; this.tobacco = tobacco;

View File

@ -31,7 +31,7 @@ import javax.inject.Inject;
*/ */
public class GuiceWizard implements Wizard { public class GuiceWizard implements Wizard {
private Tobacco tobacco; private final Tobacco tobacco;
@Inject @Inject
public GuiceWizard(Tobacco tobacco) { public GuiceWizard(Tobacco tobacco) {

View File

@ -29,7 +29,7 @@ package com.iluwatar.dependency.injection;
*/ */
public class SimpleWizard implements Wizard { public class SimpleWizard implements Wizard {
private OldTobyTobacco tobacco = new OldTobyTobacco(); private final OldTobyTobacco tobacco = new OldTobyTobacco();
public void smoke() { public void smoke() {
tobacco.smoke(this); tobacco.smoke(this);

View File

@ -37,7 +37,7 @@ import java.util.List;
*/ */
public class InMemoryAppender extends AppenderBase<ILoggingEvent> { public class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>(); private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender(Class clazz) { public InMemoryAppender(Class clazz) {
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);

View File

@ -34,7 +34,7 @@ import java.util.List;
public class World { public class World {
private List<String> countries; private List<String> countries;
private DataFetcher df; private final DataFetcher df;
public World() { public World() {
this.countries = new ArrayList<String>(); this.countries = new ArrayList<String>();

View File

@ -33,7 +33,7 @@ public class FrameBuffer implements Buffer {
public static final int WIDTH = 10; public static final int WIDTH = 10;
public static final int HEIGHT = 8; public static final int HEIGHT = 8;
private Pixel[] pixels = new Pixel[WIDTH * HEIGHT]; private final Pixel[] pixels = new Pixel[WIDTH * HEIGHT];
public FrameBuffer() { public FrameBuffer() {
clearAll(); clearAll();

View File

@ -31,7 +31,7 @@ public enum Pixel {
WHITE(0), WHITE(0),
BLACK(1); BLACK(1);
private int color; private final int color;
Pixel(int color) { Pixel(int color) {
this.color = color; this.color = color;

View File

@ -35,7 +35,7 @@ public class Scene {
private static final Logger LOGGER = LoggerFactory.getLogger(Scene.class); private static final Logger LOGGER = LoggerFactory.getLogger(Scene.class);
private Buffer[] frameBuffers; private final Buffer[] frameBuffers;
private int current; private int current;

View File

@ -109,7 +109,7 @@ public class InventoryTest {
private class InMemoryAppender extends AppenderBase<ILoggingEvent> { private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>(); private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender(Class clazz) { public InMemoryAppender(Class clazz) {
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);

View File

@ -28,10 +28,10 @@ package com.iluwatar.doubledispatch;
*/ */
public class Rectangle { public class Rectangle {
private int left; private final int left;
private int top; private final int top;
private int right; private final int right;
private int bottom; private final int bottom;
/** /**
* Constructor. * Constructor.

View File

@ -31,7 +31,7 @@ public enum Event {
STARK_SIGHTED("Stark sighted"), WARSHIPS_APPROACHING("Warships approaching"), TRAITOR_DETECTED( STARK_SIGHTED("Stark sighted"), WARSHIPS_APPROACHING("Warships approaching"), TRAITOR_DETECTED(
"Traitor detected"); "Traitor detected");
private String description; private final String description;
Event(String description) { Event(String description) {
this.description = description; this.description = description;

View File

@ -31,7 +31,7 @@ import java.util.List;
*/ */
public abstract class EventEmitter { public abstract class EventEmitter {
private List<EventObserver> observers; private final List<EventObserver> observers;
public EventEmitter() { public EventEmitter() {
observers = new LinkedList<>(); observers = new LinkedList<>();

View File

@ -36,7 +36,7 @@ public enum Weekday {
SATURDAY("Saturday"), SATURDAY("Saturday"),
SUNDAY("Sunday"); SUNDAY("Sunday");
private String description; private final String description;
Weekday(String description) { Weekday(String description) {
this.description = description; this.description = description;

View File

@ -74,7 +74,7 @@ public class KingJoffreyTest {
} }
private class InMemoryAppender extends AppenderBase<ILoggingEvent> { private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>(); private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender(Class<?> clazz) { public InMemoryAppender(Class<?> clazz) {
((Logger) LoggerFactory.getLogger(clazz)).addAppender(this); ((Logger) LoggerFactory.getLogger(clazz)).addAppender(this);

View File

@ -33,9 +33,9 @@ public class Event implements IEvent, Runnable {
private static final Logger LOGGER = LoggerFactory.getLogger(Event.class); private static final Logger LOGGER = LoggerFactory.getLogger(Event.class);
private int eventId; private final int eventId;
private int eventTime; private final int eventTime;
private boolean isSynchronous; private final boolean isSynchronous;
private Thread thread; private Thread thread;
private boolean isComplete = false; private boolean isComplete = false;
private ThreadCompleteListener eventListener; private ThreadCompleteListener eventListener;

View File

@ -43,8 +43,8 @@ public class EventManager implements ThreadCompleteListener {
public static final int MAX_ID = MAX_RUNNING_EVENTS; public static final int MAX_ID = MAX_RUNNING_EVENTS;
public static final int MAX_EVENT_TIME = 1800; // in seconds / 30 minutes. public static final int MAX_EVENT_TIME = 1800; // in seconds / 30 minutes.
private int currentlyRunningSyncEvent = -1; private int currentlyRunningSyncEvent = -1;
private Random rand; private final Random rand;
private Map<Integer, Event> eventPool; private final Map<Integer, Event> eventPool;
private static final String DOES_NOT_EXIST = " does not exist."; private static final String DOES_NOT_EXIST = " does not exist.";

View File

@ -32,7 +32,7 @@ import com.iluwatar.eda.model.User;
*/ */
public class UserCreatedEvent extends AbstractEvent { public class UserCreatedEvent extends AbstractEvent {
private User user; private final User user;
public UserCreatedEvent(User user) { public UserCreatedEvent(User user) {
this.user = user; this.user = user;

View File

@ -32,7 +32,7 @@ import com.iluwatar.eda.model.User;
*/ */
public class UserUpdatedEvent extends AbstractEvent { public class UserUpdatedEvent extends AbstractEvent {
private User user; private final User user;
public UserUpdatedEvent(User user) { public UserUpdatedEvent(User user) {
this.user = user; this.user = user;

View File

@ -32,7 +32,7 @@ import java.util.Map;
*/ */
public class EventDispatcher { public class EventDispatcher {
private Map<Class<? extends Event>, Handler<? extends Event>> handlers; private final Map<Class<? extends Event>, Handler<? extends Event>> handlers;
public EventDispatcher() { public EventDispatcher() {
handlers = new HashMap<>(); handlers = new HashMap<>();

View File

@ -32,7 +32,7 @@ import com.iluwatar.eda.event.UserUpdatedEvent;
*/ */
public class User { public class User {
private String username; private final String username;
public User(String username) { public User(String username) {
this.username = username; this.username = username;

View File

@ -49,7 +49,7 @@ public class Audio {
private volatile Thread updateThread = null; private volatile Thread updateThread = null;
private PlayMessage[] pendingAudio = new PlayMessage[MAX_PENDING]; private final PlayMessage[] pendingAudio = new PlayMessage[MAX_PENDING];
// Visible only for testing purposes // Visible only for testing purposes
Audio() { Audio() {

View File

@ -35,7 +35,7 @@ public class Commander implements CommanderExtension {
private static final Logger LOGGER = LoggerFactory.getLogger(Commander.class); private static final Logger LOGGER = LoggerFactory.getLogger(Commander.class);
private CommanderUnit unit; private final CommanderUnit unit;
public Commander(CommanderUnit commanderUnit) { public Commander(CommanderUnit commanderUnit) {
this.unit = commanderUnit; this.unit = commanderUnit;

View File

@ -35,7 +35,7 @@ public class Sergeant implements SergeantExtension {
private static final Logger LOGGER = LoggerFactory.getLogger(Sergeant.class); private static final Logger LOGGER = LoggerFactory.getLogger(Sergeant.class);
private SergeantUnit unit; private final SergeantUnit unit;
public Sergeant(SergeantUnit sergeantUnit) { public Sergeant(SergeantUnit sergeantUnit) {
this.unit = sergeantUnit; this.unit = sergeantUnit;

View File

@ -34,7 +34,7 @@ import units.SoldierUnit;
public class Soldier implements SoldierExtension { public class Soldier implements SoldierExtension {
private static final Logger LOGGER = LoggerFactory.getLogger(Soldier.class); private static final Logger LOGGER = LoggerFactory.getLogger(Soldier.class);
private SoldierUnit unit; private final SoldierUnit unit;
public Soldier(SoldierUnit soldierUnit) { public Soldier(SoldierUnit soldierUnit) {
this.unit = soldierUnit; this.unit = soldierUnit;

View File

@ -83,7 +83,7 @@ public abstract class DwarvenMineWorker {
public abstract String name(); public abstract String name();
static enum Action { enum Action {
GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK GO_TO_SLEEP, WAKE_UP, GO_HOME, GO_TO_MINE, WORK
} }
} }

View File

@ -110,7 +110,7 @@ public class DwarvenGoldmineFacadeTest {
private class InMemoryAppender extends AppenderBase<ILoggingEvent> { private class InMemoryAppender extends AppenderBase<ILoggingEvent> {
private List<ILoggingEvent> log = new LinkedList<>(); private final List<ILoggingEvent> log = new LinkedList<>();
public InMemoryAppender() { public InMemoryAppender() {
((Logger) LoggerFactory.getLogger("root")).addAppender(this); ((Logger) LoggerFactory.getLogger("root")).addAppender(this);

View File

@ -32,7 +32,7 @@ import java.util.Map;
*/ */
public class ElfBlacksmith implements Blacksmith { public class ElfBlacksmith implements Blacksmith {
private static Map<WeaponType, ElfWeapon> ELFARSENAL; private static final Map<WeaponType, ElfWeapon> ELFARSENAL;
static { static {
ELFARSENAL = new HashMap<>(WeaponType.values().length); ELFARSENAL = new HashMap<>(WeaponType.values().length);

View File

@ -28,7 +28,7 @@ package com.iluwatar.factory.method;
*/ */
public class ElfWeapon implements Weapon { public class ElfWeapon implements Weapon {
private WeaponType weaponType; private final WeaponType weaponType;
public ElfWeapon(WeaponType weaponType) { public ElfWeapon(WeaponType weaponType) {
this.weaponType = weaponType; this.weaponType = weaponType;

View File

@ -32,7 +32,7 @@ import java.util.Map;
*/ */
public class OrcBlacksmith implements Blacksmith { public class OrcBlacksmith implements Blacksmith {
private static Map<WeaponType, OrcWeapon> ORCARSENAL; private static final Map<WeaponType, OrcWeapon> ORCARSENAL;
static { static {
ORCARSENAL = new HashMap<>(WeaponType.values().length); ORCARSENAL = new HashMap<>(WeaponType.values().length);

View File

@ -28,7 +28,7 @@ package com.iluwatar.factory.method;
*/ */
public class OrcWeapon implements Weapon { public class OrcWeapon implements Weapon {
private WeaponType weaponType; private final WeaponType weaponType;
public OrcWeapon(WeaponType weaponType) { public OrcWeapon(WeaponType weaponType) {
this.weaponType = weaponType; this.weaponType = weaponType;

View File

@ -30,7 +30,7 @@ public enum WeaponType {
SHORT_SWORD("short sword"), SPEAR("spear"), AXE("axe"), UNDEFINED(""); SHORT_SWORD("short sword"), SPEAR("spear"), AXE("axe"), UNDEFINED("");
private String title; private final String title;
WeaponType(String title) { WeaponType(String title) {
this.title = title; this.title = title;

View File

@ -42,7 +42,7 @@ import java.util.Properties;
*/ */
public class PropertiesFeatureToggleVersion implements Service { public class PropertiesFeatureToggleVersion implements Service {
private boolean isEnhanced; private final boolean isEnhanced;
/** /**
* Creates an instance of {@link PropertiesFeatureToggleVersion} using the passed {@link * Creates an instance of {@link PropertiesFeatureToggleVersion} using the passed {@link

View File

@ -29,7 +29,7 @@ package com.iluwatar.featuretoggle.user;
*/ */
public class User { public class User {
private String name; private final String name;
/** /**
* Default Constructor setting the username. * Default Constructor setting the username.

View File

@ -35,8 +35,8 @@ import java.util.List;
*/ */
public class UserGroup { public class UserGroup {
private static List<User> freeGroup = new ArrayList<>(); private static final List<User> freeGroup = new ArrayList<>();
private static List<User> paidGroup = new ArrayList<>(); private static final List<User> paidGroup = new ArrayList<>();
/** /**

View File

@ -94,7 +94,7 @@ public class App {
.filter(positives()) .filter(positives())
.first(4) .first(4)
.last(2) .last(2)
.map(number -> "String[" + valueOf(number) + "]") .map(number -> "String[" + number + "]")
.asList(); .asList();
prettyPrint("The lazy list contains the last two of the first four positive numbers " prettyPrint("The lazy list contains the last two of the first four positive numbers "
+ "mapped to Strings: ", lastTwoOfFirstFourStringMapped); + "mapped to Strings: ", lastTwoOfFirstFourStringMapped);

View File

@ -198,7 +198,7 @@ public class LazyFluentIterable<E> implements FluentIterable<E> {
@Override @Override
public Iterator<T> iterator() { public Iterator<T> iterator() {
return new DecoratingIterator<T>(null) { return new DecoratingIterator<T>(null) {
Iterator<E> oldTypeIterator = iterable.iterator(); final Iterator<E> oldTypeIterator = iterable.iterator();
@Override @Override
public T computeNext() { public T computeNext() {

View File

@ -28,7 +28,7 @@ package com.iluwatar.flux.action;
*/ */
public abstract class Action { public abstract class Action {
private ActionType type; private final ActionType type;
public Action(ActionType type) { public Action(ActionType type) {
this.type = type; this.type = type;

View File

@ -28,6 +28,6 @@ package com.iluwatar.flux.action;
*/ */
public enum ActionType { public enum ActionType {
MENU_ITEM_SELECTED, CONTENT_CHANGED; MENU_ITEM_SELECTED, CONTENT_CHANGED
} }

View File

@ -31,7 +31,7 @@ public enum Content {
PRODUCTS("Products - This page lists the company's products."), COMPANY( PRODUCTS("Products - This page lists the company's products."), COMPANY(
"Company - This page displays information about the company."); "Company - This page displays information about the company.");
private String title; private final String title;
Content(String title) { Content(String title) {
this.title = title; this.title = title;

View File

@ -28,7 +28,7 @@ package com.iluwatar.flux.action;
*/ */
public class ContentAction extends Action { public class ContentAction extends Action {
private Content content; private final Content content;
public ContentAction(Content content) { public ContentAction(Content content) {
super(ActionType.CONTENT_CHANGED); super(ActionType.CONTENT_CHANGED);

View File

@ -29,7 +29,7 @@ package com.iluwatar.flux.action;
*/ */
public class MenuAction extends Action { public class MenuAction extends Action {
private MenuItem menuItem; private final MenuItem menuItem;
public MenuAction(MenuItem menuItem) { public MenuAction(MenuItem menuItem) {
super(ActionType.MENU_ITEM_SELECTED); super(ActionType.MENU_ITEM_SELECTED);

View File

@ -30,7 +30,7 @@ public enum MenuItem {
HOME("Home"), PRODUCTS("Products"), COMPANY("Company"); HOME("Home"), PRODUCTS("Products"), COMPANY("Company");
private String title; private final String title;
MenuItem(String title) { MenuItem(String title) {
this.title = title; this.title = title;

View File

@ -39,7 +39,7 @@ public final class Dispatcher {
private static Dispatcher instance = new Dispatcher(); private static Dispatcher instance = new Dispatcher();
private List<Store> stores = new LinkedList<>(); private final List<Store> stores = new LinkedList<>();
private Dispatcher() { private Dispatcher() {
} }

View File

@ -33,7 +33,7 @@ import java.util.List;
*/ */
public abstract class Store { public abstract class Store {
private List<View> views = new LinkedList<>(); private final List<View> views = new LinkedList<>();
public abstract void onAction(Action action); public abstract void onAction(Action action);

Some files were not shown because too many files have changed in this diff Show More