站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > NetBeans API Javadoc (Current Development Version)

TokenPropertyProvider (Lexer) - NetBeans API Javadoc (Current Development Version)

org.netbeans.modules.lexer/2 1.19.0 1

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.


Method Summary
 Object getValue(Token token, Object key)
          Get value of a token property.
 

Method Detail

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.

org.netbeans.modules.lexer/2 1.19.0 1

Built on May 28 2007.  |  Portions Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.