org.apache.commons.validator.routines

Class PercentValidator

Implemented Interfaces:
Serializable

public class PercentValidator
extends BigDecimalValidator

Percentage Validation and Conversion routines (java.math.BigDecimal).

This is one implementation of a percent validator that has the following features:

However any of the number validators can be used for percent validation. For example, if you wanted a percent validator that converts to a java.lang.Float then you can simply instantiate an FloatValidator with the appropriate format type:

... = new FloatValidator(false, FloatValidator.PERCENT_FORMAT);

Pick the appropriate validator, depending on the type (i.e Float, Double or BigDecimal) you want the percent converted to. Please note, it makes no sense to use one of the validators that doesn't handle fractions (i.e. byte, short, integer, long and BigInteger) since percentages are converted to fractions (i.e 50% is converted to 0.5).

Version:
$Revision: 386637 $ $Date: 2006-03-17 13:22:26 +0000 (Fri, 17 Mar 2006) $
Since:
Validator 1.3.0

Field Summary

private static char
PERCENT_SYMBOL
DecimalFormat's percent (thousand multiplier) symbol
private static BigDecimal
POINT_ZERO_ONE
private static PercentValidator
VALIDATOR

Fields inherited from class org.apache.commons.validator.routines.BigDecimalValidator

VALIDATOR

Fields inherited from class org.apache.commons.validator.routines.AbstractNumberValidator

CURRENCY_FORMAT, PERCENT_FORMAT, STANDARD_FORMAT, allowFractions, formatType

Fields inherited from class org.apache.commons.validator.routines.AbstractFormatValidator

strict

Constructor Summary

PercentValidator()
Construct a strict instance.
PercentValidator(boolean strict)
Construct an instance with the specified strict setting.

Method Summary

static BigDecimalValidator
getInstance()
Return a singleton instance of this validator.
protected Object
parse(String value, Format formatter)
Parse the value with the specified Format.

Methods inherited from class org.apache.commons.validator.routines.BigDecimalValidator

getInstance, isInRange, maxValue, minValue, processParsedValue, validate, validate, validate, validate

Methods inherited from class org.apache.commons.validator.routines.AbstractNumberValidator

determineScale, getFormat, getFormat, getFormatType, isAllowFractions, isInRange, isValid, maxValue, minValue, parse, processParsedValue

Methods inherited from class org.apache.commons.validator.routines.AbstractFormatValidator

format, format, format, format, format, getFormat, isStrict, isValid, isValid, isValid, isValid, parse, processParsedValue

Field Details

PERCENT_SYMBOL

private static final char PERCENT_SYMBOL
DecimalFormat's percent (thousand multiplier) symbol
Field Value:
'%'

POINT_ZERO_ONE

private static final BigDecimal POINT_ZERO_ONE

VALIDATOR

private static final PercentValidator VALIDATOR

Constructor Details

PercentValidator

public PercentValidator()
Construct a strict instance.

PercentValidator

public PercentValidator(boolean strict)
Construct an instance with the specified strict setting.
Parameters:
strict - true if strict Format parsing should be used.

Method Details

getInstance

public static BigDecimalValidator getInstance()
Return a singleton instance of this validator.
Overrides:
getInstance in interface BigDecimalValidator
Returns:
A singleton instance of the PercentValidator.

parse

protected Object parse(String value,
                       Format formatter)
Parse the value with the specified Format.

This implementation is lenient whether the currency symbol is present or not. The default NumberFormat behaviour is for the parsing to "fail" if the currency symbol is missing. This method re-parses with a format without the currency symbol if it fails initially.

Overrides:
parse in interface AbstractFormatValidator
Parameters:
value - The value to be parsed.
formatter - The Format to parse the value with.
Returns:
The parsed value if valid or null if invalid.

Copyright (c) 2001-2004 Apache Software Foundation