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

ExpNot.java

Go to the documentation of this file.
00001 package plp.orientadaObjetos1.expressao.unaria;
00002 
00003 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException;
00004 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException;
00005 import plp.orientadaObjetos1.excecao.declaracao.VariavelJaDeclaradaException;
00006 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException;
00007 import plp.orientadaObjetos1.expressao.Expressao;
00008 import plp.orientadaObjetos1.expressao.valor.Valor;
00009 import plp.orientadaObjetos1.expressao.valor.ValorBooleano;
00010 import plp.orientadaObjetos1.memoria.AmbienteCompilacao;
00011 import plp.orientadaObjetos1.memoria.AmbienteExecucao;
00012 import plp.orientadaObjetos1.util.Tipo;
00013 import plp.orientadaObjetos1.util.TipoPrimitivo;
00014 
00015 
00019 public class ExpNot extends ExpUnaria{
00020 
00028     public ExpNot(Expressao expressao) {
00029         super(expressao, "~");
00030     }
00031 
00042     public Valor avaliar(AmbienteExecucao ambiente)
00043         throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00044         ObjetoNaoDeclaradoException{
00045         return obterValorInverso(ambiente);
00046     }
00047 
00059     public boolean checaTipo(AmbienteCompilacao ambiente)
00060         throws VariavelNaoDeclaradaException, ClasseNaoDeclaradaException {
00061         boolean result;
00062         if (super.checaTipo(ambiente) &&
00063             ((TipoPrimitivo)getExp().getTipo(ambiente)).eBooleano()) {
00064             result = true;
00065         }
00066         else {
00067             result = false;
00068         }
00069         return result;
00070     }
00071 
00078     public Tipo getTipo(AmbienteCompilacao ambiente) {
00079         return TipoPrimitivo.TIPO_BOOLEANO;
00080     }
00081 
00087     private ValorBooleano obterValorInverso(AmbienteExecucao ambiente)
00088             throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException,
00089                    ObjetoNaoDeclaradoException{
00090         return new ValorBooleano(!((ValorBooleano) getExp().avaliar(ambiente)).valor());
00091     }
00092 }

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