package javamoneyexamples.jsf.money.converter; import javax.faces.component.UIComponent; import javax.faces.context.FacesContext; import javax.faces.convert.Converter; import javax.faces.convert.FacesConverter; import javax.money.CurrencyUnit; import javax.money.MonetaryAmount; import javax.money.Monetary; import org.javamoney.moneta.Money; @FacesConverter("outMonetaryAmount") public class OutMonetaryAmountConverter implements Converter { private static final CurrencyUnit DOLLAR = Monetary.getCurrency("USD"); @Override public Object getAsObject(FacesContext context, UIComponent component, String value) { return Money.of(Double.parseDouble(value), DOLLAR); } @Override public String getAsString(FacesContext context, UIComponent component, Object value) { if (MonetaryAmount.class.isInstance(value)) { return new MonetaryFormatTable().format(MonetaryAmount.class.cast(value)); } return null; } }