Class DefaultTokenFactory

  • All Implemented Interfaces:
    TokenFactory

    class DefaultTokenFactory
    extends java.lang.Object
    implements TokenFactory
    This class generates tokens for a TokenMaker. This class is here because it reuses tokens when they aren't needed anymore to prevent This class doesn't actually create new tokens every time createToken is called. Instead, it internally keeps a stack of available already-created tokens. When more tokens are needed to properly display a line, more tokens are added to the available stack. This saves from needless repetitive memory allocation. However, it makes it IMPERATIVE that users call resetTokenList when creating a new token list so that the token maker can keep an accurate list of available tokens.

    NOTE: This class should only be used by TokenMaker; nobody else needs it!

    Version:
    0.1
    • Field Detail

      • size

        private int size
      • increment

        private int increment
      • currentFreeToken

        private int currentFreeToken
    • Constructor Detail

      • DefaultTokenFactory

        DefaultTokenFactory()
        Constructor.
      • DefaultTokenFactory

        DefaultTokenFactory​(int size,
                            int increment)
        Constructor.
        Parameters:
        size - The initial number of tokens in this factory.
        increment - How many tokens to increment by when the stack gets empty.
    • Method Detail

      • augmentTokenList

        private void augmentTokenList()
        Adds tokens to the internal token list. This is called whenever a request is made and no more tokens are available.
      • createToken

        public TokenImpl createToken​(javax.swing.text.Segment line,
                                     int beg,
                                     int end,
                                     int startOffset,
                                     int type)
        Description copied from interface: TokenFactory
        Returns a token.
        Specified by:
        createToken in interface TokenFactory
        Parameters:
        line - The segment from which to get the token's text.
        beg - The starting offset of the token's text in the segment.
        end - The ending offset of the token's text in the segment.
        startOffset - The offset in the document of the token.
        type - The type of token.
        Returns:
        The token.
      • createToken

        public TokenImpl createToken​(char[] line,
                                     int beg,
                                     int end,
                                     int startOffset,
                                     int type)
        Description copied from interface: TokenFactory
        Returns a token.
        Specified by:
        createToken in interface TokenFactory
        Parameters:
        line - The char array from which to get the token's text.
        beg - The starting offset of the token's text in the char array.
        end - The ending offset of the token's text in the char array.
        startOffset - The offset in the document of the token.
        type - The type of token.
        Returns:
        The token.
      • resetAllTokens

        public void resetAllTokens()
        Resets the state of this token maker. This method should be called by the TokenMaker every time a token list is generated for a new line so the tokens can be reused.
        Specified by:
        resetAllTokens in interface TokenFactory