plp.orientadaObjetos1.comando
Class New

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

public class New
extends java.lang.Object
implements Comando

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


Field Summary
private  LeftExpression av
          Lado esquerdo da atribuição.
private  Id classe
          Identificador da classe, com o seu nome.
 
Constructor Summary
New(LeftExpression av, Id classe)
          Construtor.
 
Method Summary
 boolean checaTipo(AmbienteCompilacao ambiente)
          Verifica se a atribuição é possível comparando os tipos do objeto e da left expression.
 AmbienteExecucao executar(AmbienteExecucao ambiente)
          Execução da atribuição de um novo objeto criado a uma left expression.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

av

private LeftExpression av
Lado esquerdo da atribuição.


classe

private Id classe
Identificador da classe, com o seu nome.

Constructor Detail

New

public New(LeftExpression av,
           Id classe)
Construtor.

Parameters:
av - Lado esquerdo da atribuição.
classe - Identificador com o nome da classe.
Method Detail

executar

public AmbienteExecucao executar(AmbienteExecucao ambiente)
                          throws VariavelJaDeclaradaException,
                                 VariavelNaoDeclaradaException,
                                 ClasseJaDeclaradaException,
                                 ClasseNaoDeclaradaException,
                                 ObjetoJaDeclaradoException,
                                 ObjetoNaoDeclaradoException
Execução da atribuição de um novo objeto criado 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.

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