plp.orientadaObjetos1.comando
Class IfThenElse

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

public class IfThenElse
extends java.lang.Object
implements Comando

Classe que representa o comando If Then Else


Field Summary
private  Comando comandoElse
          Comando executado caso a expressão seja falsa.
private  Comando comandoThen
          Comando executado caso a expressão seja verdadeira.
private  Expressao expressao
          Expressão de avaliação.
 
Constructor Summary
IfThenElse(Expressao expressao, Comando comandoThen, Comando comandoElse)
          Construtor.
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Realiza a verificacao de tipos da expressão e dos comandos do comando if then else
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Implementa o comando if then else.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

expressao

private Expressao expressao
Expressão de avaliação.


comandoThen

private Comando comandoThen
Comando executado caso a expressão seja verdadeira.


comandoElse

private Comando comandoElse
Comando executado caso a expressão seja falsa.

Constructor Detail

IfThenElse

public IfThenElse(Expressao expressao,
                  Comando comandoThen,
                  Comando comandoElse)
Construtor.

Parameters:
expressao - Expressão de avaliação.
comandoThen - Comando executado caso a expressão seja verdadeira.
comandoElse - Comando executado caso a expressão seja falsa.
Method Detail

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ProcedimentoNaoDeclaradoException,
                                 ProcedimentoJaDeclaradoException,
                                 ClasseJaDeclaradaException,
                                 ClasseNaoDeclaradaException,
                                 ObjetoJaDeclaradoException,
                                 ObjetoNaoDeclaradoException,
                                 EntradaInvalidaException,
                                 java.lang.InterruptedException
Implementa o comando if then else.

Specified by:
executar in interface Comando
Parameters:
ambiente - o ambiente de execução.
Returns:
o ambiente depois de modificado pela execução do comando if then else.
Throws:
java.lang.InterruptedException
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ProcedimentoNaoDeclaradoException
ProcedimentoJaDeclaradoException
ClasseJaDeclaradaException
ClasseNaoDeclaradaException
ObjetoJaDeclaradoException
ObjetoNaoDeclaradoException
EntradaInvalidaException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         VariavelJaDeclaradaException,
                         ProcedimentoNaoDeclaradoException,
                         ProcedimentoJaDeclaradoException,
                         ClasseJaDeclaradaException,
                         ClasseNaoDeclaradaException
Realiza a verificacao de tipos da expressão e dos comandos do comando if then else

Specified by:
checaTipo in interface Comando
Parameters:
ambiente - o ambiente de compilação.
Returns:
true se a expressão e os comando são bem tipados; false caso contrario.
Throws:
VariavelNaoDeclaradaException
VariavelJaDeclaradaException
ProcedimentoNaoDeclaradoException
ProcedimentoJaDeclaradoException
ClasseJaDeclaradaException
ClasseNaoDeclaradaException