Class DefaultTokenFactory

java.lang.Object
org.fife.ui.rsyntaxtextarea.DefaultTokenFactory
All Implemented Interfaces:
TokenFactory

class DefaultTokenFactory extends 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 Details

    • size

      private int size
    • increment

      private int increment
    • tokenList

      private TokenImpl[] tokenList
    • currentFreeToken

      private int currentFreeToken
    • DEFAULT_START_SIZE

      protected static final int DEFAULT_START_SIZE
      See Also:
    • DEFAULT_INCREMENT

      protected static final int DEFAULT_INCREMENT
      See Also:
  • Constructor Details

    • 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 Details

    • 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()
      Description copied from interface: TokenFactory
      Returns a null token.
      Specified by:
      createToken in interface TokenFactory
      Returns:
      A null token.
    • createToken

      public TokenImpl createToken(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