001/*****************************************************************************
002 * Copyright (C) PicoContainer Organization. All rights reserved.            *
003 * ------------------------------------------------------------------------- *
004 * The software in this package is published under the terms of the BSD      *
005 * style license a copy of which has been included with this distribution in *
006 * the LICENSE.txt file.                                                     *
007 *****************************************************************************/
008package org.picocontainer;
009
010import java.lang.reflect.Type;
011
012/**
013 * A facade for a collection of converters that provides string-to-type conversions. 
014 * 
015 * @author Paul Hammant
016 * @author Michael Rimov
017 */
018public interface Converters {
019    
020    /**
021     * Returns true if a converters is available to convert to the given object type
022     * 
023     * @param type the object Type to convert to
024     * @return true if the type can be converted to
025     */
026    boolean canConvert(Type type);
027    
028    /**
029     * Converts a particular string value into the target type
030     * 
031     * @param value the String value to convert
032     * @param type the object Type to convert to
033     * @return The converted Object instance
034     */
035    Object convert(String value, Type type);
036}