question: call only after doneaddingstartiteration has been called . concode_field_sep int maxValuesInRam concode_elem_sep boolean isCurrentRecord concode_elem_sep DataInputStream is concode_elem_sep long peekValue concode_elem_sep int iterationIndex concode_elem_sep boolean cleanedUp concode_elem_sep PriorityQueue<PeekFileValueIterator> priorityQueue concode_elem_sep File[] tmpDir concode_elem_sep int numValuesInRam concode_elem_sep List<File> files concode_elem_sep File file concode_elem_sep long currentRecord concode_elem_sep int MAX_ITEMS_IN_RAM concode_elem_sep boolean hasPeekedValue concode_elem_sep FileValueIterator underlyingIterator concode_elem_sep long[] ramValues concode_elem_sep boolean doneAdding concode_elem_sep int SIZEOF concode_field_sep void add concode_elem_sep long next concode_elem_sep long next concode_elem_sep long next concode_elem_sep void doneAddingStartIteration concode_elem_sep int compare concode_elem_sep void cleanup concode_elem_sep void spillToDisk concode_elem_sep void close concode_elem_sep void close concode_elem_sep long peek
target: boolean function ( ) { if ( ! doneAdding || cleanedUp ) { throw new IllegalStateException ( ) ; } if ( this . ramValues != null ) { return this . iterationIndex < numValuesInRam ; } else { return ! priorityQueue . isEmpty ( ) ; } }