public boolean hasNext() 
	{
		if (currentPiped == null)
			return false;
		else if (currentPiped.hasNext())
			return true;
		else if (nextPiped != null)
			return nextPiped.hasNext();
		else if (!in.hasNext())
			return false;
		else while (true)
		{
			pipe.setKey(in.next());
			nextPiped = pipe.execute();
			if (nextPiped.hasNext())
				return true;
			else
			{
				nextPiped.close();
				nextPiped = null;
				if (!in.hasNext())
					return false;
			}
		}
	}