Id.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.expressao.leftExpression;
00002 
00003 import plp.expressions2.memory.VariavelJaDeclaradaException;
00004 import plp.expressions2.memory.VariavelNaoDeclaradaException;
00005 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException;
00006 import plp.orientadaObjetos1.expressao.valor.Valor;
00007 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1;
00008 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1;
00009 import plp.orientadaObjetos1.util.Tipo;
00010 
00014 public class Id extends plp.expressions2.expression.Id implements LeftExpression{ //,IDominio{
00015     
00020     public Id(String strName) {
00021         super(strName);
00022     }
00028     public boolean equals(Object obj) {
00029         if (obj instanceof Id) {
00030             return ((Id) obj).getIdName().equals(this.getIdName());
00031         }
00032         return false;
00033     }
00038     public String toString() {
00039         return this.getIdName();
00040     }
00041 
00051     public Valor avaliar(AmbienteExecucaoOO1 ambiente)
00052         throws VariavelJaDeclaradaException, ClasseNaoDeclaradaException, VariavelNaoDeclaradaException {
00053         return obterValorDeIdNoAmbiente(ambiente);
00054     }
00055 
00065     public boolean checaTipo(AmbienteCompilacaoOO1 amb) throws VariavelNaoDeclaradaException {
00066         boolean result = true;
00067         amb.get(this); // verifica se está no ambiente
00068         return result;
00069     }
00070 
00079     public Tipo getTipo(AmbienteCompilacaoOO1 amb) throws VariavelNaoDeclaradaException {
00080         return amb.get(this);
00081     }
00086     public Id getId(){
00087         return this;
00088     }
00094     public int hashCode() {
00095         return this.getIdName().hashCode();
00096     }
00097 
00104     private Valor obterValorDeIdNoAmbiente(AmbienteExecucaoOO1 ambiente)
00105             throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException {
00106         return ambiente.get(this);
00107     }
00108 }

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