Class AbstractFileWordList

    • Field Detail

      • DEFAULT_CACHE_PERCENT

        public static final int DEFAULT_CACHE_PERCENT
        Default cache percent.
        See Also:
        Constant Field Values
      • size

        protected int size
        Number of words in the file.
    • Constructor Detail

      • AbstractFileWordList

        public AbstractFileWordList​(RandomAccessFile raf,
                                    boolean caseSensitive,
                                    CharsetDecoder decoder)
        Creates a new abstract file word list from the supplied file.
        Parameters:
        raf - File containing words, one per line.
        caseSensitive - Set to true to create case-sensitive word list, false otherwise.
        decoder - Charset decoder for converting file bytes to characters
    • Method Detail

      • get

        public String get​(int index)
        Description copied from interface: WordList
        Returns the word at the given 0-based index.
        Parameters:
        index - 0-based index.
        Returns:
        word at given index.
      • size

        public int size()
        Description copied from interface: WordList
        Returns the number of words in the list.
        Returns:
        total number of words in list.
      • getFile

        public RandomAccessFile getFile()
        Returns the file backing this list.
        Returns:
        random access file that is backing this list
      • close

        public void close()
                   throws IOException
        Closes the underlying file and make the cache available for garbage collection.
        Throws:
        IOException - if an error occurs closing the file
      • initialize

        protected void initialize​(int cachePercent,
                                  boolean allocateDirect)
                           throws IOException
        Reads words from the backing file to initialize the word list.
        Parameters:
        cachePercent - Percent of file in bytes to use for cache.
        allocateDirect - whether buffers should be allocated with ByteBuffer.allocateDirect(int)
        Throws:
        IllegalArgumentException - if cachePercent is out of range or the words are not sorted correctly according to the comparator
        IOException - on I/O errors reading file data.
      • readWord

        protected String readWord​(int index)
                           throws IOException
        Reads the word from the file at the given index of the word list.
        Parameters:
        index - ith word in the word list
        Returns:
        word at the supplied index
        Throws:
        IOException - on I/O errors
      • seek

        protected abstract void seek​(long offset)
                              throws IOException
        Positions the read head of the backing file at the given byte offset.
        Parameters:
        offset - byte offset into file.
        Throws:
        IOException - on I/O errors seeking.
      • buffer

        protected abstract ByteBuffer buffer()
        Returns the buffer providing the backing file data.
        Returns:
        Buffer around backing file.
      • fill

        protected abstract void fill()
                              throws IOException
        Fills the buffer from the backing file. This method may be a no-op if the buffer contains all file contents.
        Throws:
        IOException - on I/O errors filling buffer.