private void processNextPage ( ) throws IOException { int bitOffset = sasFileProperties . isU64 ( ) ? PAGE_BIT_OFFSET_X64 : PAGE_BIT_OFFSET_X86 ; currentPageDataSubheaderPointers . clear ( ) ; try { sasFileStream . readFully ( cachedPage , 0 , sasFileProperties . getPageLength ( ) ) ; } catch ( EOFException ex ) { eof = true ; return ; } readPageHeader ( ) ; if ( currentPageType == PAGE_META_TYPE_1 || currentPageType == PAGE_META_TYPE_2 || currentPageType == PAGE_AMD_TYPE ) { List < SubheaderPointer > subheaderPointers = new ArrayList < SubheaderPointer > ( ) ; processPageMetadata ( bitOffset , subheaderPointers ) ; if ( currentPageType == PAGE_AMD_TYPE ) { processMissingColumnInfo ( ) ; } } }
Put next page to cache and read it s header .