当前页面:
在线文档首页 >
NetBeans API Javadoc (Current Development Version)
TokenPropertyProvider (Lexer) - NetBeans API Javadoc (Current Development Version)
org.netbeans.spi.lexer
Interface TokenPropertyProvider<T extends TokenId>
public interface TokenPropertyProvider<T extends TokenId>
Provides extra properties of a token.
Normally each token has an extra instance of the property provider:
final class MyTokenPropertyProvider implements TokenPropertyProvider {
private final Object value;
TokenPropProvider(Object value) {
this.value = value;
}
public Object getValue (Token token, Object key) {
if ("type".equals(key))
return value;
return null;
}
}
However multiple flyweight instances of the provider may be used to save memory
if there are just several values for a property.
Example of two instances of a provider for boolean property "key":
final class MyTokenPropertyProvider implements TokenPropertyProvider {
static final MyTokenPropertyProvider TRUE = new MyTokenPropertyProvider(Boolean.TRUE);
static final MyTokenPropertyProvider FALSE = new MyTokenPropertyProvider(Boolean.FALSE);
private final Boolean value;
private MyTokenPropertyProvider(Boolean value) {
this.value = value;
}
public Object getValue(Token token, Object key) {
if ("key".equals(key)) {
return value;
}
return null;
}
}
A special kind of token
PropertyToken
allows to carry token properties.
getValue
Object getValue(Token token,
Object key)
- Get value of a token property.
- Parameters:
token
- non-null token for which the property is being retrieved.
It might be useful if the property would be computed dynamically.key
- non-null key for which the value should be retrieved.
- Returns:
- value of the property or null if there is no value for the given key.