00001 package plp.orientadaObjetos1.declaracao.classe; 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.ProcedimentoJaDeclaradoException; 00008 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException; 00009 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1; 00010 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1; 00011 00015 public class DecClasseComposta implements DecClasse{ 00019 private DecClasse declaracao1; 00023 private DecClasse declaracao2; 00029 public DecClasseComposta(DecClasse declaracao1, DecClasse declaracao2){ 00030 this.declaracao1 = declaracao1; 00031 this.declaracao2 = declaracao2; 00032 } 00040 public AmbienteExecucaoOO1 elabora(AmbienteExecucaoOO1 ambiente) 00041 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException, 00042 ClasseNaoDeclaradaException, ClasseJaDeclaradaException, 00043 ProcedimentoNaoDeclaradoException,ProcedimentoJaDeclaradoException{ 00044 return declaracao2.elabora(declaracao1.elabora(ambiente)); 00045 } 00054 public boolean checaTipo(AmbienteCompilacaoOO1 ambiente) 00055 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException, 00056 ClasseJaDeclaradaException, ClasseNaoDeclaradaException, 00057 ProcedimentoNaoDeclaradoException,ProcedimentoJaDeclaradoException{ 00058 return declaracao1.checaTipo(ambiente) && declaracao2.checaTipo(ambiente); 00059 } 00060 }