boolean () { obtainNext(); if (!myCurrentIsValid) return false; boolean value = isCurrentPassesFilter(); while (!value && myDelegate.hasNext()) { Dom next = myDelegate.next(); setCurrent(next); value = isCurrentPassesFilter(); } return value; }