View Javadoc

1   /*
2    * AmostragemSimples.java
3    *
4    * Created on 28 de Março de 2007, 15:47
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 org.apache.commons.lang.builder.HashCodeBuilder;
13  
14  /**
15   * Implementação simples da interface IAmostragem.
16   */
17  public class AmostragemSimples implements IAmostragem {
18      /**
19       * Duração da amostragem.
20       */
21      private long duracao;
22      
23      /**
24       * Nome da amostragem.
25       */
26      private String nome;
27      
28      /**
29       * Temperatura da amostragem.
30       */
31      private double temperatura;
32  
33      /**
34       * Obtém a duração, em milisegundos, da amostragem.
35       * @return Duraçãom, em milisengundos, da amostragem.
36       */
37      public long getDuracao() {
38          return duracao;
39      }
40  
41      /**
42       * Define a duraçãom, em milisegundos, da amostragem.
43       * @param tempo Duração, em milisegundos, da amostragem.
44       */
45      public void setDuracao(final long tempo) {
46          duracao = tempo;
47      }
48  
49      /**
50       * Obtém a temperatura na qual a amostragem deve ser feita.
51       * @return Temperatura na qual a amostragem deve ser feita.
52       */
53      public double getTemperatura() {
54          return temperatura;
55      }
56  
57      /**
58       * Define a temperatura na qual a amostragem deve ser feita.
59       * @param temp Temperatura na qual a amostragem deve ser feita.
60       */
61      public void setTemperatura(final double temp) {
62          temperatura = temp;
63      }
64  
65      /**
66       * Obtém o nome desta amostragem.
67       * @return Nome da amostragem.
68       */
69      public String getNome() {
70          String toReturn = "";
71          if (nome != null) {
72              toReturn = nome;
73          }
74          
75          return toReturn;
76      }
77  
78      /**
79       * Define o nome desta amostragem.
80       * @param nm Nome desta amostragem.
81       */
82      public void setNome(final String nm) {
83          if (nm != null) {
84              nome = nm;
85          }
86      }
87  
88      /**
89       * Compara um objeto com esta amostragem.
90       * @param obj Objeto que será comparado.
91       * @return <code>true</code> apenas se o objeto
92       * passado implementar a interface IAmostragem, e
93       * seus valores forem iguais a esta amostragem.
94       */
95      public boolean equals(final Object obj) {
96          boolean toReturn = false;
97          
98          if (obj instanceof IAmostragem) {
99              IAmostragem amostragem = (IAmostragem) obj;
100             
101             toReturn = this.getNome().equals(amostragem.getNome()) 
102             && (this.getTemperatura() == amostragem.getTemperatura()) 
103             && (this.getDuracao() == amostragem.getDuracao());
104         }
105         
106         return toReturn;
107     }
108     
109     /**
110      * Calcula o código hash deste objeto, de acordo com os valores
111      * desta amostragem.
112      * @return Código hash calculado.
113      */
114     public int hashCode() {
115         HashCodeBuilder builder = new HashCodeBuilder();
116         return builder.append(nome).append(temperatura)
117         .append(duracao).toHashCode();
118     }
119     
120     /**
121      * Clona este objeto
122      * @return Esta amostragem clonada
123      */
124     public Object clone() {
125         Object toReturn;
126         try {
127             toReturn =  super.clone();
128         } catch (CloneNotSupportedException ex) {
129             toReturn = null;
130         }
131         
132         return toReturn;
133     }
134 
135     /**
136      * Copia os valores das propriedades de outra amostragem.
137      * @param origem Amostragem a qual os valores serão copiados.
138      */
139     public void copyFrom(IAmostragem origem) {
140         setNome(origem.getNome());
141         setDuracao(origem.getDuracao());
142         setTemperatura(origem.getTemperatura());
143     }
144 }