plp.orientadaObjetos1.expressao.leftExpression
Class AcessoAtributoThis

java.lang.Object
  extended by plp.orientadaObjetos1.expressao.leftExpression.AcessoAtributo
      extended by plp.orientadaObjetos1.expressao.leftExpression.AcessoAtributoThis
All Implemented Interfaces:
Expressao, LeftExpression

public class AcessoAtributoThis
extends AcessoAtributo

Representa um acesso de atributo a partir de um objeto this.


Field Summary
private  This varThis
          O objeto this.
 
Constructor Summary
AcessoAtributoThis(This varThis, Id id)
          Construtor.
 
Method Summary
 Valor avaliar(AmbienteExecucao ambiente)
          O valor do atributo acessado no ambiente.
 boolean checaTipo(AmbienteCompilacao ambiente)
          Verifica se o this está associado a um objeto e se o atributo existe.
 Expressao getExpressaoObjeto()
          Obtém a expressão que acessa o identificador.
 Tipo getTipo(AmbienteCompilacao ambiente)
          Obtém o tipo do atributo acessado.
private  Valor obterValorDeIdNoAmbiente(AmbienteExecucao ambiente)
          Retorna o valor do Objeto representado por um certo id
 
Methods inherited from class plp.orientadaObjetos1.expressao.leftExpression.AcessoAtributo
getId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

varThis

private This varThis
O objeto this.

Constructor Detail

AcessoAtributoThis

public AcessoAtributoThis(This varThis,
                          Id id)
Construtor.

Parameters:
varThis - O objeto this.
id - O identificador sendo acessado.
Method Detail

avaliar

public Valor avaliar(AmbienteExecucao ambiente)
              throws VariavelNaoDeclaradaException,
                     VariavelJaDeclaradaException,
                     ObjetoNaoDeclaradoException,
                     ClasseNaoDeclaradaException
O valor do atributo acessado no ambiente.

Parameters:
ambiente - o ambiente contendoo mapeamento de identificadores a valores.
Returns:
o valor do atributo acessado.
Throws:
VariavelNaoDeclaradaException
VariavelJaDeclaradaException
ObjetoNaoDeclaradoException
ClasseNaoDeclaradaException - TODO

getExpressaoObjeto

public Expressao getExpressaoObjeto()
Obtém a expressão que acessa o identificador.

Specified by:
getExpressaoObjeto in class AcessoAtributo
Returns:
a expressao que acessa o identificador.

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
Verifica se o this está associado a um objeto e se o atributo existe.

Parameters:
ambiente - o ambiente com o mapeamento de identificadores a tipos.
Returns:
true, se o this está associado a um objeto e se o atributo existe, ou false, caso contrário.

getTipo

public Tipo getTipo(AmbienteCompilacao ambiente)
             throws VariavelNaoDeclaradaException,
                    ClasseNaoDeclaradaException
Obtém o tipo do atributo acessado.

Parameters:
ambiente - o ambiente com o mapeamento de identificadores a tipos.
Returns:
true, se foi associado um tipo a esse identificador acessado no escopo corrente.
Throws:
VariavelNaoDeclaradaException
ClasseNaoDeclaradaException

obterValorDeIdNoAmbiente

private Valor obterValorDeIdNoAmbiente(AmbienteExecucao ambiente)
                                throws VariavelNaoDeclaradaException,
                                       VariavelJaDeclaradaException,
                                       ObjetoNaoDeclaradoException,
                                       ClasseNaoDeclaradaException
Retorna o valor do Objeto representado por um certo id

Parameters:
ambiente - é o Ambiente de Execução
Returns:
o valor do Objeto representado por um certo id
Throws:
ClasseNaoDeclaradaException
VariavelNaoDeclaradaException
VariavelJaDeclaradaException
ObjetoNaoDeclaradoException