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