1<?php
2
3/* Copyright (c) 2018 Nils Haagen <nils.haagen@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4
5namespace ILIAS\UI\Component\Listing\Workflow;
6
7/**
8 * This describes a Workflow.
9 */
10interface Workflow extends \ILIAS\UI\Component\Component
11{
12
13    /**
14     * Get the title of this workflow.
15     *
16     * @return 	string
17     */
18    public function getTitle();
19
20    /**
21     * The step at this position is set to active.
22     *
23     * @param 	int 	$active
24     * @throws InvalidArgumentException 	if $active exceeds the amount of steps
25     * @return 	Workflow
26     */
27    public function withActive($active);
28
29    /**
30     * This is the index of the active step.
31     *
32     * @return 	int
33     */
34    public function getActive();
35
36    /**
37     * Get the steps of this workflow.
38     *
39     * @return Step[]
40     */
41    public function getSteps();
42}
43