/* * Copyright 2010, 2011 Chris Pheby * * 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. */ package org.jadira.bindings.core.general.binding; import org.jadira.bindings.core.api.Binding; import org.joda.convert.StringConverter; /** * Binding that adapts a Joda Convert {@link StringConverter} * @param <S> The type this Binding converts to and from a String */ public class JodaConvertStringBinding<S> implements Binding<S, String>, StringConverter<S> { private Class<S> boundClass; private StringConverter<S> converter; /** * Creates a new instance * @param boundClass The class that can be converted to and from a String * @param converter The StringConverter instance to be wrapped */ public JodaConvertStringBinding(Class<S> boundClass, StringConverter<S> converter) { this.boundClass = boundClass; this.converter = converter; } /** * {@inheritDoc} */ /* @Override */ public String marshal(S object) { return converter.convertToString(object); } /** * {@inheritDoc} */ /* @Override */ public S unmarshal(String inputString) { return converter.convertFromString(boundClass, inputString); } /** * {@inheritDoc} */ /* @Override */ public String convertToString(S object) { return converter.convertToString(object); } /** * {@inheritDoc} */ /* @Override */ public S convertFromString(Class<? extends S> boundClass, String inputString) { return converter.convertFromString(boundClass, inputString); } /** * {@inheritDoc} */ /* @Override */ public Class<S> getBoundClass() { return boundClass; } /** * {@inheritDoc} */ /* @Override */ public Class<String> getTargetClass() { return String.class; } }