View Javadoc

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 }