org.apache.jackrabbit.core.query.lucene
Class DecimalField

java.lang.Object
  extended by org.apache.jackrabbit.core.query.lucene.DecimalField

public class DecimalField
extends Object

The DecimalField class is a utility to convert java.math.BigDecimal values to String values that are lexicographically sortable according to the decimal value.

The string format uses the characters '0' to '9' and consists of:

 { value signum +2 }
 { exponent signum +2 }
 { exponent length -1 }
 { exponent value }
 { value (-1 if inverted) }
 
Only the signum is encoded if the value is zero. The exponent is not encoded if zero. Negative values are "inverted" character by character ('0' -> 9, '1' -> '8', and so on). The same applies to the exponent.

Examples: 0 => "2" 2 => "322" (signum 1; exponent 0; value 2) 120 => "330212" (signum 1; exponent signum 1, length 1, value 2; value 12). -1 => "179" (signum -1, rest inverted; exponent 0; value 1 (-1, inverted).

Values between BigDecimal(BigInteger.ONE, Integer.MIN_VALUE) and BigDecimal(BigInteger.ONE, Integer.MAX_VALUE) are supported.


Constructor Summary
DecimalField()
           
 
Method Summary
static String decimalToString(BigDecimal value)
          Convert a BigDecimal to a String.
static BigDecimal stringToDecimal(String value)
          Convert a String to a BigDecimal.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DecimalField

public DecimalField()
Method Detail

decimalToString

public static String decimalToString(BigDecimal value)
Convert a BigDecimal to a String.

Parameters:
value - the BigDecimal
Returns:
the String

stringToDecimal

public static BigDecimal stringToDecimal(String value)
Convert a String to a BigDecimal.

Parameters:
value - the String
Returns:
the BigDecimal


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.