Package ariba.ui.validation

Source Code of ariba.ui.validation.AWVBigDecimalFormatter

/*
    Copyright 1996-2008 Ariba, Inc.

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at
        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    $Id: //ariba/platform/ui/widgets/ariba/ui/validation/AWVBigDecimalFormatter.java#6 $
*/

package ariba.ui.validation;

import ariba.util.formatter.BigDecimalFormatter;
import ariba.util.formatter.DecimalParseInfo;
import ariba.ui.aribaweb.util.AWFormatter;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.util.Locale;

public final class AWVBigDecimalFormatter extends AWFormatter
{
    private DecimalFormat _decimalFormat;
    private final int _scale;
    private final String _formatPattern;
    private Locale _locale;

    public AWVBigDecimalFormatter (String formatPattern, int scale, Locale locale)
    {
        super();
        _formatPattern = formatPattern;
        _scale = scale;
        _locale = locale;

        if (locale != null) {
           _decimalFormat = (DecimalFormat)DecimalFormat.getInstance(locale);
        }
        else {
            _decimalFormat = new DecimalFormat(_formatPattern);
        }

        if (_formatPattern != null) {
            _decimalFormat.applyPattern(_formatPattern);
        }

    }

    /**
        Returns a formatted string for this BigDecimal <code>bigDecimalValue</code> in
        the locale specified in the constructor.  Trailing decimal zeros are removed from the
        string.

        @param bigDecimalValue <code>bigDecimalValue</code> to convert to a string value

        @return Returns a string representation of the <code>bigDecimalValue</code>
    */
    public String format (Object bigDecimalValue)
    {
        // coerce non-BigDecimal Number objects to something we can format
        if (!(bigDecimalValue instanceof BigDecimal) && (bigDecimalValue instanceof Number)) {
            bigDecimalValue = new BigDecimal(((Number)bigDecimalValue).doubleValue());
        }

        return BigDecimalFormatter.getStringValue((BigDecimal)bigDecimalValue, _scale, _locale, _decimalFormat);
    }

    /**
        Returns a big decimal object for this String <code>stringToParse</code>

        @param stringToParse <code>stringToParse</code>

        @return Returns a Object representation of the <code>stringToParse</code>
    */
    public Object parseObject (String stringToParse) throws ParseException
    {
        Object bigDecimal = null;
        DecimalParseInfo decimalParseInfo = null;
        if ((stringToParse != null) && (stringToParse.length() > 0)) {
            decimalParseInfo = BigDecimalFormatter.parseBigDecimal(stringToParse, _decimalFormat);
            bigDecimal =  decimalParseInfo.number;
        }
        return bigDecimal;
    }
}
TOP

Related Classes of ariba.ui.validation.AWVBigDecimalFormatter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.