1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4/**
5 * Interface ilAsqQuestionPresentation
6 *
7 * @author    Björn Heyser <info@bjoernheyser.de>
8 * @version    $Id$
9 *
10 * @package    Services/AssessmentQuestion
11 */
12interface ilAsqQuestionPresentation
13{
14    /**
15     * @param ilAsqQuestion $question
16     */
17    public function setQuestion(ilAsqQuestion $question);
18
19    /**
20     * @param ilAsqQuestionSolution $solution
21     * @return \ILIAS\UI\Component\Component
22     */
23    public function getQuestionPresentation(ilAsqQuestionSolution $solution) : \ILIAS\UI\Component\Component;
24
25    /**
26     * @param ilAsqQuestionSolution $solution
27     * @return \ILIAS\UI\Component\Component
28     */
29    public function getSolutionPresentation(ilAsqQuestionSolution $solution) : \ILIAS\UI\Component\Component;
30
31    /**
32     * @param ilAsqQuestionSolution $solution
33     * @return \ILIAS\UI\Component\Component
34     */
35    public function getGenericFeedbackOutput(ilAsqQuestionSolution $solution) : \ILIAS\UI\Component\Component;
36
37    /**
38     * @param ilAsqQuestionSolution $solution
39     * @return \ILIAS\UI\Component\Component
40     */
41    public function getSpecificFeedbackOutput(ilAsqQuestionSolution $solution) : \ILIAS\UI\Component\Component;
42
43    /**
44     * @return bool
45     */
46    public function hasInlineFeedback() : bool;
47
48    /**
49     * @return bool
50     */
51    public function isAutosaveable() : bool;
52
53    /**
54     * @param ilAsqQuestionNavigationAware
55     */
56    public function setQuestionNavigation(ilAsqQuestionNavigationAware $questionNavigationAware);
57}
58