001/*
002 * Copyright (c) 2013 Nu Echo Inc. All rights reserved.
003 */
004
005package com.nuecho.rivr.core.dialogue;
006
007import com.nuecho.rivr.core.channel.*;
008
009/**
010 * Creates dialogues.
011 * 
012 * @param <F> type of {@link FirstTurn}
013 * @param <L> type of {@link LastTurn}
014 * @param <O> type of {@link OutputTurn}
015 * @param <I> type of {@link InputTurn}
016 * @param <C> type of {@link DialogueContext}
017 * @author Nu Echo Inc.
018 */
019public interface DialogueFactory<I extends InputTurn, O extends OutputTurn, F extends FirstTurn, L extends LastTurn, C extends DialogueContext<I, O>> {
020
021    Dialogue<I, O, F, L, C> create(DialogueInitializationInfo<I, O, C> dialogueInitializationInfo)
022            throws DialogueFactoryException;
023}