From 8980b3958c93f2daf38c858a60668f837dcdf21e Mon Sep 17 00:00:00 2001
From: ruslanpa <ruslan.pavlutskiy@gmail.com>
Date: Tue, 10 Feb 2015 09:48:22 +0200
Subject: [PATCH] [refactor] Extends Action enum in mediator pattern.

---
 .../src/main/java/com/iluwatar/Action.java    | 14 ++++++++++++--
 .../src/main/java/com/iluwatar/PartyImpl.java |  2 +-
 .../java/com/iluwatar/PartyMemberBase.java    | 19 +------------------
 3 files changed, 14 insertions(+), 21 deletions(-)

diff --git a/mediator/src/main/java/com/iluwatar/Action.java b/mediator/src/main/java/com/iluwatar/Action.java
index 7e6fc30f7..eb237269f 100644
--- a/mediator/src/main/java/com/iluwatar/Action.java
+++ b/mediator/src/main/java/com/iluwatar/Action.java
@@ -7,12 +7,22 @@ package com.iluwatar;
  */
 public enum Action {
 
-	HUNT("hunted a rabbit"), TALE("tells a tale"), GOLD("found gold"), ENEMY("spotted enemies"), NONE("");
+    HUNT("hunted a rabbit", "arrives for dinner"),
+    TALE("tells a tale", "comes to listen"),
+    GOLD("found gold", "takes his share of the gold"),
+    ENEMY("spotted enemies", "runs for cover"),
+    NONE("", "");
 
     private String title;
+    private String description;
 
-    Action(String title) {
+    Action(String title, String description) {
         this.title = title;
+        this.description = description;
+    }
+
+    public String getDescription() {
+        return description;
     }
 
     public String toString() {
diff --git a/mediator/src/main/java/com/iluwatar/PartyImpl.java b/mediator/src/main/java/com/iluwatar/PartyImpl.java
index 70fe24d71..634c3444b 100644
--- a/mediator/src/main/java/com/iluwatar/PartyImpl.java
+++ b/mediator/src/main/java/com/iluwatar/PartyImpl.java
@@ -10,7 +10,7 @@ import java.util.List;
  */
 public class PartyImpl implements Party {
 
-	private List<PartyMember> members;
+	private final List<PartyMember> members;
 
 	public PartyImpl() {
 		members = new ArrayList<>();
diff --git a/mediator/src/main/java/com/iluwatar/PartyMemberBase.java b/mediator/src/main/java/com/iluwatar/PartyMemberBase.java
index 133792db6..d352b7b33 100644
--- a/mediator/src/main/java/com/iluwatar/PartyMemberBase.java
+++ b/mediator/src/main/java/com/iluwatar/PartyMemberBase.java
@@ -17,24 +17,7 @@ public abstract class PartyMemberBase implements PartyMember {
 
 	@Override
 	public void partyAction(Action action) {
-		String s = this + " ";
-		switch (action) {
-		case ENEMY:
-			s = s + "runs for cover";
-			break;
-		case GOLD:
-			s = s + "takes his share of the gold";
-			break;
-		case HUNT:
-			s = s + "arrives for dinner";
-			break;
-		case TALE:
-			s = s + "comes to listen";
-			break;
-		default:
-			break;
-		}
-		System.out.println(s);
+		System.out.println(this + " " + action.getDescription());
 	}
 
 	@Override