001/*
002 * Copyright (c) 2013 Nu Echo Inc. All rights reserved.
003 */
004
005package com.nuecho.rivr.core.servlet;
006
007import javax.servlet.http.*;
008
009import com.nuecho.rivr.core.channel.*;
010import com.nuecho.rivr.core.dialogue.*;
011
012/**
013 * Renders {@link OutputTurn} and {@link LastTurn} into
014 * {@link ServletResponseContent}
015 * 
016 * @author Nu Echo Inc.
017 */
018public interface StepRenderer<I extends InputTurn, O extends OutputTurn, L extends LastTurn, C extends DialogueContext<I, O>> {
019
020    ServletResponseContent createDocumentForOutputTurn(O outputTurn,
021                                                       HttpServletRequest request,
022                                                       HttpServletResponse response,
023                                                       C dialogueContext) throws StepRendererException;
024
025    ServletResponseContent createDocumentForLastTurn(L lastTurn,
026                                                     HttpServletRequest request,
027                                                     HttpServletResponse response,
028                                                     C dialogueContext) throws StepRendererException;
029
030}