Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

DecClasseSimples.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.declaracao.classe;
00002 
00003 import plp.orientadaObjetos1.declaracao.procedimento.DecProcedimento;
00004 import plp.orientadaObjetos1.declaracao.variavel.DecVariavel;
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.excecao.declaracao.VariavelJaDeclaradaException;
00010 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException;
00011 import plp.orientadaObjetos1.expressao.leftExpression.Id;
00012 import plp.orientadaObjetos1.memoria.AmbienteCompilacao;
00013 import plp.orientadaObjetos1.memoria.AmbienteExecucao;
00014 import plp.orientadaObjetos1.memoria.DefClasse;
00015 import plp.orientadaObjetos1.util.TipoClasse;
00019 public class DecClasseSimples implements DecClasse {
00023     protected Id nomeClasse;
00027     protected DecVariavel atributos;
00031     protected DecProcedimento metodos;
00038     public  DecClasseSimples(Id nomeClasse, DecVariavel atributos, DecProcedimento metodos){
00039         this.nomeClasse = nomeClasse;
00040         this.atributos = atributos;
00041         this.metodos = metodos;
00042     }
00043 
00050     public AmbienteExecucao elabora(AmbienteExecucao ambiente)
00051         throws ClasseJaDeclaradaException, ClasseNaoDeclaradaException {
00052 
00053         ambiente.mapDefClasse(nomeClasse, new DefClasse(atributos,metodos));
00054         return ambiente;
00055     }
00056     
00065     public boolean checaTipo(AmbienteCompilacao ambiente)
00066         throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00067                ClasseJaDeclaradaException, ClasseNaoDeclaradaException,
00068                ProcedimentoNaoDeclaradoException, ProcedimentoJaDeclaradoException {
00069 
00070         ambiente.mapDefClasse(nomeClasse, new DefClasse(atributos,metodos));
00071         boolean resposta = false;
00072         ambiente.incrementa();
00073         if (atributos.checaTipo(ambiente)){
00074             ambiente.mapTipo(new Id("this"), new TipoClasse(nomeClasse));
00075             resposta =  metodos.checaTipo(ambiente);
00076         }
00077         ambiente.restaura();
00078         return resposta;
00079     }
00080 }

Generated on Mon Aug 8 20:20:46 2005 for Linguagem OO1 - Generics by  doxygen 1.4.4