plp.orientadaObjetos2.comando
Class Cast

java.lang.Object
  extended by plp.orientadaObjetos2.comando.Cast
All Implemented Interfaces:
Comando

public class Cast
extends java.lang.Object
implements Comando

Comando de cast de objeto e atribuição deste a uma expressão esquerda.


Constructor Summary
Cast(LeftExpression av, Id idObjeto, Tipo classeCast)
          Construtor.
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Verifica se a atribuição é possível comparando os tipos do objeto e da left expression bem como verificando se esta também é filha da classe representada por classeCast.
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Execução de cast de um objeto a uma left expression.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Cast

public Cast(LeftExpression av,
            Id idObjeto,
            Tipo classeCast)
Construtor.

Parameters:
av - Lado esquerdo da atribuição.
classe - Identificador com o nome da classe.
classeCast - Tipo da classe para ser dado o cast.
Method Detail

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ClasseJaDeclaradaException,
                                 ClasseNaoDeclaradaException,
                                 ObjetoJaDeclaradoException,
                                 ObjetoNaoDeclaradoException
Execução de cast de um objeto a uma left expression.

Specified by:
executar in interface Comando
Parameters:
ambiente - O ambiente contendo o mapeamento entre identificadores e valores.
Returns:
o ambiente de execução atualizado.
Throws:
VariavelJaDeclaradaException
VariavelNaoDeclaradaException
ClasseJaDeclaradaException
ClasseNaoDeclaradaException
ObjetoJaDeclaradoException
ObjetoNaoDeclaradoException

checaTipo

public boolean checaTipo(AmbienteCompilacao ambiente)
                  throws VariavelNaoDeclaradaException,
                         ClasseJaDeclaradaException,
                         ClasseNaoDeclaradaException
Verifica se a atribuição é possível comparando os tipos do objeto e da left expression bem como verificando se esta também é filha da classe representada por classeCast.

Specified by:
checaTipo in interface Comando
Parameters:
ambiente - O ambiente de compilação, com o mapeamento entre identificadores e tipos.
Returns:
true se os comando são bem tipados; false caso contrario.
Throws:
VariavelNaoDeclaradaException
ClasseJaDeclaradaException
ClasseNaoDeclaradaException