Package org.fife.ui.rsyntaxtextarea
Class DefaultTokenFactory
java.lang.Object
org.fife.ui.rsyntaxtextarea.DefaultTokenFactory
- All Implemented Interfaces:
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 Summary
FieldsModifier and TypeFieldDescriptionprivate int
protected static final int
protected static final int
private int
private int
private TokenImpl[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Adds tokens to the internal token list.Returns a null token.createToken
(char[] line, int beg, int end, int startOffset, int type) Returns a token.createToken
(Segment line, int beg, int end, int startOffset, int type) Returns a token.void
Resets the state of this token maker.
-
Field Details
-
size
private int size -
increment
private int increment -
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
Description copied from interface:TokenFactory
Returns a null token.- Specified by:
createToken
in interfaceTokenFactory
- Returns:
- A null token.
-
createToken
Description copied from interface:TokenFactory
Returns a token.- Specified by:
createToken
in interfaceTokenFactory
- 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
Description copied from interface:TokenFactory
Returns a token.- Specified by:
createToken
in interfaceTokenFactory
- 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 theTokenMaker
every time a token list is generated for a new line so the tokens can be reused.- Specified by:
resetAllTokens
in interfaceTokenFactory
-