001/*
002 * Copyright (c) 2013 Nu Echo Inc. All rights reserved.
003 */
004
005package com.nuecho.rivr.core.dialogue;
006
007import org.slf4j.*;
008
009import com.nuecho.rivr.core.channel.*;
010
011/**
012 * Interface for dialogue context: an access to {@link DialogueChannel},
013 * {@link Logger} and dialogue ID. The {@link DialogueContext} is passed to the
014 * {@link Dialogue} in the {@link Dialogue#run(FirstTurn, DialogueContext)}
015 * method.
016 * 
017 * @param <O> type of {@link OutputTurn}
018 * @param <I> type of {@link InputTurn}
019 * @author Nu Echo Inc.
020 */
021public interface DialogueContext<I extends InputTurn, O extends OutputTurn> {
022
023    DialogueChannel<I, O> getDialogueChannel();
024
025    Logger getLogger();
026
027    String getDialogueId();
028}