All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cantaa.util.wicket.converter.AbstractAmountConverter Maven / Gradle / Ivy

There is a newer version: 2.0
Show newest version
package com.cantaa.util.wicket.converter;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

import org.apache.wicket.util.convert.converter.AbstractDecimalConverter;
import org.apache.wicket.util.convert.converter.BigDecimalConverter;

import com.cantaa.util.type.Amount;


/**
 * Abstract Converter for Amounts
 * @author Hans Lesmeister
 */
public abstract class AbstractAmountConverter> extends AbstractDecimalConverter {

    private BigDecimalConverter wrappedConverter;

    public AbstractAmountConverter() {
        wrappedConverter = new BigDecimalConverter();
    }

    @Override
    protected NumberFormat newNumberFormat(Locale locale) {
        DecimalFormat instance = getDecimalFormatInstance(locale);

        // Get rid of the Euro-Sign
        instance.setPositivePrefix("");
        instance.setPositiveSuffix("");
        instance.setNegativePrefix("-");
        instance.setNegativeSuffix("");
        instance.setMultiplier(1);

        return instance;
    }

    protected abstract DecimalFormat getDecimalFormatInstance(Locale locale);

    @Override
    public T convertToObject(String value, Locale locale) {
        return createAmount(wrappedConverter.convertToObject(value, locale));
    }

    protected abstract T createAmount(BigDecimal value);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy