org.scijava.convert
Class DefaultConverter

java.lang.Object
  extended by org.scijava.AbstractContextual
      extended by org.scijava.plugin.AbstractRichPlugin
          extended by org.scijava.plugin.AbstractTypedPlugin<D>
              extended by org.scijava.plugin.AbstractHandlerPlugin<ConversionRequest>
                  extended by org.scijava.convert.AbstractConverter
                      extended by org.scijava.convert.DefaultConverter
All Implemented Interfaces:
Comparable<Prioritized>, Contextual, Converter, HandlerPlugin<ConversionRequest>, HasPluginInfo, RichPlugin, SciJavaPlugin, SingletonPlugin, TypedPlugin<ConversionRequest>, Prioritized, Typed<ConversionRequest>

public class DefaultConverter
extends AbstractConverter

Default Converter implementation. Provides useful conversion functionality for many common conversion cases.

Author:
Mark Hiner

Constructor Summary
DefaultConverter()
           
 
Method Summary
 boolean canConvert(Class<?> src, Class<?> dest)
          Checks whether objects of the given class can be converted to the specified type.
 boolean canConvert(Class<?> src, Type dest)
          Checks whether objects of the given class can be converted to the specified type.
 boolean canConvert(Object src, Class<?> dest)
          Checks whether the given object's type can be converted to the specified type.
 boolean canConvert(Object src, Type dest)
          Checks whether the given object's type can be converted to the specified type.
<T> T
convert(Object src, Class<T> dest)
          Converts the given object to an object of the specified type.
 Object convert(Object src, Type dest)
          As Converter.convert(Object, Class) but capable of creating and populating multi-element objects (Collections and array types).
 
Methods inherited from class org.scijava.convert.AbstractConverter
canConvert, convert, getType, supports
 
Methods inherited from class org.scijava.plugin.AbstractRichPlugin
compareTo, getInfo, getPriority, setInfo, setPriority, toString
 
Methods inherited from class org.scijava.AbstractContextual
context, getContext, setContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.scijava.Contextual
context, getContext, setContext
 
Methods inherited from interface org.scijava.Prioritized
getPriority, setPriority
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface org.scijava.plugin.HasPluginInfo
getInfo, setInfo
 

Constructor Detail

DefaultConverter

public DefaultConverter()
Method Detail

canConvert

public boolean canConvert(Class<?> src,
                          Type dest)
Description copied from interface: Converter
Checks whether objects of the given class can be converted to the specified type.

See Also:
Converter.convert(Object, Type)

canConvert

public boolean canConvert(Class<?> src,
                          Class<?> dest)
Description copied from interface: Converter
Checks whether objects of the given class can be converted to the specified type.

See Also:
Converter.convert(Object, Class)

canConvert

public boolean canConvert(Object src,
                          Type dest)
Description copied from interface: Converter
Checks whether the given object's type can be converted to the specified type.

Note that this does not necessarily entail that Converter.convert(Object, Type) on that specific object will succeed. For example: canConvert("5.1", int.class) will return true because a String can in general be converted to an int, but calling convert("5.1", int.class) will throw a NumberFormatException when the conversion is actually attempted via the Integer.Integer(String) constructor.

See Also:
Converter.convert(Object, Type)

canConvert

public boolean canConvert(Object src,
                          Class<?> dest)
Description copied from interface: Converter
Checks whether the given object's type can be converted to the specified type.

Note that this does not necessarily entail that Converter.convert(Object, Class) on that specific object will succeed. For example: canConvert("5.1", int.class) will return true because a String can in general be converted to an int, but calling convert("5.1", int.class) will throw a NumberFormatException when the conversion is actually attempted via the Integer.Integer(String) constructor.

See Also:
Converter.convert(Object, Class)

convert

public Object convert(Object src,
                      Type dest)
Description copied from interface: Converter
As Converter.convert(Object, Class) but capable of creating and populating multi-element objects (Collections and array types). If a single element type is provided, it will be converted the same as Converter.convert(Object, Class). If a multi-element type is detected, then the value parameter will be interpreted as potential collection of values. An appropriate container will be created, and the full set of values will be type converted and added.

NB: This method should be capable of creating any array type, but if a Collection interface or abstract class is provided we can only make a best guess as to what container type to instantiate. Defaults are provided for Set and List subclasses.

Parameters:
src - The object to convert.
dest - Type to which the object should be converted.

convert

public <T> T convert(Object src,
                     Class<T> dest)
Description copied from interface: Converter
Converts the given object to an object of the specified type. The object is casted directly if possible, or else a new object is created using the destination type's public constructor that takes the original object as input (except when converting to String, which uses the Object.toString() method instead). In the case of primitive types, returns an object of the corresponding wrapped type. If the destination type does not have an appropriate constructor, returns null.

Type Parameters:
T - Type to which the object should be converted.
Parameters:
src - The object to convert.
dest - Type to which the object should be converted.


Copyright © 2009–2014 SciJava. All rights reserved.