docs: @Override
  	public boolean hasNext() {
  		if (isLoopExitCondition()) {
  			return false;
  		}
  		for (;;) {
  			if (workingDirectory.files.length == 0) {
  				pop();
  			}
  			if (isLoopExitCondition()) {
  				return false;
  			}
  			workingDirectory.currentFile = workingDirectory.files[workingDirectory.index++];
  			if (!workingDirectory.currentFile.isDirectory()) {
  				break;
  			}
  			push(workingDirectory.currentFile);
  		}
  		return true;
  	}