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 }