plp.orientadaObjetos1.memoria
Class ContextoExecucao

java.lang.Object
  extended by plp.orientadaObjetos1.memoria.ContextoExecucao
All Implemented Interfaces:
Ambiente, AmbienteExecucao

public class ContextoExecucao
extends java.lang.Object
implements AmbienteExecucao


Field Summary
private  boolean available
           
private  ListaValor entrada
          A pilha de blocos de contexto.
private  java.util.Stack<java.util.Hashtable<Id,Valor>> pilha
          A pilha de blocos de contexto.
private  java.util.Stack<java.util.Hashtable<Id,DefClasse>> pilhaDefClasse
          A pilha de classes do contexto.
private  java.util.Stack<java.util.Hashtable<ValorRef,Objeto>> pilhaObjeto
          A pilha de objetos de contexto.
private  ValorRef proxRef
          A referência do objeto a ser inserido na pilha de objetos
private  ListaValor saida
          A pilha de blocos de contexto.
 
Constructor Summary
ContextoExecucao()
          Construtor utilizado quando queremos ler do teclado.
ContextoExecucao(AmbienteExecucao ambiente)
          Construtor da classe.
ContextoExecucao(ListaValor entrada)
          Construtor.
 
Method Summary
 void changeValor(Id idArg, Valor valorId)
          Altera o valor associado a um identificador.
 AmbienteExecucao clone()
           
 void get(Id idArg, Valor valorId)
           
 ContextoExecucao getContextoIdValor()
          Obtém um novo contexto de execução com a mesma entrada, saída e pilha de mapeamentos id/valor.
 DefClasse getDefClasse(Id idArg)
          Obtém a definição da classe cujo nome é idArg
 ListaValor getEntrada()
          Obtém a entrada.
 Objeto getObjeto(ValorRef valorRef)
          Obtém o objeto associado a um dado valor referencia.
 java.util.Stack<java.util.Hashtable<Id,Valor>> getPilha()
          Obtém a pilha de valores associados a identificadores
 java.util.Stack<java.util.Hashtable<Id,DefClasse>> getPilhaDefClasse()
          Retorna a pilha com as definiçoes das classes.
 java.util.Stack<java.util.Hashtable<ValorRef,Objeto>> getPilhaObjeto()
          Obtém a pilha com os objetos e seus valores.
 ValorRef getProxRef()
          Obtém a próxima referência de acordo com o contexto atual de execução.
 ValorRef getRef()
          Obtém o valor referencia atual.
 ListaValor getSaida()
          Obtém a saída.
 Valor getValor(Id idArg)
          Obtém o valor associado a um determinado identificador.
 void incrementa()
          Incrementa a pilha do ambiente, passando para o próximo estado.
private  java.lang.String leDaEntradaPadrao()
          Este método lê da entrada padrão
private  java.lang.String leDaListaValor()
          Este método lê da entrada padrão
private  java.lang.String leEntrada()
          Este método lê uma entrada que pode ser de uma tail ou do teclado
 void mapDefClasse(Id idArg, DefClasse defClasse)
          Mapeia um identificador a um definição de classe.
 void mapObjeto(ValorRef valorRef, Objeto objeto)
          Mapeia um valor referência a um objeto.
 void mapValor(Id idArg, Valor valorId)
          Mapeia um identificador a um valor.
 void put(Id idArg, Valor valorId)
           
 Valor read(Tipo tipoIdLido)
          Lê da entrada padrão e associa o conteúdo a um determinado identificador.
 void restaura()
          Restaura o estado do ambiente.
 java.lang.String toString()
          Retorna a representação textual do contexto de execução.
 AmbienteExecucao write(Valor v)
          Escreve um valor 'v' na saída.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pilha

private java.util.Stack<java.util.Hashtable<Id,Valor>> pilha
A pilha de blocos de contexto.


pilhaDefClasse

private java.util.Stack<java.util.Hashtable<Id,DefClasse>> pilhaDefClasse
A pilha de classes do contexto.


