diff --git a/hexagonal/pom.xml b/hexagonal/pom.xml
index 540e6f398..54f81cf14 100644
--- a/hexagonal/pom.xml
+++ b/hexagonal/pom.xml
@@ -32,11 +32,7 @@
java-design-patterns
1.12.0-SNAPSHOT
- com.iluwatar.hexagonal
hexagonal
- 1.0-SNAPSHOT
- hexagonal
- http://maven.apache.org
junit
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministration.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministration.java
index 70b625aa2..bc625b230 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministration.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministration.java
@@ -35,8 +35,19 @@ import com.iluwatar.hexagonal.domain.LotteryTicketId;
*/
public interface LotteryAdministration {
+ /**
+ * Get all the lottery tickets submitted for lottery
+ */
Map getAllSubmittedTickets();
+
+ /**
+ * Draw lottery numbers
+ */
LotteryNumbers performLottery();
+
+ /**
+ * Begin new lottery round
+ */
void resetLottery();
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministrationImpl.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministrationImpl.java
index 5e457439b..a452600aa 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministrationImpl.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/administration/LotteryAdministrationImpl.java
@@ -47,13 +47,9 @@ import com.iluwatar.hexagonal.service.LotteryServiceImpl;
public class LotteryAdministrationImpl implements LotteryAdministration {
private final LotteryTicketRepository repository;
-
private final LotteryService service = new LotteryServiceImpl();
-
private final LotteryNotifications notifications = new LotteryNotificationsImpl();
-
private final WireTransfers bank = new WireTransfersImpl();
-
public LotteryAdministrationImpl() {
repository = new LotteryTicketInMemoryRepository();
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/WireTransfers.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/WireTransfers.java
index 61a6567ba..7d21e7bf3 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/WireTransfers.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/banking/WireTransfers.java
@@ -29,8 +29,19 @@ package com.iluwatar.hexagonal.banking;
*/
public interface WireTransfers {
+ /**
+ * Set amount of funds for bank account
+ */
void setFunds(String bankAccount, int amount);
+
+ /**
+ * Get amount of funds for bank account
+ */
int getFunds(String bankAccount);
+
+ /**
+ * Transfer funds from one bank account to another
+ */
boolean transferFunds(int amount, String sourceBackAccount, String destinationBankAccount);
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepository.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepository.java
index a531440b4..4c6522838 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepository.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/database/LotteryTicketRepository.java
@@ -35,9 +35,24 @@ import com.iluwatar.hexagonal.domain.LotteryTicketId;
*/
public interface LotteryTicketRepository {
+ /**
+ * Find lottery ticket by id
+ */
Optional findById(LotteryTicketId id);
+
+ /**
+ * Save lottery ticket
+ */
Optional save(LotteryTicket ticket);
+
+ /**
+ * Get all lottery tickets
+ */
Map findAll();
+
+ /**
+ * Delete all lottery tickets
+ */
void deleteAll();
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java
index 534dc685f..ded65d270 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketCheckResult.java
@@ -32,7 +32,6 @@ public class LotteryTicketCheckResult {
public enum CheckResult { WIN_PRIZE, NO_PRIZE, TICKET_NOT_SUBMITTED };
private final CheckResult checkResult;
-
private final int prizeAmount;
/**
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java
index 358bdd05a..710091222 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/domain/LotteryTicketId.java
@@ -24,6 +24,9 @@ package com.iluwatar.hexagonal.domain;
import java.util.UUID;
+/**
+ * Lottery ticked id
+ */
public class LotteryTicketId {
private final UUID id;
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/notifications/LotteryNotifications.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/notifications/LotteryNotifications.java
index cc9f9d6e5..d7a0cc870 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/notifications/LotteryNotifications.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/notifications/LotteryNotifications.java
@@ -30,11 +30,30 @@ import com.iluwatar.hexagonal.domain.PlayerDetails;
*
*/
public interface LotteryNotifications {
-
+
+ /**
+ * Notify lottery ticket was submitted
+ */
void notifyTicketSubmitted(PlayerDetails details);
+
+ /**
+ * Notify there was an error submitting lottery ticket
+ */
void notifyTicketSubmitError(PlayerDetails details);
+
+ /**
+ * Notify lottery ticket did not win
+ */
void notifyNoWin(PlayerDetails details);
+
+ /**
+ * Notify that prize has been paid
+ */
void notifyPrize(PlayerDetails details, int prizeAmount);
+
+ /**
+ * Notify that there was an error paying the prize
+ */
void notifyPrizeError(PlayerDetails details, int prizeAmount);
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryService.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryService.java
index 65270410a..0056e794b 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryService.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryService.java
@@ -36,7 +36,13 @@ import com.iluwatar.hexagonal.domain.LotteryTicketId;
*/
public interface LotteryService {
+ /**
+ * Submit lottery ticket to participate in the lottery
+ */
Optional submitTicket(LotteryTicket ticket);
+ /**
+ * Check if lottery ticket has won
+ */
LotteryTicketCheckResult checkTicketForPrize(LotteryTicketId id, LotteryNumbers winningNumbers);
}
diff --git a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryServiceImpl.java b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryServiceImpl.java
index d446e93be..58df1c7c8 100644
--- a/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryServiceImpl.java
+++ b/hexagonal/src/main/java/com/iluwatar/hexagonal/service/LotteryServiceImpl.java
@@ -49,7 +49,10 @@ public class LotteryServiceImpl implements LotteryService {
private final WireTransfers bank = new WireTransfersImpl();
private final LotteryNotifications notifications = new LotteryNotificationsImpl();
-
+
+ /**
+ * Constructor
+ */
public LotteryServiceImpl() {
repository = new LotteryTicketInMemoryRepository();
}