1 /*
2 * ProgramacaoAmostragemSimples.java
3 *
4 * Created on 28 de Março de 2007, 15:41
5 *
6 * To change this template, choose Tools | Template Manager
7 * and open the template in the editor.
8 */
9
10 package tempcontroller.base;
11
12 import java.io.File;
13 import java.util.ArrayList;
14 import java.util.List;
15 import org.apache.commons.lang.builder.HashCodeBuilder;
16
17 /**
18 * Implementação simples da interface IProgramacaoAmostragem.
19 */
20 public class ProgramacaoAmostragemSimples implements IProgramacaoAmostragem {
21
22 /**
23 * Lista de amostragens desta programação.
24 */
25 private List<IAmostragem> listaAmostragens;
26
27 /**
28 * Diretório de gravação dos espectros desta programação.
29 */
30 private File diretorioGravacao;
31
32 /**
33 * Adiciona nova amostragem à programação.
34 * @param amostragem Nova amostragem à programação.
35 */
36 public void addAmostragem(final IAmostragem amostragem) {
37 getAmostragens().add(amostragem);
38 }
39
40 /**
41 * Obtém a lista de amostragens desta programação.
42 * @return Lista de amostragens desta programção.
43 */
44 public List<IAmostragem> getAmostragens() {
45 if (listaAmostragens == null) {
46 listaAmostragens = (List<IAmostragem>) new ArrayList<IAmostragem>();
47 }
48
49 return listaAmostragens;
50 }
51
52 /**
53 * Define a lista de amostragens desta programação.
54 * @param amostragens Lista de amostragens desta programação.
55 */
56 public void setAmostragens(final List<IAmostragem> amostragens) {
57 listaAmostragens = amostragens;
58 }
59
60 /**
61 * Obtém o diretório de gravação dos espectros desta programação.
62 * @return O diretório de gravação dos espectros desta programação.
63 */
64 public File getDiretorioGravacao() {
65 return diretorioGravacao;
66 }
67
68 /**
69 * Define o diretório de gravação dos espectros desta programação.
70 * @param diretorio Diretório de gravação de espectros desta
71 * programação.
72 */
73 public void setDiretorioGravacao(final File diretorio) {
74 diretorioGravacao = diretorio;
75 }
76
77 /**
78 * Compara esta programação com o objeto do parâmetro.
79 * @param obj Objeto que será comparado.
80 * @return <code>true</code> apenas se o objeto passado implementa
81 * a interface IProgramcaoAmostragem, e este tem as mesmas amostragens
82 * e o mesmo diretório de gravação.
83 */
84 public boolean equals(final Object obj) {
85 boolean toReturn = false;
86
87 if (obj instanceof IProgramacaoAmostragem) {
88 IProgramacaoAmostragem prog = (IProgramacaoAmostragem) obj;
89 toReturn = (this.getDiretorioGravacao()
90 .equals(prog.getDiretorioGravacao()))
91 && (this.getAmostragens().equals(prog.getAmostragens()));
92 }
93
94 return toReturn;
95 }
96
97 /**
98 * Calcula o código Hash para esta programação, de acordo
99 * com a lista de amostragens e diretório de gravação.
100 * @return Código hash calculado.
101 */
102 public int hashCode() {
103 HashCodeBuilder builder = new HashCodeBuilder();
104 return builder.append(listaAmostragens)
105 .append(diretorioGravacao).toHashCode();
106 }
107 }