00001 package plp.orientadaObjetos1.memoria; 00002 00003 import java.util.HashMap; 00004 import java.util.Stack; 00005 00006 import plp.expressions2.expression.Id; 00007 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00008 import plp.orientadaObjetos1.excecao.declaracao.ObjetoJaDeclaradoException; 00009 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException; 00010 import plp.orientadaObjetos1.excecao.execucao.EntradaInvalidaException; 00011 import plp.orientadaObjetos1.expressao.valor.Valor; 00012 import plp.orientadaObjetos1.expressao.valor.ValorRef; 00013 import plp.orientadaObjetos1.memoria.colecao.ListaValor; 00014 import plp.orientadaObjetos1.util.Tipo; 00015 00020 public interface AmbienteExecucaoOO1 extends AmbienteOO1<Valor> { 00025 public Stack<HashMap<Id, Valor>> getPilha(); 00026 00031 public HashMap<Id, DefClasse> getMapDefClasse(); 00032 00037 public Stack<HashMap<ValorRef, Objeto>> getPilhaObjeto(); 00038 00045 public void mapObjeto(ValorRef valorRef, Objeto objeto) throws ObjetoJaDeclaradoException; 00046 00054 public void changeValor(Id idArg, Valor valorId) throws VariavelNaoDeclaradaException; 00055 00062 public Objeto getObjeto(ValorRef valorRef) throws ObjetoNaoDeclaradoException; 00063 00068 public ValorRef getProxRef(); 00069 00074 public ValorRef getRef(); 00075 00084 public Valor read(Tipo tipoIdLido) throws EntradaInvalidaException; 00085 00091 public AmbienteExecucaoOO1 write(Valor v); 00092 00097 public ListaValor getEntrada(); 00098 00103 public ListaValor getSaida(); 00104 00111 public ContextoExecucaoOO1 getContextoIdValor(); 00112 }