Classes in this File | Line Coverage | Branch Coverage | Complexity | |||||||
ITimer |
|
| 0.0;0 |
1 | package tempcontroller.base; |
|
2 | ||
3 | /** |
|
4 | * Abstração de um Timer simples, com contagem de tempo decrescente |
|
5 | * e geração de eventos de 'tick' periódicos. |
|
6 | */ |
|
7 | public interface ITimer { |
|
8 | ||
9 | /** |
|
10 | * Estados do timer. |
|
11 | */ |
|
12 | 5 | public enum Estado { |
13 | /** |
|
14 | * Estado em que o timer não foi iniciado. |
|
15 | */ |
|
16 | 1 | NAO_INICIADO, |
17 | /** |
|
18 | * Contando o tempo. |
|
19 | */ |
|
20 | 1 | CRONOMETRANDO, |
21 | /** |
|
22 | * Pausado. |
|
23 | */ |
|
24 | 1 | PAUSADO, |
25 | /** |
|
26 | * Tempo total encerrado. Fim da contagem do tempo. |
|
27 | */ |
|
28 | 1 | TERMINADO |
29 | } |
|
30 | ||
31 | /** |
|
32 | * Define o tempo total do timer. Este é o tempo que o timer |
|
33 | * irá contar até gerar uma única vez o evento de 'tempoTotalTerminado'. |
|
34 | * @param tempTotal Tempo total de contagem do tempo. |
|
35 | */ |
|
36 | void setTempoTotal(long tempTotal); |
|
37 | ||
38 | /** |
|
39 | * Define o tempo de eventos periódicos de 'tick'. O timer gerará eventos |
|
40 | * de tick com período 'tempo'. O primeiro evento será a critério |
|
41 | * do próprio timer, podem ser a qualquer momento a partir do |
|
42 | * 'start' até uma espera máxima do próprio tamanho do tick. |
|
43 | * @param tempo Quantidade de tempo do período do tick. |
|
44 | */ |
|
45 | void setTick(long tempo); |
|
46 | ||
47 | /** |
|
48 | * Obtém o período do tick. |
|
49 | * @return Período do tick. |
|
50 | */ |
|
51 | long getTick(); |
|
52 | ||
53 | /** |
|
54 | * Adiciona ouvintes do timer. Este ouvinte |
|
55 | * ouvirá o evento de 'tempoTotalTerminado' e também |
|
56 | * de ticks do relógio. |
|
57 | * @param ouvinte Ouvinte do timer. |
|
58 | */ |
|
59 | void addOuvinteTimer(IOuvinteTimer ouvinte); |
|
60 | ||
61 | /** |
|
62 | * Remove um ouvinte ao conjunto de ouvintes do timer. |
|
63 | * @param ouvinte Ouvinte que não quer mais receber eventos deste |
|
64 | * timer. |
|
65 | */ |
|
66 | void removeOuvinteTimer(IOuvinteTimer ouvinte); |
|
67 | ||
68 | /** |
|
69 | * Inicia a contagem de tempo. |
|
70 | */ |
|
71 | void start(); |
|
72 | ||
73 | /** |
|
74 | * Termina a contagem de tempo, independente dela ter ou não |
|
75 | * alcançado o seu tempo total. |
|
76 | */ |
|
77 | void stop(); |
|
78 | ||
79 | /** |
|
80 | * Pausa a contagem de tempo. |
|
81 | */ |
|
82 | void pause(); |
|
83 | ||
84 | /** |
|
85 | * Retorna a contagem de tempo que foi pausada. |
|
86 | */ |
|
87 | void continua(); |
|
88 | ||
89 | /** |
|
90 | * Obtém o tempo decorrido. |
|
91 | * @return Tempo decorrido de acordo com a contagem deste timer. |
|
92 | */ |
|
93 | long getTempoDecorrido(); |
|
94 | ||
95 | /** |
|
96 | * Obtém o tempo total que a seu término encerra a contagem do tempo |
|
97 | * e também provoca o evento 'tempoTotalTerminado'. |
|
98 | * @return O tempo total deste timer. |
|
99 | */ |
|
100 | long getTempoTotal(); |
|
101 | ||
102 | /** |
|
103 | * Obtém o estado deste timer. |
|
104 | * @return O estado deste timer. |
|
105 | */ |
|
106 | Estado getEstado(); |
|
107 | } |