Skip to content

Commit

Permalink
removendo logs da classe gerada a ajustes para tratamento de exceções
Browse files Browse the repository at this point in the history
  • Loading branch information
douglasbreda committed Nov 2, 2017
1 parent c9baae6 commit 96d2ab0
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 63 deletions.
2 changes: 2 additions & 0 deletions src/br/simulador/gerador/GeradorCodigo.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
*/
package br.simulador.gerador;

import br.simulador.plugin.biblioteca.erro.ErroExecucaoSimulador;
import br.univali.portugol.nucleo.SimuladorPrograma;
import br.univali.portugol.nucleo.asa.ASAPrograma;
import br.univali.portugol.nucleo.asa.ExcecaoVisitaASA;
Expand Down Expand Up @@ -137,6 +138,7 @@ public void gera(ASAPrograma asa, PrintWriter saida, String nomeClasseJava,
.geraImportacaoPara(ErroExecucaoBiblioteca.class)
.geraImportacaoPara(InvocationTargetException.class)
.geraImportacaoPara(List.class)
.geraImportacaoPara(ErroExecucaoSimulador.class)
.geraImportacaoBibliotecasIncluidas()
.geraNomeClasse(nomeClasseJava)
.geraChaveAberturaClasse()
Expand Down
31 changes: 7 additions & 24 deletions src/br/simulador/gerador/GeradorDeclaracaoMetodoSimulador.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,34 +54,22 @@ public void gera(NoDeclaracaoFuncao noFuncao, PrintWriter saida, VisitanteASA vi
saida.append("}");

saida.println();

//Método de configurar que chama o início
saida.append("@Override");
saida.println();
saida.append("public void configurar() throws ErroExecucao, InterruptedException{");
saida.println();
saida.append("System.out.println(\"Vai chamar o método de simular\");");
saida.append("Experimentos.simular();");
saida.println();
saida.append("System.out.println(\"Vai definir o programa atual\");");
saida.append("Experimentos.definir_programa_atual(this);");
saida.println();
saida.append("System.out.println(\"Vai definir a lista de agentes\");");
saida.append("setListaAgentes(Experimentos.retornar_lista_agentes());");
saida.append("if(listaAgentes == null)");
saida.println();
saida.append("System.out.println(\"A lista de agentes está nula\");");
saida.println();
saida.append("else");
saida.println();
saida.append("System.out.println(\"Número de agentes\" + listaAgentes.size());");
saida.println();
saida.append("System.out.println(\"Vai iniciar\");");
saida.append("inicio();");
saida.append("Experimentos.atualizar_tela();");
saida.println();
saida.append("}");


saida.append(identacao)
.append("@Override");
Expand All @@ -108,7 +96,6 @@ public void gera(NoDeclaracaoFuncao noFuncao, PrintWriter saida, VisitanteASA vi

if (metodoPrincipal) {
saida.append(identacao)
.append("System.out.println(\"Executando método simular.\");")
.append("Experimentos.definir_programa_execucao(true);")
.append(identacao)
.append(identacao)
Expand All @@ -123,15 +110,11 @@ public void gera(NoDeclaracaoFuncao noFuncao, PrintWriter saida, VisitanteASA vi
.append("{").append(identacao);

saida.println();
saida.append("System.out.println(\"Vai iniciar o laço.\");");
saida.append("int contador = 0;");
saida.append("setListaAgentes(Experimentos.retornar_lista_agentes());");
saida.append("for(Object agente : listaAgentes) {");
saida.println();
saida.append(identacao);
saida.append("System.out.println(\"Repetição: \" + ++contador);");
saida.append("System.out.println(\"Está dentro do laço.\");");
saida.append("System.out.println(\"Total de agentes: .\" + listaAgentes.size());");
saida.append("this.agenteAtual = agente;");
saida.append("Experimentos.definir_agente_atual(agente);");
}
Expand All @@ -149,12 +132,12 @@ public void gera(NoDeclaracaoFuncao noFuncao, PrintWriter saida, VisitanteASA vi
saida.println();

saida.append("} catch (ErroExecucaoBiblioteca ex) {\n")
.append("throw new ErroExecucaoSimulador(ex.getMensagem());")
.append("} catch (InterruptedException ex) {\n")
.append("throw new ErroExecucaoSimulador(ex.getMensagem());")
.append("} catch (ErroExecucao ex) {")
.append("throw new ErroExecucaoSimulador(ex.getMensagem());")
.append("}\n");
.append("Experimentos.adicionar_erro( new ErroExecucaoSimulador(ex.getMensagem()));")
.append("} catch (InterruptedException ex) {\n")
.append("Experimentos.adicionar_erro(new ErroExecucaoSimulador(ex.getMessage()));")
.append("} catch (ErroExecucao ex) {")
.append("Experimentos.adicionar_erro(new ErroExecucaoSimulador(ex.getMensagem()));")
.append("}\n");

}
saida.append(identacao).append("}").println(); // finaliza o escopo do método
Expand Down
1 change: 1 addition & 0 deletions src/br/simulador/gerenciadores/GerenciadorFuncao.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
package br.simulador.gerenciadores;

import br.simulador.gerador.GeradorCodigoJavaSimulador;
import br.simulador.plugin.biblioteca.Experimentos;
import br.simulador.plugin.biblioteca.erro.ErroExecucaoSimulador;
import br.univali.portugol.nucleo.ErroCompilacao;
import br.univali.portugol.nucleo.SimuladorPrograma;
Expand Down
98 changes: 59 additions & 39 deletions src/br/simulador/plugin/biblioteca/Experimentos.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,8 @@ public void simular() throws ErroExecucaoBiblioteca, InterruptedException, ErroE
descricao = "Permite a criação de variáveis para controle e uso durante a simulação.",
parametros
= {
@DocumentacaoParametro(nome = "nome_atributo", descricao = "Define a identificação do atributo."),
@DocumentacaoParametro(nome = "nome_atributo", descricao = "Define a identificação do atributo.")
,
@DocumentacaoParametro(nome = "valor_padrao", descricao = "Define um valor padrão para atribuir ao atributo criado")
},
retorno = "Sem retorno",
Expand Down Expand Up @@ -123,7 +124,6 @@ public double media(String nome_atributo) throws ErroExecucaoBiblioteca, Interru
// public void atualizarValorAtributo(String nome_atributo, String valor, int id_agente) throws ErroExecucaoBiblioteca, InterruptedException {
// GerenciadorExecucao.getInstance().definirValorAtributoPorAgente(nome_atributo, valor, id_agente);
// }

@DocumentacaoFuncao(
descricao = "Atualiza o valor a um determinado atributo.",
parametros
Expand All @@ -138,7 +138,7 @@ public double media(String nome_atributo) throws ErroExecucaoBiblioteca, Interru
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void atualizar_valor_atributo(String nome_atributo, String valor) throws ErroExecucaoBiblioteca, ErroExecucaoBiblioteca, InterruptedException{
public void atualizar_valor_atributo(String nome_atributo, String valor) throws ErroExecucaoBiblioteca, ErroExecucaoBiblioteca, InterruptedException {
GerenciadorExecucao.getInstance().getAgenteAtual().atualizarValorAtributo(nome_atributo, valor);
}

Expand Down Expand Up @@ -524,7 +524,6 @@ public void criar_interruptor(String nome, String titulo, boolean valor_padrao)
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
},
retorno = "Número de agentes"

)
public int agentes_com_cor(int cor) throws ErroExecucaoBiblioteca, InterruptedException {
int agentes_encontrados = GerenciadorExecucao.getInstance().agentesComCor(cor);
Expand Down Expand Up @@ -600,7 +599,7 @@ public int retornar_cor_retalho() throws ErroExecucaoBiblioteca, InterruptedExce
public int retornar_valor_max_bordaX() throws ErroExecucaoBiblioteca, InterruptedException {
return GerenciadorInterface.getInstance().retornarValorMaxBordaX();
}

@DocumentacaoFuncao(
descricao = "Retorna qual é o limite máximo da coordenada X do retalho.",
autores
Expand All @@ -622,7 +621,7 @@ public int retornar_valor_min_bordaX() throws ErroExecucaoBiblioteca, Interrupte
public int retornar_valor_max_bordaY() throws ErroExecucaoBiblioteca, InterruptedException {
return GerenciadorInterface.getInstance().retornarValorMaxBordaY();
}

@DocumentacaoFuncao(
descricao = "Retorna qual é o limite máximo da coordenada Y do retalho.",
autores
Expand All @@ -647,7 +646,7 @@ public boolean colidiu_com_parede_X() throws ErroExecucaoBiblioteca, Interrupted
int idRetalho = meu_retalho();
return GerenciadorInterface.getInstance().verificarRetalhoEhParedeX(idRetalho);
}

@DocumentacaoFuncao(
descricao = "Retorna se o agente colidiu com uma parede superior ou inferior (Para auxiliar no tratamento de colisões)",
autores
Expand All @@ -672,7 +671,6 @@ public boolean colidiu_com_parede_Y() throws ErroExecucaoBiblioteca, Interrupted
// public boolean colidiuBordaX() throws ErroExecucaoBiblioteca, InterruptedException {
// return GerenciadorExecucao.getInstance().getAgenteAtual().colidiuBordaX();
// }

// @DocumentacaoFuncao(
// descricao = "Retorna se o agente colidiu com alguma parede superior ou inferior",
// autores = {
Expand All @@ -682,7 +680,6 @@ public boolean colidiu_com_parede_Y() throws ErroExecucaoBiblioteca, Interrupted
// public boolean colidiuBordaY() throws ErroExecucaoBiblioteca, InterruptedException {
// return GerenciadorExecucao.getInstance().getAgenteAtual().colidiuBordaY();
// }

@DocumentacaoFuncao(
descricao = "Retorna o id atual do retalho em que o agente está posicionado",
autores = {
Expand Down Expand Up @@ -810,17 +807,17 @@ private boolean verificar_ambiente_inicializado() throws ErroExecucaoBiblioteca
}
return true;
}

@DocumentacaoFuncao(
descricao = "Inverte o sentido da direção do agente (para facilitar os movimentos)",
autores = {
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void inverter_sentido() throws ErroExecucaoBiblioteca, InterruptedException{
public void inverter_sentido() throws ErroExecucaoBiblioteca, InterruptedException {
GerenciadorExecucao.getInstance().getAgenteAtual().inverterSentido();
}

@DocumentacaoFuncao(
descricao = "Retorna o valor atual de um slider",
autores = {
Expand All @@ -830,10 +827,10 @@ public void inverter_sentido() throws ErroExecucaoBiblioteca, InterruptedExcepti
@DocumentacaoParametro(nome = "nome_slider", descricao = "Nome do componente utilizado para encontrá-lo entre os componentes")
}
)
public double retornar_valor_atual_slider(String nome_slider) throws ErroExecucaoBiblioteca, InterruptedException{
public double retornar_valor_atual_slider(String nome_slider) throws ErroExecucaoBiblioteca, InterruptedException {
return GerenciadorComponentes.buscarValorAtualSlider(nome_slider);
}

@DocumentacaoFuncao(
descricao = "Retorna o valor atual de um interruptor",
autores = {
Expand All @@ -843,10 +840,10 @@ public double retornar_valor_atual_slider(String nome_slider) throws ErroExecuca
@DocumentacaoParametro(nome = "nome_interruptor", descricao = "Nome do componente utilizado para encontrá-lo entre os componentes")
}
)
public boolean retornar_valor_atual_interruptor(String nome_interruptor) throws ErroExecucaoBiblioteca, InterruptedException{
public boolean retornar_valor_atual_interruptor(String nome_interruptor) throws ErroExecucaoBiblioteca, InterruptedException {
return GerenciadorComponentes.buscarValorAtualInterruptor(nome_interruptor);
}

@DocumentacaoFuncao(
descricao = "Define a cor apenas da borda esquerda da simulação",
parametros = {
Expand All @@ -856,10 +853,10 @@ public boolean retornar_valor_atual_interruptor(String nome_interruptor) throws
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void definir_borda_esquerda(int cor) throws ErroExecucaoBiblioteca, InterruptedException{
public void definir_borda_esquerda(int cor) throws ErroExecucaoBiblioteca, InterruptedException {
GerenciadorInterface.getInstance().definirBordaEsquerda(cor);
}

@DocumentacaoFuncao(
descricao = "Define a cor apenas da borda direita da simulação",
parametros = {
Expand All @@ -869,10 +866,10 @@ public void definir_borda_esquerda(int cor) throws ErroExecucaoBiblioteca, Inter
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void definir_borda_direita(int cor) throws ErroExecucaoBiblioteca, InterruptedException{
public void definir_borda_direita(int cor) throws ErroExecucaoBiblioteca, InterruptedException {
GerenciadorInterface.getInstance().definirBordaDireita(cor);
}

@DocumentacaoFuncao(
descricao = "Define a cor apenas da borda inferior da simulação",
parametros = {
Expand All @@ -882,10 +879,10 @@ public void definir_borda_direita(int cor) throws ErroExecucaoBiblioteca, Interr
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void definir_borda_inferior(int cor) throws ErroExecucaoBiblioteca, InterruptedException{
public void definir_borda_inferior(int cor) throws ErroExecucaoBiblioteca, InterruptedException {
GerenciadorInterface.getInstance().definirBordaInferior(cor);
}

@DocumentacaoFuncao(
descricao = "Define a cor apenas da borda superior da simulação",
parametros = {
Expand All @@ -895,65 +892,65 @@ public void definir_borda_inferior(int cor) throws ErroExecucaoBiblioteca, Inter
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void definir_borda_superior(int cor) throws ErroExecucaoBiblioteca, InterruptedException{
public void definir_borda_superior(int cor) throws ErroExecucaoBiblioteca, InterruptedException {
GerenciadorInterface.getInstance().definirBordaSuperior(cor);
}

@DocumentacaoFuncao(
descricao = "Verifica se o agente colidiu com a parede esquerda",
autores = {
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public boolean colidiu_com_parede_esquerda() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao{
public boolean colidiu_com_parede_esquerda() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao {
int idRetalho = meu_retalho();
return GerenciadorInterface.getInstance().verificarColidiuParedeEsquerda(idRetalho);
}

@DocumentacaoFuncao(
descricao = "Verifica se o agente colidiu com a parede direita",
autores = {
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public boolean colidiu_com_parede_direita() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao{
public boolean colidiu_com_parede_direita() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao {
int idRetalho = meu_retalho();
return GerenciadorInterface.getInstance().verificarColidiuParedeDireita(idRetalho);
}

@DocumentacaoFuncao(
descricao = "Verifica se o agente colidiu com a parede superior",
autores = {
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public boolean colidiu_com_parede_superior() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao{
public boolean colidiu_com_parede_superior() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao {
int idRetalho = meu_retalho();
return GerenciadorInterface.getInstance().verificarColidiuParedeSuperior(idRetalho);
}

@DocumentacaoFuncao(
descricao = "Verifica se o agente colidiu com a parede inferior",
autores = {
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public boolean colidiu_com_parede_inferior() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao{
public boolean colidiu_com_parede_inferior() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao {
int idRetalho = meu_retalho();
return GerenciadorInterface.getInstance().verificarColidiuParedeInferior(idRetalho);
}

@DocumentacaoFuncao(
descricao = "Retorna se há outro agente no mesmo retalho do agente atual",
autores = {
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public int retornar_agente_aqui() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao{
public int retornar_agente_aqui() throws ErroExecucaoBiblioteca, InterruptedException, ErroExecucao {
int idRetalho = meu_retalho();
return GerenciadorExecucao.getInstance().buscarAgentesAqui(idRetalho);
}

@DocumentacaoFuncao(
descricao = "Retorna a orientação de um agente específico buscando pelo seu id",
parametros = {
Expand All @@ -963,10 +960,10 @@ public int retornar_agente_aqui() throws ErroExecucaoBiblioteca, InterruptedExce
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public int retornar_orientacao_por_agente(int id_agente) throws ErroExecucaoBiblioteca, InterruptedException{
public int retornar_orientacao_por_agente(int id_agente) throws ErroExecucaoBiblioteca, InterruptedException {
return GerenciadorExecucao.getInstance().getOrientacaoPorId(id_agente);
}

@DocumentacaoFuncao(
descricao = "Define qual será o título exibido na parte superior da simulação",
parametros = {
Expand All @@ -976,12 +973,35 @@ public int retornar_orientacao_por_agente(int id_agente) throws ErroExecucaoBibl
@Autor(nome = "Douglas Breda", email = "bredadouglas@gmail.com")
}
)
public void definir_titulo_simulacao(String titulo) throws ErroExecucaoBiblioteca, InterruptedException{
public void definir_titulo_simulacao(String titulo) throws ErroExecucaoBiblioteca, InterruptedException {
GerenciadorInterface.getInstance().definirTituloSimulacao(titulo);
}


/**
* Método não publicado na biblioteca para disparar erros no console do
* Portugol a partir da simulação e que recebe uma instância de um erro do
* simulador
*
* @param erro
* @throws ErroExecucaoBiblioteca
* @throws InterruptedException
*/
@NaoExportar
public void adicionar_erro(ErroExecucaoSimulador erro) throws ErroExecucaoBiblioteca{
public void adicionar_erro(ErroExecucaoSimulador erro) throws ErroExecucaoBiblioteca, InterruptedException {
throw new ErroExecucaoBiblioteca(erro.getMensagem());
}

/**
* Método não publicado na biblioteca para disparar erros no console do
* Portugol a partir da simulação e que recebe uma string com o erro do
* simulador
*
* @param mensagem
* @throws ErroExecucaoBiblioteca
* @throws InterruptedException
*/
@NaoExportar
public void adicionar_erro(String mensagem) throws ErroExecucaoBiblioteca, InterruptedException {
throw new ErroExecucaoBiblioteca(mensagem);
}
}

0 comments on commit 96d2ab0

Please sign in to comment.