001    package org.apache.myfaces.tobago.convert;
002    
003    /*
004     * Licensed to the Apache Software Foundation (ASF) under one or more
005     * contributor license agreements.  See the NOTICE file distributed with
006     * this work for additional information regarding copyright ownership.
007     * The ASF licenses this file to You under the Apache License, Version 2.0
008     * (the "License"); you may not use this file except in compliance with
009     * the License.  You may obtain a copy of the License at
010     *
011     *      http://www.apache.org/licenses/LICENSE-2.0
012     *
013     * Unless required by applicable law or agreed to in writing, software
014     * distributed under the License is distributed on an "AS IS" BASIS,
015     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016     * See the License for the specific language governing permissions and
017     * limitations under the License.
018     */
019    
020    /*
021     * Created 09.12.2003 15:52:53.
022     * $Id: CurrencyConverter.java 578592 2007-09-23 18:51:32Z bommel $
023     */
024    
025    import javax.faces.component.UIComponent;
026    import javax.faces.context.FacesContext;
027    import javax.faces.convert.Converter;
028    import javax.faces.convert.ConverterException;
029    import java.util.Currency;
030    
031    @org.apache.myfaces.tobago.apt.annotation.Converter(forClass = "java.util.Currency")
032    public class CurrencyConverter implements Converter {
033    
034      public Object getAsObject(FacesContext facesContext, UIComponent component,
035          String string)
036          throws ConverterException {
037        return Currency.getInstance(string);
038      }
039    
040      public String getAsString(FacesContext facesContext, UIComponent component,
041          Object object)
042          throws ConverterException {
043        try {
044          return ((Currency) object).getCurrencyCode();
045        } catch (ClassCastException e) {
046          throw new ConverterException("object='" + object + "'", e);
047        }
048      }
049    }
050