00001 package plp.orientadaObjetos1.declaracao.classe; 00002 00003 import plp.orientadaObjetos1.excecao.declaracao.ClasseJaDeclaradaException; 00004 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoJaDeclaradoException; 00006 import plp.orientadaObjetos1.excecao.declaracao.ProcedimentoNaoDeclaradoException; 00007 import plp.orientadaObjetos1.excecao.declaracao.VariavelJaDeclaradaException; 00008 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException; 00009 import plp.orientadaObjetos1.memoria.AmbienteCompilacao; 00010 import plp.orientadaObjetos1.memoria.AmbienteExecucao; 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 AmbienteExecucao elabora(AmbienteExecucao ambiente) 00041 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException, 00042 ClasseNaoDeclaradaException, ClasseJaDeclaradaException, 00043 ProcedimentoNaoDeclaradoException,ProcedimentoJaDeclaradoException{ 00044 return declaracao2.elabora(declaracao1.elabora(ambiente)); 00045 } 00054 public boolean checaTipo(AmbienteCompilacao ambiente) 00055 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException, 00056 ClasseJaDeclaradaException, ClasseNaoDeclaradaException, 00057 ProcedimentoNaoDeclaradoException,ProcedimentoJaDeclaradoException{ 00058 return declaracao1.checaTipo(ambiente) && declaracao2.checaTipo(ambiente); 00059 } 00060 }