diff --git a/front-controller/src/main/java/com/iluwatar/App.java b/front-controller/src/main/java/com/iluwatar/App.java index 91948f24c..9db0c4c7f 100644 --- a/front-controller/src/main/java/com/iluwatar/App.java +++ b/front-controller/src/main/java/com/iluwatar/App.java @@ -1,5 +1,23 @@ package com.iluwatar; +/** + * + * The Front Controller is a presentation tier pattern. Essentially it defines a + * controller that handles all requests for a web site. + * + * The Front Controller pattern consolidates request handling through a single handler + * object (FrontController). This object can carry out the common the behavior such as + * authorization, request logging and routing requests to corresponding views. + * + * Typically the requests are mapped to command objects (Command) which then display + * the correct view (View). + * + * In this example we have implemented two views: ArcherView and CatapultView. These + * are displayed by sending correct request to the FrontController object. For example, + * the ArcherView gets displayed when FrontController receives request "Archer". When + * the request is unknown, we display the error view (ErrorView). + * + */ public class App { public static void main(String[] args) { diff --git a/front-controller/src/main/java/com/iluwatar/ArcherCommand.java b/front-controller/src/main/java/com/iluwatar/ArcherCommand.java index 2cdb74221..0b85247c5 100644 --- a/front-controller/src/main/java/com/iluwatar/ArcherCommand.java +++ b/front-controller/src/main/java/com/iluwatar/ArcherCommand.java @@ -1,5 +1,10 @@ package com.iluwatar; +/** + * + * Command for archers. + * + */ public class ArcherCommand implements Command { @Override diff --git a/front-controller/src/main/java/com/iluwatar/ArcherView.java b/front-controller/src/main/java/com/iluwatar/ArcherView.java index a8333d160..a670dd10d 100644 --- a/front-controller/src/main/java/com/iluwatar/ArcherView.java +++ b/front-controller/src/main/java/com/iluwatar/ArcherView.java @@ -1,5 +1,10 @@ package com.iluwatar; +/** + * + * View for archers. + * + */ public class ArcherView implements View { @Override diff --git a/front-controller/src/main/java/com/iluwatar/CatapultCommand.java b/front-controller/src/main/java/com/iluwatar/CatapultCommand.java index 767358dd5..db0a38b40 100644 --- a/front-controller/src/main/java/com/iluwatar/CatapultCommand.java +++ b/front-controller/src/main/java/com/iluwatar/CatapultCommand.java @@ -1,5 +1,10 @@ package com.iluwatar; +/** + * + * Command for catapults. + * + */ public class CatapultCommand implements Command { @Override diff --git a/front-controller/src/main/java/com/iluwatar/CatapultView.java b/front-controller/src/main/java/com/iluwatar/CatapultView.java index 131e3a880..6459b3b48 100644 --- a/front-controller/src/main/java/com/iluwatar/CatapultView.java +++ b/front-controller/src/main/java/com/iluwatar/CatapultView.java @@ -1,5 +1,10 @@ package com.iluwatar; +/** + * + * View for catapults. + * + */ public class CatapultView implements View { @Override diff --git a/front-controller/src/main/java/com/iluwatar/Command.java b/front-controller/src/main/java/com/iluwatar/Command.java index 6e22cd753..657ef58d5 100644 --- a/front-controller/src/main/java/com/iluwatar/Command.java +++ b/front-controller/src/main/java/com/iluwatar/Command.java @@ -1,5 +1,10 @@ package com.iluwatar; +/** + * + * Commands are the intermediary between requests and views. + * + */ public interface Command { void process(); diff --git a/front-controller/src/main/java/com/iluwatar/ErrorView.java b/front-controller/src/main/java/com/iluwatar/ErrorView.java new file mode 100644 index 000000000..1a91a0d52 --- /dev/null +++ b/front-controller/src/main/java/com/iluwatar/ErrorView.java @@ -0,0 +1,14 @@ +package com.iluwatar; + +/** + * + * View for errors. + * + */ +public class ErrorView implements View { + + @Override + public void display() { + System.out.println("Error 500"); + } +} diff --git a/front-controller/src/main/java/com/iluwatar/FrontController.java b/front-controller/src/main/java/com/iluwatar/FrontController.java index 26001228a..09e90f7ed 100644 --- a/front-controller/src/main/java/com/iluwatar/FrontController.java +++ b/front-controller/src/main/java/com/iluwatar/FrontController.java @@ -1,5 +1,11 @@ package com.iluwatar; +/** + * + * FrontController is the handler class that takes in all the requests and + * renders the correct response. + * + */ public class FrontController { public void handleRequest(String request) { diff --git a/front-controller/src/main/java/com/iluwatar/UnknownCommand.java b/front-controller/src/main/java/com/iluwatar/UnknownCommand.java index ecdc46e71..b3186a514 100644 --- a/front-controller/src/main/java/com/iluwatar/UnknownCommand.java +++ b/front-controller/src/main/java/com/iluwatar/UnknownCommand.java @@ -1,9 +1,14 @@ package com.iluwatar; +/** + * + * Default command in case the mapping is not successful. + * + */ public class UnknownCommand implements Command { @Override public void process() { - System.out.println("Error 500"); + new ErrorView().display(); } } diff --git a/front-controller/src/main/java/com/iluwatar/View.java b/front-controller/src/main/java/com/iluwatar/View.java index 7ff7a6888..6061ed0e5 100644 --- a/front-controller/src/main/java/com/iluwatar/View.java +++ b/front-controller/src/main/java/com/iluwatar/View.java @@ -1,5 +1,10 @@ package com.iluwatar; +/** + * + * Views are the representations rendered for the user. + * + */ public interface View { void display();