001/* 002 * JRecordBind, fixed-length file (un)marshaller 003 * Copyright 2019, Federico Fissore, and individual contributors. See 004 * AUTHORS.txt in the distribution for a full listing of individual 005 * contributors. 006 * 007 * This is free software; you can redistribute it and/or modify it 008 * under the terms of the GNU Lesser General Public License as 009 * published by the Free Software Foundation; either version 2.1 of 010 * the License, or (at your option) any later version. 011 * 012 * This software is distributed in the hope that it will be useful, 013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 015 * Lesser General Public License for more details. 016 * 017 * You should have received a copy of the GNU Lesser General Public 018 * License along with this software; if not, write to the Free 019 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 020 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 021 */ 022 023package org.fissore.jrecordbind; 024 025/** 026 * Used to convert a String to an appropriate object and an object to its String representation. Must be stateless.<br> 027 * <p> 028 * See {@link org.fissore.jrecordbind.converters} for the bundled ones. 029 */ 030public interface Converter { 031 032 /** 033 * Converts a String into an object, e.g. String 19790518 to Date May 18th, 1979 034 * 035 * @param value the string to convert 036 * @return the converted object 037 */ 038 Object convert(String value); 039 040 /** 041 * Converts an object into string, e.g. Date May 18th, 1979 to String 19790518 042 * 043 * @param value the object to convert 044 * @return a string rapresentation of the object 045 */ 046 String toString(Object value); 047 048}