plp.orientadaObjetos1.expressao
Class This

java.lang.Object
  extended by plp.orientadaObjetos1.expressao.This
All Implemented Interfaces:
Expressao

public class This
extends java.lang.Object
implements Expressao

Representa uma expressao utilizando o token "this"


Constructor Summary
This()
           
 
Method Summary
 Valor avaliar(AmbienteExecucao ambiente)
          Obtém o valor do objeto this no ambiente e o avalia.
 boolean checaTipo(AmbienteCompilacao ambiente)
          Checa o tipo do objeto this.
 Tipo getTipo(AmbienteCompilacao ambiente)
          Obtém o tipo do objeto this
private  Valor obterValorDoObjetoThisNoAmbiente(AmbienteExecucao ambiente)
          Retorna o valor do Objeto this no ambiente
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

This

public This()
Method Detail

avaliar

public Valor avaliar(AmbienteExecucao ambiente)
              throws VariavelNaoDeclaradaException,
                     VariavelJaDeclaradaException,
                     ClasseNaoDeclaradaException
Obtém o valor do objeto this no ambiente e o avalia.

Specified by:
avaliar in interface Expressao
Parameters:
ambiente - o ambiente de execuçao, que apresenta o mapeamento entre identificadores e valores.
Returns:
o valor do objeto this no escopo do ambiente atual.
Throws:
VariavelNaoDeclaradaException - Quando no escopo atual nao pode ser acessado o this.
VariavelJaDeclaradaException - Se por acaso se tentasse inserir no ambiente corrente mais de um "this" com o mesmo escopo.
ClasseNaoDeclaradaException - TODO

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException
Checa o tipo do objeto this.

Specified by:
checaTipo in interface Expressao
Parameters:
ambiente - o ambiente de compilação, contendo o mapeamento entre identificadores e tipos.
Returns:
true, se o tipo do objeto this pode ser checado sem problemas, false, caso contrário.
Throws:
VariavelNaoDeclaradaException - Se nao houver nenhum objeto this no contexto corrente.

getTipo

public Tipo getTipo(AmbienteCompilacao ambiente)
             throws VariavelNaoDeclaradaException
Obtém o tipo do objeto this

Specified by:
getTipo in interface Expressao
Parameters:
ambiente - o ambiente de compilação, contendo o mapeamento entre identificadoes e tipos.
Returns:
o tipo do objeto this no ambiente.
Throws:
VariavelNaoDeclaradaException - Se nao houver nenhum objeto this no contexto atual.

obterValorDoObjetoThisNoAmbiente

private Valor obterValorDoObjetoThisNoAmbiente(AmbienteExecucao ambiente)
                                        throws VariavelNaoDeclaradaException,
                                               VariavelJaDeclaradaException
Retorna o valor do Objeto this no ambiente

Parameters:
ambiente - é o Ambiente de Execução
Returns:
o valor do Objeto this no ambiente
Throws:
VariavelNaoDeclaradaException
VariavelJaDeclaradaException