plp.orientadaObjetos1.comando
Class ChamadaMetodo

java.lang.Object
  extended by plp.orientadaObjetos1.comando.ChamadaMetodo
All Implemented Interfaces:
Comando

public class ChamadaMetodo
extends java.lang.Object
implements Comando

Classe que representa a chamada de um método.


Field Summary
private  Expressao expressao
          A expressão que chama o método.
private  Id nomeMetodo
          O identificador que representa o nome do método.
private  ListaExpressao parametrosReais
          Parâmetros passados para o método.
 
Constructor Summary
ChamadaMetodo(Expressao expressao, Id nomeMetodo, ListaExpressao parametrosReais)
          Construtor.
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificação de tipos desta chamada de método, onde o tipo do método deve estar na definição da classe obtida a partir de expressão.
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Executa uma chamada de método.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

expressao

private Expressao expressao
A expressão que chama o método.


nomeMetodo

private Id nomeMetodo
O identificador que representa o nome do método.


parametrosReais

private ListaExpressao parametrosReais
Parâmetros passados para o método.

Constructor Detail

ChamadaMetodo

public ChamadaMetodo(Expressao expressao,
                     Id nomeMetodo,
                     ListaExpressao parametrosReais)
Construtor.

Parameters:
expressao - A expressao chamadora do método.
nomeMetodo - O nome do método.
parametrosReais - Os parâmetros passados para a execução do método.
-
Method Detail

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ProcedimentoNaoDeclaradoException,
                                 ProcedimentoJaDeclaradoException,
                                 ObjetoJaDeclaradoException,
                                 ObjetoNaoDeclaradoException,
                                 ClasseNaoDeclaradaException,
                                 ClasseJaDeclaradaException,
                                 EntradaInvalidaException,
                                 java.lang.InterruptedException
Executa uma chamada de método.

Specified by:
executar in interface Comando
Parameters:
ambiente - O ambiente de execução, que guarda o mapeamento de identificadores a valores.
Returns:
o Ambiente de Execução atualizado.
Throws:
java.lang.InterruptedException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ProcedimentoNaoDeclaradoException
ProcedimentoJaDeclaradoException
ObjetoJaDeclaradoException
ObjetoNaoDeclaradoException
ClasseNaoDeclaradaException
ClasseJaDeclaradaException
EntradaInvalidaException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         VariavelJaDeclaradaException,
                         ClasseNaoDeclaradaException
Realiza a verificação de tipos desta chamada de método, onde o tipo do método deve estar na definição da classe obtida a partir de expressão.

Specified by:
checaTipo in interface Comando
Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e tipos.
Returns:
true se a chamada de método está bem tipada; false caso contrario.
Throws:
VariavelNaoDeclaradaException
VariavelJaDeclaradaException
ClasseNaoDeclaradaException