pilhaObjeto

private java.util.Stack<java.util.Hashtable<ValorRef,Objeto>> pilhaObjeto
A pilha de objetos de contexto.


entrada

private ListaValor entrada
A pilha de blocos de contexto.


saida

private ListaValor saida
A pilha de blocos de contexto.


proxRef

private ValorRef proxRef
A referência do objeto a ser inserido na pilha de objetos


available

private boolean available
Constructor Detail

ContextoExecucao

public ContextoExecucao()
Construtor utilizado quando queremos ler do teclado.


ContextoExecucao

public ContextoExecucao(AmbienteExecucao ambiente)
                 throws VariavelJaDeclaradaException
Construtor da classe.

Throws:
VariavelJaDeclaradaException

ContextoExecucao

public ContextoExecucao(ListaValor entrada)
Construtor.

Parameters:
entrada - Entrada para o contexto de execução.
Method Detail

getPilha

public java.util.Stack<java.util.Hashtable<Id,Valor>> getPilha()
Obtém a pilha de valores associados a identificadores

Specified by:
getPilha in interface AmbienteExecucao
Returns:
a pilha de valores associados a identificadores.

getPilhaDefClasse

public java.util.Stack<java.util.Hashtable<Id,DefClasse>> getPilhaDefClasse()
Retorna a pilha com as definiçoes das classes.

Specified by:
getPilhaDefClasse in interface AmbienteExecucao
Returns:
a pilha com as definiçoes das classes.

getPilhaObjeto

public java.util.Stack<java.util.Hashtable<ValorRef,Objeto>> getPilhaObjeto()
Obtém a pilha com os objetos e seus valores.

Specified by:
getPilhaObjeto in interface AmbienteExecucao
Returns:
a pilha com os objetos e seus valores.

read

public Valor read(Tipo tipoIdLido)
           throws EntradaInvalidaException
Lê da entrada padrão e associa o conteúdo a um determinado identificador.

Specified by:
read in interface AmbienteExecucao
Parameters:
tipoIdLido - Tipo do identificador ao qual será associado o valor lido.
Returns:
o valor lido.
Throws:
EntradaInvalidaException - Quando a entrada fornecida não pode ser atribuída ao tipo do identificador.

leEntrada

private java.lang.String leEntrada()
                            throws EntradaInvalidaException
Este método lê uma entrada que pode ser de uma tail ou do teclado

Returns:
Obtém uma entrada que pode ser de uma tail ou do teclado
Throws:
Lança - uma exceção se a tail com os valores nao tiver mais elementos.
EntradaInvalidaException

leDaEntradaPadrao

private java.lang.String leDaEntradaPadrao()
Este método lê da entrada padrão

Returns:
o que o usuário digitou na entrada padrão

leDaListaValor

private java.lang.String leDaListaValor()
Este método lê da entrada padrão

Returns:
o que o usuário digitou na entrada padrão

getSaida

public ListaValor getSaida()
Obtém a saída.

Specified by:
getSaida in interface AmbienteExecucao
Returns:
a saída.

getEntrada

public ListaValor getEntrada()
Obtém a entrada.

Specified by:
getEntrada in interface AmbienteExecucao
Returns:
a entrada.

write

public AmbienteExecucao write(Valor v)
Escreve um valor 'v' na saída.

Specified by:
write in interface AmbienteExecucao
Parameters:
v - O valor a ser escrito.
Returns:
o ambiente de execução, que representa o estado atual.

incrementa

public void incrementa()
Incrementa a pilha do ambiente, passando para o próximo estado.

Specified by:
incrementa in interface Ambiente

restaura

public void restaura()
Restaura o estado do ambiente.

Specified by:
restaura in interface Ambiente

mapValor

public void mapValor(Id idArg,
                     Valor valorId)
              throws VariavelJaDeclaradaException
Mapeia um identificador a um valor.

Specified by:
mapValor in interface AmbienteExecucao
Parameters:
idArg - Identificador.
valorId - Valor que vai ser associado ao identificador.
Throws:
VariavelJaDeclaradaException - Quando a variável já foi declarada.

