ComDeclaracao.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.comando;
00002 
00003 import plp.expressions2.memory.VariavelJaDeclaradaException;
00004 import plp.expressions2.memory.VariavelNaoDeclaradaException;
00005 import plp.orientadaObjetos1.declaracao.Declaracao;
00006 import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException;
00007 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException;
00008 import plp.orientadaObjetos1.excecao.declaracao.ObjetoJaDeclaradoException;
00009 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException;
00010 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoJaDeclaradoException;
00011 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException;
00012 import plp.orientadaObjetos1.excecao.execucao.EntradaInvalidaException;
00013 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1;
00014 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1;
00015 
00019 public class ComDeclaracao implements Comando {
00023     private Declaracao declaracao;
00027     private Comando comando;
00031     public ComDeclaracao(Declaracao declaracao, Comando comando){
00032         this.declaracao = declaracao;
00033         this.comando = comando;
00034     }
00035 
00043     public AmbienteExecucaoOO1 executar(AmbienteExecucaoOO1 ambiente)
00044         throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00045                ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException,
00046                ClasseNaoDeclaradaException, ClasseJaDeclaradaException,
00047                ObjetoJaDeclaradoException, ObjetoNaoDeclaradoException, EntradaInvalidaException{
00048         ambiente.incrementa();
00049         ambiente = comando.executar(declaracao.elabora(ambiente));
00050         ambiente.restaura();
00051         return ambiente;
00052     }
00053 
00058     public boolean checaTipo(AmbienteCompilacaoOO1 ambiente)
00059         throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException,
00060                ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException,
00061                ClasseNaoDeclaradaException, ClasseJaDeclaradaException{
00062         boolean resposta;
00063         ambiente.incrementa();
00064         resposta = declaracao.checaTipo(ambiente) && comando.checaTipo(ambiente);
00065         ambiente.restaura();
00066         return resposta;
00067     }
00068 }

Generated on Tue Sep 12 21:52:07 2006 for PLP by  doxygen 1.4.7