@Override
  public void funcExecGuard(EventBESA ebesa) {
    DataUpdatePeaton data = (DataUpdatePeaton) ebesa.getData();
    AgentBESA agent = this.getAgent();
    EstadoPiso estado = (EstadoPiso) agent.getState();
    String sender = data.sender;

    Point posicion = new Point();
    posicion.x = data.posX;
    posicion.y = data.posY;
    ClassElemento estadoCasilla = estado.ObtenerEstadoCasilla(posicion.x, posicion.y, sender);

    boolean isDesocupado = false;
    if (TipoElemento.IsAgent(estadoCasilla.tipo) == false
        && estadoCasilla.tipo != TipoElemento.Ninguno) isDesocupado = true;

    if (isDesocupado) {
      boolean result = estado.ActualizarAgente(data.sender, posicion, null);
      if (result == false) {
        ClassLogger.LogMsg("No se encuentra el nombre del agente en la lista: " + sender);
        isDesocupado = false;
      }
    }

    DataUpdatePeatonResult dataEvent = new DataUpdatePeatonResult();
    dataEvent.sender = agent.getAlias();
    dataEvent.resultado = isDesocupado;
    dataEvent.posX = posicion.x;
    dataEvent.posY = posicion.y;

    EventBESA event = new EventBESA(GuardaUpdatePeatonResult.class.getName(), dataEvent);
    try {
      AgHandlerBESA ah = agent.getAdmLocal().getHandlerByAlias(sender);
      ah.sendEvent(event);
    } catch (ExceptionBESA e) {
      ReportBESA.error(e);
    }
  }