00001 package plp.orientadaObjetos1.comando; 00002 00003 import plp.expressions2.memory.VariavelJaDeclaradaException; 00004 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException; 00006 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00007 import plp.orientadaObjetos1.excecao.declaracao.ObjetoJaDeclaradoException; 00008 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException; 00009 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoJaDeclaradoException; 00010 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException; 00011 import plp.orientadaObjetos1.excecao.execucao.EntradaInvalidaException; 00012 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1; 00013 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1; 00014 00019 public class Sequencial implements Comando{ 00023 private Comando comando1; 00027 private Comando comando2; 00033 public Sequencial(Comando comando1, Comando comando2){ 00034 this.comando1 = comando1; 00035 this.comando2 = comando2; 00036 } 00037 00044 public AmbienteExecucaoOO1 executar(AmbienteExecucaoOO1 ambiente) 00045 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException, 00046 ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException, 00047 ObjetoJaDeclaradoException, ObjetoNaoDeclaradoException, 00048 ClasseJaDeclaradaException, ClasseNaoDeclaradaException, EntradaInvalidaException { 00049 00050 ambiente = comando1.executar(ambiente); 00051 ambiente = comando2.executar(ambiente); 00052 return ambiente; 00053 } 00054 00061 public boolean checaTipo(AmbienteCompilacaoOO1 ambiente) 00062 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException, 00063 ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException, 00064 ClasseJaDeclaradaException, ClasseNaoDeclaradaException { 00065 boolean resposta1 = comando1.checaTipo(ambiente); 00066 boolean resposta2 = comando2.checaTipo(ambiente); 00067 return resposta1 && resposta2; 00068 } 00069 }