|
22 | 22 | */ |
23 | 23 | package com.iluwatar.hexagonal; |
24 | 24 |
|
| 25 | +import java.util.ArrayList; |
| 26 | +import java.util.List; |
| 27 | +import java.util.Random; |
| 28 | + |
| 29 | +import com.iluwatar.hexagonal.administration.LotteryAdministration; |
| 30 | +import com.iluwatar.hexagonal.administration.LotteryAdministrationImpl; |
| 31 | +import com.iluwatar.hexagonal.domain.LotteryNumbers; |
| 32 | +import com.iluwatar.hexagonal.domain.LotteryTicket; |
| 33 | +import com.iluwatar.hexagonal.domain.PlayerDetails; |
| 34 | +import com.iluwatar.hexagonal.service.LotteryService; |
| 35 | +import com.iluwatar.hexagonal.service.LotteryServiceImpl; |
| 36 | + |
25 | 37 | /** |
26 | 38 | * |
27 | 39 | * Example application demonstrating Hexagonal Architecture |
28 | 40 | * |
29 | 41 | */ |
30 | 42 | public class App { |
| 43 | + |
| 44 | + private static List<PlayerDetails> allPlayerDetails; |
| 45 | + |
| 46 | + static { |
| 47 | + allPlayerDetails = new ArrayList<>(); |
| 48 | + allPlayerDetails.add(PlayerDetails.create("john@google.com", "312-342", "+3242434242")); |
| 49 | + allPlayerDetails.add(PlayerDetails.create("mary@google.com", "312-342", "+3242434242")); |
| 50 | + allPlayerDetails.add(PlayerDetails.create("steve@google.com", "312-342", "+3242434242")); |
| 51 | + allPlayerDetails.add(PlayerDetails.create("wayne@google.com", "312-342", "+3242434242")); |
| 52 | + allPlayerDetails.add(PlayerDetails.create("johnie@google.com", "312-342", "+3242434242")); |
| 53 | + allPlayerDetails.add(PlayerDetails.create("andy@google.com", "312-342", "+3242434242")); |
| 54 | + allPlayerDetails.add(PlayerDetails.create("richard@google.com", "312-342", "+3242434242")); |
| 55 | + allPlayerDetails.add(PlayerDetails.create("kevin@google.com", "312-342", "+3242434242")); |
| 56 | + allPlayerDetails.add(PlayerDetails.create("arnold@google.com", "312-342", "+3242434242")); |
| 57 | + allPlayerDetails.add(PlayerDetails.create("ian@google.com", "312-342", "+3242434242")); |
| 58 | + allPlayerDetails.add(PlayerDetails.create("robin@google.com", "312-342", "+3242434242")); |
| 59 | + allPlayerDetails.add(PlayerDetails.create("ted@google.com", "312-342", "+3242434242")); |
| 60 | + allPlayerDetails.add(PlayerDetails.create("larry@google.com", "312-342", "+3242434242")); |
| 61 | + allPlayerDetails.add(PlayerDetails.create("calvin@google.com", "312-342", "+3242434242")); |
| 62 | + allPlayerDetails.add(PlayerDetails.create("jacob@google.com", "312-342", "+3242434242")); |
| 63 | + allPlayerDetails.add(PlayerDetails.create("edwin@google.com", "312-342", "+3242434242")); |
| 64 | + allPlayerDetails.add(PlayerDetails.create("mary@google.com", "312-342", "+3242434242")); |
| 65 | + allPlayerDetails.add(PlayerDetails.create("lolita@google.com", "312-342", "+3242434242")); |
| 66 | + allPlayerDetails.add(PlayerDetails.create("bruno@google.com", "312-342", "+3242434242")); |
| 67 | + allPlayerDetails.add(PlayerDetails.create("peter@google.com", "312-342", "+3242434242")); |
| 68 | + allPlayerDetails.add(PlayerDetails.create("warren@google.com", "312-342", "+3242434242")); |
| 69 | + allPlayerDetails.add(PlayerDetails.create("monica@google.com", "312-342", "+3242434242")); |
| 70 | + allPlayerDetails.add(PlayerDetails.create("ollie@google.com", "312-342", "+3242434242")); |
| 71 | + allPlayerDetails.add(PlayerDetails.create("yngwie@google.com", "312-342", "+3242434242")); |
| 72 | + allPlayerDetails.add(PlayerDetails.create("lars@google.com", "312-342", "+3242434242")); |
| 73 | + allPlayerDetails.add(PlayerDetails.create("bobbie@google.com", "312-342", "+3242434242")); |
| 74 | + allPlayerDetails.add(PlayerDetails.create("tyron@google.com", "312-342", "+3242434242")); |
| 75 | + allPlayerDetails.add(PlayerDetails.create("tyrell@google.com", "312-342", "+3242434242")); |
| 76 | + allPlayerDetails.add(PlayerDetails.create("nadja@google.com", "312-342", "+3242434242")); |
| 77 | + allPlayerDetails.add(PlayerDetails.create("wendy@google.com", "312-342", "+3242434242")); |
| 78 | + allPlayerDetails.add(PlayerDetails.create("luke@google.com", "312-342", "+3242434242")); |
| 79 | + allPlayerDetails.add(PlayerDetails.create("bjorn@google.com", "312-342", "+3242434242")); |
| 80 | + allPlayerDetails.add(PlayerDetails.create("lisa@google.com", "312-342", "+3242434242")); |
| 81 | + allPlayerDetails.add(PlayerDetails.create("anton@google.com", "312-342", "+3242434242")); |
| 82 | + allPlayerDetails.add(PlayerDetails.create("bruce@google.com", "312-342", "+3242434242")); |
| 83 | + allPlayerDetails.add(PlayerDetails.create("ray@google.com", "312-342", "+3242434242")); |
| 84 | + allPlayerDetails.add(PlayerDetails.create("ron@google.com", "312-342", "+3242434242")); |
| 85 | + allPlayerDetails.add(PlayerDetails.create("xavier@google.com", "312-342", "+3242434242")); |
| 86 | + allPlayerDetails.add(PlayerDetails.create("harriet@google.com", "312-342", "+3242434242")); |
| 87 | + } |
| 88 | + |
31 | 89 | /** |
32 | 90 | * Program entry point |
33 | 91 | */ |
34 | 92 | public static void main(String[] args) { |
| 93 | + // start new lottery round |
| 94 | + LotteryAdministration administartion = new LotteryAdministrationImpl(); |
| 95 | + administartion.resetLottery(); |
| 96 | + |
35 | 97 | // submit some lottery tickets |
| 98 | + LotteryServiceImpl service = new LotteryServiceImpl(); |
| 99 | + submitTickets(service, 20); |
36 | 100 |
|
37 | | - // perform lottery |
| 101 | + int i = administartion.getAllSubmittedTickets().size(); |
38 | 102 |
|
39 | | - // check all the tickets |
| 103 | + // perform lottery |
| 104 | + administartion.performLottery(); |
| 105 | + } |
| 106 | + |
| 107 | + private static void submitTickets(LotteryService lotteryService, int numTickets) { |
| 108 | + for (int i=0; i<numTickets; i++) { |
| 109 | + LotteryTicket ticket = LotteryTicket.create(getRandomPlayerDetails(), LotteryNumbers.createRandom()); |
| 110 | + lotteryService.submitTicket(ticket); |
| 111 | + } |
| 112 | + } |
| 113 | + |
| 114 | + private static PlayerDetails getRandomPlayerDetails() { |
| 115 | + Random random = new Random(); |
| 116 | + int idx = random.nextInt(allPlayerDetails.size()); |
| 117 | + return allPlayerDetails.get(idx); |
40 | 118 | } |
41 | 119 | } |
0 commit comments