Segue o código da classe Funcionario
, Gasto
e TesteImportador
:
package br.com.caelum.empresa.modelo;
import java.util.Calendar;
public class Funcionario {
private String nome;
private int matricula;
private Calendar dataNascimento;
public Funcionario(String nome, int matricula, Calendar dataNascimento) {
this.nome = nome;
this.matricula = matricula;
this.dataNascimento = dataNascimento;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((dataNascimento == null) ? 0 : dataNascimento.hashCode());
result = prime * result + matricula;
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Funcionario other = (Funcionario) obj;
if (dataNascimento == null) {
if (other.dataNascimento != null)
return false;
} else if (!dataNascimento.equals(other.dataNascimento))
return false;
if (matricula != other.matricula)
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
return true;
}
@Override
public String toString() {
return "Funcionario: " + nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula = matricula;
}
public Calendar getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
}
package br.com.caelum.controle.modelo;
import java.util.Calendar;
import br.com.caelum.empresa.modelo.Funcionario;
public class Gasto {
private double valor;
private String tipo;
private Funcionario funcionario;
private Calendar data;
public Gasto(double valor, String tipo, Funcionario funcionario, Calendar data) {
super();
this.valor = valor;
this.tipo = tipo;
this.funcionario = funcionario;
this.data = data;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((data == null) ? 0 : data.hashCode());
result = prime * result + ((funcionario == null) ? 0 : funcionario.hashCode());
result = prime * result + ((tipo == null) ? 0 : tipo.hashCode());
long temp;
temp = Double.doubleToLongBits(valor);
result = prime * result + (int) (temp ^ (temp >>> 32));
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Gasto other = (Gasto) obj;
if (data == null) {
if (other.data != null)
return false;
} else if (!data.equals(other.data))
return false;
if (funcionario == null) {
if (other.funcionario != null)
return false;
} else if (!funcionario.equals(other.funcionario))
return false;
if (tipo == null) {
if (other.tipo != null)
return false;
} else if (!tipo.equals(other.tipo))
return false;
if (Double.doubleToLongBits(valor) != Double.doubleToLongBits(other.valor))
return false;
return true;
}
public double getValor() {
return valor;
}
public void setValor(double valor) {
this.valor = valor;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public Calendar getData() {
return data;
}
public void setData(Calendar data) {
this.data = data;
}
@Override
public String toString() {
return "Tipo de gasto: " + tipo + " " + funcionario;
}
}
package br.com.caelum.empresa;
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.util.Collection;
import br.com.caelum.empresa.leitor.ImportadorDeGastos;
import br.com.caelum.empresa.modelo.Gasto;
public class TesteImportador {
public static void main(String[] args) throws UnsupportedEncodingException,
ParseException {
String conteudo =
"CARTAO01012011000010000123Jose da Silva 22071983\r\n" +
"CARTAO01012011000010000123Jose da Silva 22071983\r\n" +
"CARTAO01012011000010000123Jose da Silva 22071983\r\n";
ImportadorDeGastos importador = new ImportadorDeGastos();
Collection<Gasto> list = importador.importa(new ByteArrayInputStream(
conteudo.getBytes("UTF-8")));
for (Gasto gasto : list) {
System.out.println(gasto);
}
}
}
E o resultado mostrado ao rodar a TesteImportador
:
CARTAO do Funcionario: Jose da SilvaCARTAO do Funcionario: Jose da SilvaCARTAO do Funcionario: Jose da Silva