CompostaDecVariavel.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.declaracao.variavel;
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.expressao.leftExpression.Id;
00010 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1;
00011 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1;
00012 import plp.orientadaObjetos1.util.Tipo;
00013 
00017 public class CompostaDecVariavel implements DecVariavel{
00021     private DecVariavel declaracao1;
00025     private DecVariavel declaracao2;
00026 
00032     public  CompostaDecVariavel(DecVariavel declaracao1, DecVariavel declaracao2){
00033         this.declaracao1 = declaracao1;
00034         this.declaracao2 = declaracao2;
00035     }
00043     public Tipo getTipo(Id id) throws VariavelNaoDeclaradaException {
00044         Tipo tipo;
00045         try {
00046             tipo = declaracao1.getTipo(id);
00047         }
00048         catch(VariavelNaoDeclaradaException e) {
00049             tipo = declaracao2.getTipo(id);
00050         }
00051         return tipo;
00052 
00053     }
00054 
00062     public AmbienteExecucaoOO1 elabora(AmbienteExecucaoOO1 ambiente)
00063         throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00064               ObjetoNaoDeclaradoException, ObjetoJaDeclaradoException,
00065               ClasseJaDeclaradaException, ClasseNaoDeclaradaException{
00066         return declaracao2.elabora(declaracao1.elabora(ambiente));
00067     }
00068 
00077     public boolean checaTipo(AmbienteCompilacaoOO1 ambiente)
00078         throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException,
00079                ClasseNaoDeclaradaException, ClasseJaDeclaradaException {
00080         return declaracao1.checaTipo(ambiente) && declaracao2.checaTipo(ambiente);
00081     }
00082 }

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