00001 package plp.orientadaObjetos1.comando; 00002 00003 import plp.orientadaObjetos1.excecao.comando.TryCatchException; 00004 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ObjetoNaoDeclaradoException; 00006 import plp.orientadaObjetos1.excecao.declaracao.VariavelJaDeclaradaException; 00007 import plp.orientadaObjetos1.excecao.declaracao.VariavelNaoDeclaradaException; 00008 import plp.orientadaObjetos1.expressao.Expressao; 00009 import plp.orientadaObjetos1.expressao.valor.Valor; 00010 import plp.orientadaObjetos1.expressao.valor.ValorRef; 00011 import plp.orientadaObjetos1.expressao.valor.ValorString; 00012 import plp.orientadaObjetos1.memoria.AmbienteCompilacao; 00013 import plp.orientadaObjetos1.memoria.AmbienteExecucao; 00014 00018 public class Write implements IO { 00022 private Expressao expressao; 00027 public Write(Expressao expressao){ 00028 this.expressao = expressao; 00029 } 00030 00037 public AmbienteExecucao executar(AmbienteExecucao ambiente) 00038 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException, 00039 ObjetoNaoDeclaradoException, TryCatchException { 00040 Valor valor = expressao.avaliar(ambiente); 00041 System.out.println(valor); 00042 return ambiente.write( valor); 00043 } 00044 00052 public boolean checaTipo(AmbienteCompilacao ambiente) 00053 throws VariavelJaDeclaradaException, VariavelNaoDeclaradaException, 00054 ClasseNaoDeclaradaException { 00055 return expressao.checaTipo(ambiente); 00056 } 00057 }