terça-feira, 9 de junho de 2009

Receita de Vatapá Baiano em Java

Pegando um gancho na receita da Família de Obi-Allan Kenobi, tentei recriar esta em Java, como o mesmo havia dito, ficou um pouquinho grande, mas em relação ao entendimento acho que consegui manter o nível necessário para o propósito desse blog, tentei seguir as explicações originais da receita e construir a implementação desse delicioso prato típico, o Vatapá.

public class Pao {
private Double quantidade;
private Double dureza;

public Pao(Double quantidade, Double dureza) {
this.quantidade = quantidade;
this.dureza = dureza;
System.out.println(this.quantidade + " pães");
}

public Double getDureza() {
return dureza;
}

public void setDureza(Double dureza) {
this.dureza = dureza;
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

public Pao getPapaDePaoMole(){
System.out.println("amolecendo o pão com leite de côco");
LeiteCoco leiteCoco = new LeiteCoco(this.quantidade);
leiteCoco.amolecerPao(this);
return this;
}
}

public class LeiteCoco {
private Double quantidade;

public LeiteCoco(Double quantidadePao) {
this.quantidade = quantidadePao/5;
System.out.println(this.quantidade + " litro(s) de leite de côco");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

public void amolecerPao(Pao pao){
Double dureza = pao.getDureza();
System.out.println("o pão já está quase amolecido...");
while(dureza > 0.2){
dureza -= 0.25;
pao.setDureza(dureza);
}
System.out.println("o pão já está pronto, mais mole que isso vai virar sopa hehehe");
}
}

public class Cebola {
private Double quantidade;
private Double partes;

public Cebola(Double quantidadePao) {
this.quantidade = (quantidadePao*2)/5;
this.partes = quantidade;
System.out.println(this.quantidade + " Cebolas");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

private void cortarCebola(){
System.out.println("Cortando as Cebolas");
while((this.partes/this.quantidade) < 25){
this.partes *= 2;
}
System.out.println("Cebolas prontas e bem cortadas");
}

public Cebola getCebolaCortada(){
cortarCebola();
return this;
}
}

public class Alho {
private Double quantidade;
private Double partes;

public Alho(Double quantidadePao) {
this.quantidade = (quantidadePao*6)/5;
this.partes = quantidade;
System.out.println(this.quantidade + " Alhos");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

private void cortarAlho(){
System.out.println("Cortando os Alhos");
while((this.partes/this.quantidade) < 4){
this.partes *= 2;
}
System.out.println("Alhos prontos e bem cortados");
}

public Alho getAlhoCortado(){
cortarAlho();
return this;
}
}

public class CamaraoSeco {
private Double quantidade;
private Boolean descascado = false;

public CamaraoSeco(Double quantidadePao) {
this.quantidade = (quantidadePao*250)/5;
System.out.println(this.quantidade + " Gramas de Camarão seco");
}

public Double getQuantidade() {
return quantidade;
}

public void ajustarQuantidadeProporcional() {
this.quantidade = (this.quantidade*100)/250;
System.out.println("dessa segunda porção precisaremos apernas de " +this.quantidade + " Gramas para ser adicionados depois");
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

public Boolean getDescascado() {
return descascado;
}

public void setDescascado(Boolean descascado) {
this.descascado = descascado;
}

public void descascarCamaraoSeco(){
System.out.println("Descascando o Camarão seco");
this.descascado = true;
System.out.println("Camarão seco descascado e pronto para usar");
}
}

public class Amendoim {
private Double quantidade;
private Boolean torrado = false;

public Amendoim(Double quantidadePao) {
this.quantidade = (quantidadePao*250)/5;
System.out.println(this.quantidade + " Gramas de Amendoim");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

public Boolean getTorrado() {
return torrado;
}

public void setTorrado(Boolean torrado) {
this.torrado = torrado;
}

public void torrarAmendoim(){
System.out.println("Torrando o Amendoim");
this.torrado = true;
System.out.println("Amendoim torrado e pronto para usar");
}
}

public class CastanhaCaju {
private Double quantidade;
private Boolean torrado = false;

public CastanhaCaju(Double quantidadePao) {
this.quantidade = (quantidadePao*250)/5;
System.out.println(this.quantidade + " Gramas de Castanha de Caju");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

public Boolean getTorrado() {
return torrado;
}

public void setTorrado(Boolean torrado) {
this.torrado = torrado;
}

public void torrarCastanhaCaju(){
System.out.println("Torrando a Castanha do Caju");
this.torrado = true;
System.out.println("Castanha do Caju torrada e pronta para usar");
}
}

public class AzeiteDende {
private Double quantidade;
public Double temperatura = 16.0;
public Boolean muitoQuente = false;

public AzeiteDende(Double quantidadePao) {
this.quantidade = (quantidadePao*1.5)/5;
System.out.println(this.quantidade + " litro(s) de Azeite de Dendê");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}
}

public class Gengibre {
private Double quantidade;
private Boolean ralado = false;

public Gengibre(Double quantidade) {
this.quantidade = quantidade;
System.out.println(this.quantidade + " Gramas de Gengibre (esta medida é a gosto)");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}

public void ralarGengibre(){
System.out.println("Ralando o Gengibre");
this.ralado = true;
System.out.println("Gengibre ralado e pronto para usar");
}
}

public class Sal {
private Double quantidade;

public Sal(Double quantidade) {
this.quantidade = quantidade;
System.out.println(this.quantidade + " Gramas de Sal (esta medida é a gosto)");
}

public Double getQuantidade() {
return quantidade;
}

public void setQuantidade(Double quantidade) {
this.quantidade = quantidade;
}
}

public class Liquidificador {

public Liquidificador() {
System.out.println("Ligando o Liquidificador...");
}

public Massa baterMassa(Pao pao, Cebola cebola, Alho alho, CamaraoSeco camaraoSeco, Amendoim amendoim, CastanhaCaju caju, Gengibre gengibre, Sal sal){
System.out.println("batendo a massa...");
return new Massa(pao, cebola, alho, camaraoSeco, amendoim, caju, gengibre, sal);
}
}

public class Massa {
String situacaoDaMassa = "";
Double ponto = 2.0;

public Massa(Pao pao, Cebola cebola, Alho alho, CamaraoSeco camaraoSeco, Amendoim amendoim, CastanhaCaju caju, Gengibre gengibre, Sal sal) {
this.situacaoDaMassa = "Massa em fase de preparação!!!";
}

public String getSituacaoDaMassa() {
return situacaoDaMassa;
}

public void setSituacaoDaMassa(String situacaoDaMassa) {
this.situacaoDaMassa = situacaoDaMassa;
}

public Double getPonto() {
return ponto;
}

public void setPonto(Double ponto) {
this.ponto = ponto;
}
}

public class PanelaGrande {

public PanelaGrande() {
System.out.println("Colaca a panela no fogo");
}

public void esquentarAzeiteDende(AzeiteDende azeiteDende){
System.out.println("Esquentando o Azeite de Dendê");
while(!azeiteDende.muitoQuente){
if(azeiteDende.temperatura > 90){// heheh
azeiteDende.muitoQuente = true;
System.out.println("Azeite de Dendê ja está no ponto, agora joga a massa p dentro da panela hhehe... aos poucos é claro");
}
azeiteDende.temperatura += 2.5;
}
}

public void colocarMassaAosPoucos(Massa massa){
System.out.println("colocando a massa, aos poucos, e mexendo a gororoba que formou hehehehe");
}

public void colocarCamaraoDescascado(CamaraoSeco camaraoSeco){
System.out.println("agora adicionado mais "+camaraoSeco.getQuantidade()+" de camarao seco descascado... deve tar um cheiro só kkkkkkkkkkkkkkkkkkk");
}

public void etapasFinais(Massa massa){
System.out.println("Continue mexendo até que a mistura solte, sem dificuldades, da panela.");
Double ponto = massa.getPonto();
while(ponto < 10){
ponto += 1;
massa.setPonto(ponto);
if(ponto == 8){
System.out.println("Já está quase no ponto, mexa só mais um pouquinho.");
}
}
massa.setSituacaoDaMassa("vatapa Pronto");
System.out.println(massa.getSituacaoDaMassa());
}
}

public class Vatapa {
public static void main(String[] args) {
System.out.println("\n\n iniciando o preparo do vatapá\n\n");
Pao pao = new Pao(5.0,2.3);
pao = pao.getPapaDePaoMole();
Cebola cebola = new Cebola(pao.getQuantidade());
Alho alho = new Alho(pao.getQuantidade());
CamaraoSeco camaraoSeco = new CamaraoSeco(pao.getQuantidade());
CamaraoSeco camaraoSecoDescascado = new CamaraoSeco(pao.getQuantidade());
camaraoSecoDescascado.ajustarQuantidadeProporcional();
camaraoSecoDescascado.descascarCamaraoSeco();
Amendoim amendoim = new Amendoim(pao.getQuantidade());
amendoim.torrarAmendoim();
CastanhaCaju castanhaCaju = new CastanhaCaju(pao.getQuantidade());
castanhaCaju.torrarCastanhaCaju();
AzeiteDende azeiteDende = new AzeiteDende(pao.getQuantidade());
Gengibre gengibre = new Gengibre(5.0);
gengibre.ralarGengibre();
Sal sal = new Sal(5.0);

Liquidificador liquidificador = new Liquidificador();
Massa massa = liquidificador.baterMassa(pao, cebola, alho, camaraoSeco, amendoim, castanhaCaju, gengibre, sal);

PanelaGrande panelaGrande = new PanelaGrande();
panelaGrande.esquentarAzeiteDende(azeiteDende);

panelaGrande.colocarMassaAosPoucos(massa);
panelaGrande.colocarCamaraoDescascado(camaraoSecoDescascado);

panelaGrande.etapasFinais(massa);

}
}

Allan, espero ter mantido a mesma qualidade da receita de sua familia e aproveitando o embalo, só falta agora vc convidar a galera pra esperimentar este prato, pois não tenho dúvida que todos ficamos com agua na boca so em ler esta receita hehehe...

"editado"
...quem enxergar alguma melhoria para o código acho interessante a postagem da mesma, o blog agradece.

download do código fonte

2 comentários:

  1. Sempre vale um questionamento:

    enchergar ou enxergar?

    e

    agradece ou agrade-se?

    ResponderExcluir
  2. O código tá imenso... Acho que vale uma postagem sobre a armadilha dos gets e sets :D

    ResponderExcluir