-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIndividual.java
More file actions
150 lines (133 loc) · 4.11 KB
/
Individual.java
File metadata and controls
150 lines (133 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
/**
* Subclasse que representa a entidade individual
*
* @author GC-JRI-RV
* @version 15/04/2018
*/
import java.util.ArrayList;
import java.util.HashMap;
public class Individual extends Entidade{
/** Numero do coeficiente fiscal */
private double coeficienteFiscal;
/** Map com atividades e valor deduzido para cada */
private HashMap<String, Double> codigosAtividades;
/** Posição do respetivo Agregado na lista de Agregados da Plataforma */
private int indice;
/**
* Construtor por omissão
*/
public Individual(){
super();
this.coeficienteFiscal = 0.0;
this.codigosAtividades = new HashMap<String,Double>();
this.indice = 0;
}
/**
* Construtor por parametro
* @param nif
* @param email
* @param nome
* @param morada
* @param password
* @param listaFaturas
* @param coeficienteFiscal
* @param codigosAtividades
* @param indice
*/
public Individual(String nif, String email, String nome, String morada, String password, ArrayList<Integer> listaFaturas, double coeficienteFiscal, HashMap<String,Double> codigosAtividades, int indice){
super(nif, email, nome, morada, password, listaFaturas);
this.coeficienteFiscal = coeficienteFiscal;
this.codigosAtividades = new HashMap<String,Double>(codigosAtividades.size());
for(String s: codigosAtividades.keySet())
this.codigosAtividades.put(s, codigosAtividades.get(s));
this.indice = indice;
}
/**
* Contrutor por cópia
* @param c Individual orignal
*/
public Individual(Individual c){
super(c);
this.coeficienteFiscal = c.getCoeficienteFiscal();
this.codigosAtividades = c.getCodigosAtividades();
this.indice = c.getIndice();
}
/**
* Devolve o coeficiente fiscal
* @return coeficiente fiscal
*/
public double getCoeficienteFiscal(){
return this.coeficienteFiscal;
}
/**
* Devolve os codigos das atividades
* @return codigos das atividades
*/
public HashMap<String,Double> getCodigosAtividades(){
HashMap<String,Double> res = new HashMap<String,Double>(this.codigosAtividades.size());
for(String s: this.codigosAtividades.keySet())
res.put(s, this.codigosAtividades.get(s));
return res;
}
/**
* Devolve o indice
* @return indice
*/
public int getIndice(){
return this.indice;
}
/**
* Define o coeficiente fiscal
* @param coeficiente
*/
public void setCoeficienteFiscal(double coeficiente){
this.coeficienteFiscal = coeficiente;
}
/**
* Define os codigos de atividades
* @param codigos
*/
public void setCodigosAtividades(HashMap<String,Double> codigos){
HashMap<String,Double> res = new HashMap<String,Double>(codigos.size());
for(String s: codigos.keySet())
res.put(s, codigos.get(s));
this.codigosAtividades = res;
}
/** Define o indice
* @param indice
*/
public void setIndice(int indice){
this.indice = indice;
}
/**
* Atualiza a entrada de uma determinada atividade no codigosAtividades
* @param key chave
* @param value valor
*/
public void atualizaCodigosAtividades(String key, double valor){
this.codigosAtividades.put(key, valor);
}
/**
* Cria uma cópia do objecto
* @return cópia do objeto
*/
public Individual clone(){
return new Individual(this);
}
/**
* Verifica a igualdade dos objetos
* @param o
* @return true se houver igualdade, false se não houver igualdade
*/
public boolean equals(Object o){
if (this == o)
return true;
if ((o == null) || (this.getClass() != o.getClass()))
return false;
Individual i = (Individual) o;
return(super.equals(i) &&
this.coeficienteFiscal == i.getCoeficienteFiscal() &&
this.codigosAtividades.equals(i.getCodigosAtividades()) &&
this.indice == i.getIndice());
}
}