org.apache.lucene.search.highlight
Class GradientFormatter

java.lang.Object
  extended by org.apache.lucene.search.highlight.GradientFormatter
All Implemented Interfaces:
Formatter
Direct Known Subclasses:
SpanGradientFormatter

public class GradientFormatter
extends Object
implements Formatter

Formats text with different color intensity depending on the score of the term.


Field Summary
protected  boolean highlightBackground
           
protected  boolean highlightForeground
           
 
Constructor Summary
GradientFormatter(float maxScore, String minForegroundColor, String maxForegroundColor, String minBackgroundColor, String maxBackgroundColor)
          Sets the color range for the IDF scores
 
Method Summary
protected  String getBackgroundColorString(float score)
           
protected  String getForegroundColorString(float score)
           
static int hexToInt(String hex)
          Converts a hex string into an int.
 String highlightTerm(String originalText, TokenGroup tokenGroup)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

highlightForeground

protected boolean highlightForeground

highlightBackground

protected boolean highlightBackground
Constructor Detail

GradientFormatter

public GradientFormatter(float maxScore,
                         String minForegroundColor,
                         String maxForegroundColor,
                         String minBackgroundColor,
                         String maxBackgroundColor)
Sets the color range for the IDF scores

Parameters:
maxScore - The score (and above) displayed as maxColor (See QueryScorer.getMaxWeight which can be used to calibrate scoring scale)
minForegroundColor - The hex color used for representing IDF scores of zero eg #FFFFFF (white) or null if no foreground color required
maxForegroundColor - The largest hex color used for representing IDF scores eg #000000 (black) or null if no foreground color required
minBackgroundColor - The hex color used for representing IDF scores of zero eg #FFFFFF (white) or null if no background color required
maxBackgroundColor - The largest hex color used for representing IDF scores eg #000000 (black) or null if no background color required
Method Detail

highlightTerm

public String highlightTerm(String originalText,
                            TokenGroup tokenGroup)
Specified by:
highlightTerm in interface Formatter
Parameters:
originalText - The section of text being considered for markup
tokenGroup - contains one or several overlapping Tokens along with their scores and positions.

getForegroundColorString

protected String getForegroundColorString(float score)

getBackgroundColorString

protected String getBackgroundColorString(float score)

hexToInt

public static final int hexToInt(String hex)
Converts a hex string into an int. Integer.parseInt(hex, 16) assumes the input is nonnegative unless there is a preceding minus sign. This method reads the input as twos complement instead, so if the input is 8 bytes long, it will correctly restore a negative int produced by Integer.toHexString() but not necessarily one produced by Integer.toString(x,16) since that method will produce a string like '-FF' for negative integer values.

Parameters:
hex - A string in capital or lower case hex, of no more then 16 characters.
Throws:
NumberFormatException - if the string is more than 16 characters long, or if any character is not in the set [0-9a-fA-f]