mapDefClasse

public void mapDefClasse(Id idArg,
                         DefClasse defClasse)
                  throws ClasseJaDeclaradaException
Mapeia um identificador a um definição de classe.

Specified by:
mapDefClasse in interface Ambiente
Parameters:
idArg - o nome da classe
defClasse - Definição da Classe.
Throws:
ClasseJaDeclaradaException - quando a classe já foi declarada.

mapObjeto

public void mapObjeto(ValorRef valorRef,
                      Objeto objeto)
               throws ObjetoJaDeclaradoException
Mapeia um valor referência a um objeto.

Specified by:
mapObjeto in interface AmbienteExecucao
Parameters:
valorRef - Valor referência.
objeto - Objeto.
Throws:
ObjetoJaDeclaradoException - Quando esse objeto já foi declarado.

changeValor

public void changeValor(Id idArg,
                        Valor valorId)
                 throws VariavelNaoDeclaradaException
Altera o valor associado a um identificador.

Specified by:
changeValor in interface AmbienteExecucao
Parameters:
idArg - Identificador.
valorId - O valor a ser associado ao identificador.
Throws:
VariavelNaoDeclaradaException - Quando a variável não foi declarada.

getValor

public Valor getValor(Id idArg)
               throws VariavelNaoDeclaradaException
Obtém o valor associado a um determinado identificador.

Specified by:
getValor in interface AmbienteExecucao
Parameters:
idArg - Identificador
Returns:
o valor associado a um determinado identificador.
Throws:
VariavelNaoDeclaradaException - Quando a variável não foi declarada.

getDefClasse

public DefClasse getDefClasse(Id idArg)
                       throws ClasseNaoDeclaradaException
Obtém a definição da classe cujo nome é idArg

Specified by:
getDefClasse in interface Ambiente
Parameters:
idArg - Nome da classe.
Returns:
a definição da classe.
Throws:
ClasseNaoDeclaradaException - quando nao foi declarada nenhuma classe com esse nome.

getObjeto

public Objeto getObjeto(ValorRef valorRef)
                 throws ObjetoNaoDeclaradoException
Obtém o objeto associado a um dado valor referencia.

Specified by:
getObjeto in interface AmbienteExecucao
Parameters:
valorRef - Valor referência
Returns:
o objeto associado a um dado valor referencia.
Throws:
ObjetoNaoDeclaradoException - Quando o objeto não foi declarado.

getProxRef

public ValorRef getProxRef()
Obtém a próxima referência de acordo com o contexto atual de execução.

Specified by:
getProxRef in interface AmbienteExecucao
Returns:
a próxima referência de acordo com o contexto atual de execução.

getRef

public ValorRef getRef()
Obtém o valor referencia atual.

Specified by:
getRef in interface AmbienteExecucao
Returns:
o valor referencia atual.

toString

public java.lang.String toString()
Retorna a representação textual do contexto de execução.

Overrides:
toString in class java.lang.Object
Returns:
a representação textual do contexto de execução.

getContextoIdValor

public ContextoExecucao getContextoIdValor()
Obtém um novo contexto de execução com a mesma entrada, saída e pilha de mapeamentos id/valor.

Specified by:
getContextoIdValor in interface AmbienteExecucao
Returns:
um novo contexto de execução com a mesma entrada, saída e pilha de mapeamentos id/valor.

clone

public AmbienteExecucao clone()
Specified by:
clone in interface AmbienteExecucao
Overrides:
clone in class java.lang.Object

get

public void get(Id idArg,
                Valor valorId)
         throws VariavelNaoDeclaradaException
Specified by:
get in interface AmbienteExecucao
Throws:
VariavelNaoDeclaradaException

put

public void put(Id idArg,
                Valor valorId)
         throws VariavelNaoDeclaradaException
Specified by:
put in interface AmbienteExecucao
Throws:
VariavelNaoDeclaradaException