00001 package plp.orientadaObjetos1.declaracao.procedimento; 00002 00003 import plp.expressions2.memory.VariavelJaDeclaradaException; 00004 import plp.expressions2.memory.VariavelNaoDeclaradaException; 00005 import plp.orientadaObjetos1.excecao.declaracao.ClasseNaoDeclaradaException; 00006 import plp.orientadaObjetos1.expressao.leftExpression.Id; 00007 import plp.orientadaObjetos1.memoria.AmbienteCompilacaoOO1; 00008 import plp.orientadaObjetos1.memoria.AmbienteExecucaoOO1; 00009 import plp.orientadaObjetos1.util.Tipo; 00013 public class DecParametro { 00017 private Id id; 00021 private Tipo tipo; 00027 public DecParametro(Id id, Tipo tipo){ 00028 this.id = id; 00029 this.tipo = tipo; 00030 } 00035 public Id getId() { 00036 return id; 00037 } 00042 public Tipo getTipo() { 00043 return tipo; 00044 } 00052 public AmbienteExecucaoOO1 elabora(AmbienteExecucaoOO1 ambiente) { 00053 return ambiente; 00054 } 00063 public boolean checaTipo(AmbienteCompilacaoOO1 ambiente)throws ClasseNaoDeclaradaException { 00064 return tipo.eValido(ambiente); 00065 } 00066 00075 public AmbienteCompilacaoOO1 declaraParametro(AmbienteCompilacaoOO1 ambiente) 00076 throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException { 00077 00078 ambiente.map(id, tipo); 00079 return ambiente; 00080 } 00081 }