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
7use ILIAS\UI\Component\Component;
8
9/**
10 * This describes a Workflow Step
11 */
12interface Step extends Component
13{
14    const AVAILABLE = 1;
15    const NOT_AVAILABLE = 2;
16    const NOT_ANYMORE = 3;
17    const ACTIVE = 4;
18
19    const NOT_STARTED = 1;
20    const IN_PROGRESS = 2;
21    const SUCCESSFULLY = 3;
22    const UNSUCCESSFULLY = 4;
23
24    /**
25     * Get the label of this step.
26     *
27     * @return 	string
28     */
29    public function getLabel();
30
31    /**
32     * Get the description of this step.
33     *
34     * @return 	string
35     */
36    public function getDescription();
37
38
39    /**
40     * Get the availabilty status of this step.
41     *
42     * @return 	mixed
43     */
44    public function getAvailability();
45
46    /**
47     * Get a step like this with completion status according to parameter.
48     *
49     * @param 	mixed 	$status
50     * @return 	Step
51     */
52    public function withAvailability($status);
53
54    /**
55     * Get the status of this step.
56     *
57     * @return 	mixed
58     */
59    public function getStatus();
60
61    /**
62     * Get a step like this with completion status according to parameter.
63     *
64     * @param 	mixed 	$status
65     * @return 	Step
66     */
67    public function withStatus($status);
68
69    /**
70     * Get the action of this Step.
71     *
72     * @return	null | Signal | string
73     */
74    public function getAction();
75}
76