001/* 002 @license.text@ 003 */ 004package com.hammurapi.convert; 005 006import com.hammurapi.common.Context; 007 008/** 009 * Part of composite converters which converts one type to another. 010 * @author Pavel Vlasov 011 * 012 * @version $Revision: 1.1 $ 013 */ 014public interface AtomicConverter<S, T> { 015 016 /** 017 * @return Type which converter converts from. 018 */ 019 Class<S> getSourceType(); 020 021 /** 022 * @return Type which converter converts to. 023 */ 024 Class<? extends T> getTargetType(); 025 026 /** 027 * Converts object to target type. 028 * @param source Source object. 029 * @param master Master converter to delegate conversion 030 * of object parts. 031 * @return Converted object. 032 */ 033 T convert(S source, Converter master, Context context, ClassLoader classLoader); 034}