org.java.plugin.extension.converter
Class ConverterGraph
java.lang.Object
org.java.plugin.extension.converter.ConverterGraph
public class ConverterGraph
- extends java.lang.Object
This class can be used to find instances of Converter
that
can be used to convert one data type into the other.
The current implementation is stable for classes but will not work right for Collections.
The implementations builds a directed graph where edges are Converter and Vertices are the Types. To
find a proper converter, we do a shortest path search (using Dijkstras algorithm). If the path length
is > 1 we combine the converter into a converter pipeline.
WARNING : This is under development and the API might change
- Author:
- Thasso Griebel (thasso.griebel@gmail.com)
Method Summary |
Converter |
getConverter(java.lang.reflect.Type source,
java.lang.reflect.Type target)
|
java.util.List<java.lang.reflect.Type> |
getTargetTypes()
Returns all target types. |
java.util.List<java.lang.reflect.Type> |
getTargetTypes(java.lang.reflect.Type source)
|
protected boolean |
isSource(java.lang.reflect.Type t)
|
protected boolean |
isTarget(java.lang.reflect.Type t)
|
boolean |
registerConverter(java.lang.reflect.Type sourceType,
java.lang.reflect.Type targetType,
Converter converter)
|
protected java.lang.reflect.Type |
toClassSource(java.lang.Class t)
|
protected java.lang.reflect.Type |
toClassTarget(java.lang.Class t)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ConverterGraph
public ConverterGraph()
registerConverter
public boolean registerConverter(java.lang.reflect.Type sourceType,
java.lang.reflect.Type targetType,
Converter converter)
isTarget
protected boolean isTarget(java.lang.reflect.Type t)
isSource
protected boolean isSource(java.lang.reflect.Type t)
toClassTarget
protected java.lang.reflect.Type toClassTarget(java.lang.Class t)
toClassSource
protected java.lang.reflect.Type toClassSource(java.lang.Class t)
getConverter
public Converter getConverter(java.lang.reflect.Type source,
java.lang.reflect.Type target)
getTargetTypes
public java.util.List<java.lang.reflect.Type> getTargetTypes()
- Returns all target types. That is, all types with indegree > 0.
- Returns:
- nodes with indegree > 1
getTargetTypes
public java.util.List<java.lang.reflect.Type> getTargetTypes(java.lang.reflect.Type source)
Copyright © 2010. All Rights Reserved.