plp.orientadaObjetos1.comando
Class ChamadaProcedimento

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

public class ChamadaProcedimento
extends java.lang.Object
implements Comando

Classe que representa uma chamada de um procedimento.


Field Summary
private  ListaExpressao parametrosReais
          São os parametros do procedimento
private  Procedimento procedimento
          É o procedimento
private  ListaValor valoresParametros
          Valores que serao atribuídos aos parametros reais
 
Constructor Summary
ChamadaProcedimento(Procedimento procedimento, ListaExpressao parametrosReais)
          Contrutor Default.
ChamadaProcedimento(Procedimento procedimento, ListaExpressao parametrosReais, ListaValor valoresParametros)
          Contrutor Default.
 
Method Summary
private  AmbienteExecucao bindParameters(AmbienteExecucao ambiente, ListaDeclaracaoParametro parametrosFormais)
          insere no contexto o resultado da associacao entre cada parametro formal e seu correspondente parametro atual
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos desta chamada de procedimento, onde os tipos dos parametros formais devem ser iguais aos tipos dos parametros reais na ordem em que se apresentam.
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Executa este comando.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

procedimento

private Procedimento procedimento
É o procedimento


parametrosReais

private ListaExpressao parametrosReais
São os parametros do procedimento


valoresParametros

private ListaValor valoresParametros
Valores que serao atribuídos aos parametros reais

Constructor Detail

ChamadaProcedimento

public ChamadaProcedimento(Procedimento procedimento,
                           ListaExpressao parametrosReais,
                           ListaValor valoresParametros)
Contrutor Default.

Parameters:
procedimento - é o procedimento
parametrosReais - sao os parâmetros do procedimento
valoresParametros - sao os valores dos parametros

ChamadaProcedimento

public ChamadaProcedimento(Procedimento procedimento,
                           ListaExpressao parametrosReais)
Contrutor Default.

Parameters:
procedimento - é o procedimento
parametrosReais - sao os parâmetros do procedimento
Method Detail

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ProcedimentoNaoDeclaradoException,
                                 ProcedimentoJaDeclaradoException,
                                 ObjetoNaoDeclaradoException,
                                 ObjetoJaDeclaradoException,
                                 ClasseNaoDeclaradaException,
                                 ClasseJaDeclaradaException,
                                 EntradaInvalidaException,
                                 java.lang.InterruptedException
Executa este comando.

Specified by:
executar in interface Comando
Parameters:
ambiente - o ambiente que contem o mapeamento entre identificadores e valores.
Returns:
o ambiente modificado pela execução do comando.
Throws:
java.lang.InterruptedException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ProcedimentoNaoDeclaradoException
ProcedimentoJaDeclaradoException
ObjetoNaoDeclaradoException
ObjetoJaDeclaradoException
ClasseNaoDeclaradaException
ClasseJaDeclaradaException
EntradaInvalidaException

bindParameters

private AmbienteExecucao bindParameters(AmbienteExecucao ambiente,
                                        ListaDeclaracaoParametro parametrosFormais)
                                 throws VariavelJaDeclaradaException,
                                        VariavelNaoDeclaradaException,
                                        ObjetoNaoDeclaradoException,
                                        ClasseNaoDeclaradaException
insere no contexto o resultado da associacao entre cada parametro formal e seu correspondente parametro atual

Throws:
ClasseNaoDeclaradaException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ObjetoNaoDeclaradoException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         VariavelJaDeclaradaException,
                         ProcedimentoNaoDeclaradoException,
                         ClasseNaoDeclaradaException
Realiza a verificacao de tipos desta chamada de procedimento, onde os tipos dos parametros formais devem ser iguais aos tipos dos parametros reais na ordem em que se apresentam.

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