Created
December 21, 2011 10:58
-
-
Save rafaelchagasb/1505612 to your computer and use it in GitHub Desktop.
Decorator - Exercício 4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Date; | |
public class Conta { | |
private String nomeTitular; | |
private double saldo; | |
private Date dataDeAbertura; | |
public Conta(String nomeTitular,double saldo,Date dataDeAbertura) { | |
this.nomeTitular = nomeTitular; | |
this.saldo = saldo; | |
this.dataDeAbertura = dataDeAbertura; | |
} | |
public String getNomeTitular() { | |
return nomeTitular; | |
} | |
public void setNomeTitular(String nomeTitular) { | |
this.nomeTitular = nomeTitular; | |
} | |
public double getSaldo() { | |
return saldo; | |
} | |
public void setSaldo(double saldo) { | |
this.saldo = saldo; | |
} | |
public Date getDataDeAbertura() { | |
return dataDeAbertura; | |
} | |
public void setDataDeAbertura(Date dataDeAbertura) { | |
this.dataDeAbertura = dataDeAbertura; | |
} | |
} | |
import java.util.List; | |
abstract class Filtro { | |
protected final Filtro outroFiltro; | |
public Filtro(Filtro outroFiltro){ | |
this.outroFiltro = outroFiltro; | |
} | |
public Filtro() | |
{ | |
this.outroFiltro = null; | |
} | |
public abstract List<Conta> filtra(List<Conta> contas); | |
protected List<Conta> filtrarOutro(List<Conta> contas){ | |
if (outroFiltro == null) return null; | |
return outroFiltro.filtra(contas); | |
} | |
} | |
import java.util.ArrayList; | |
import java.util.Date; | |
import java.util.List; | |
public class FiltroDataDeAberturaMesCorrente extends Filtro{ | |
public FiltroDataDeAberturaMesCorrente(Filtro outroFiltro) | |
{ | |
super(outroFiltro); | |
} | |
public FiltroDataDeAberturaMesCorrente() | |
{} | |
@Override | |
public List<Conta> filtra(List<Conta> contas) { | |
List<Conta> lista = new ArrayList<Conta>(); | |
for(Conta conta:contas) | |
{ | |
if(conta.getDataDeAbertura().getMonth() == new Date().getMonth() && conta.getDataDeAbertura().getYear() == new Date().getYear()) | |
lista.add(conta); | |
} | |
lista.addAll(filtrarOutro(contas)); | |
return lista; | |
} | |
} | |
import java.util.ArrayList; | |
import java.util.List; | |
public class FiltroMaiorQueQuinhentos extends Filtro{ | |
public FiltroMaiorQueQuinhentos(Filtro outroFiltro) | |
{ | |
super(outroFiltro); | |
} | |
public FiltroMaiorQueQuinhentos() | |
{} | |
@Override | |
public List<Conta> filtra(List<Conta> contas) { | |
List<Conta> lista = new ArrayList<Conta>(); | |
for(Conta conta:contas) | |
{ | |
if(conta.getSaldo()>500000) | |
lista.add(conta); | |
} | |
lista.addAll(filtrarOutro(contas)); | |
return lista; | |
} | |
} | |
import java.util.ArrayList; | |
import java.util.List; | |
public class FiltroValorMenorQueCem extends Filtro{ | |
public FiltroValorMenorQueCem(Filtro outroFiltro) | |
{ | |
super(outroFiltro); | |
} | |
public FiltroValorMenorQueCem() | |
{} | |
@Override | |
public List<Conta> filtra(List<Conta> contas) { | |
List<Conta> lista = new ArrayList<Conta>(); | |
for(Conta conta:contas) | |
{ | |
if(conta.getSaldo()<100) | |
lista.add(conta); | |
} | |
lista.addAll(filtrarOutro(contas)); | |
return lista; | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment