diff options
Diffstat (limited to 'pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java')
-rw-r--r-- | pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java new file mode 100644 index 00000000..1e248808 --- /dev/null +++ b/pdf-as-web-status/src/main/java/at/gv/egiz/status/content/ResponseBuilder.java @@ -0,0 +1,54 @@ +package at.gv.egiz.status.content; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import at.gv.egiz.status.TestResult; + +public class ResponseBuilder { + + public enum ContentType { + HTML("HTML"), JSON("JSON"), XML("XML"); + + private final String name; + + private ContentType(String s) { + name = s; + } + + public boolean equalsName(String otherName){ + return (otherName == null)? false:name.equals(otherName); + } + + public String toString(){ + return name; + } + } + + private ContentGenerator defaultGenerator; + + private Map<String, ContentGenerator> contentBuilder = new HashMap<String, ContentGenerator>(); + + public ResponseBuilder() { + defaultGenerator = new HtmlGenerator(); + contentBuilder.put(ContentType.HTML.toString(), defaultGenerator); + contentBuilder.put(ContentType.JSON.toString(), new JsonGenerator()); + contentBuilder.put(ContentType.XML.toString(), new XMLGenerator()); + } + + public void generate(HttpServletRequest request, + HttpServletResponse response, Map<String, TestResult> results, + boolean details, String content) throws IOException { + + if(contentBuilder.containsKey(content)) { + contentBuilder.get(content).generate(request, response, results, details); + } else { + defaultGenerator.generate(request, response, results, details); + } + + } +} |