@Override public boolean hasNext(){
  if (!isOpen)   return false;
  if (m_src == null)   compile(realSource);
  boolean ret=m_src.hasNext();
  if (!ret) {
    close();
  }
  return ret;
}

@ Override public boolean hasNext ( ) { if ( ! isOpen ) return false ; if ( m_src == null ) compile ( realSource ) ; boolean ret = m_src . hasNext ( ) ; if ( ! ret ) { close ( ) ; } return ret ; }
delegates hasnext request to source iterator
