| 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 | } |