package org.tynamo.services;
import org.apache.commons.collections.BidiMap;
import org.apache.commons.collections.bidimap.DualHashBidiMap;
import org.apache.tapestry5.ioc.services.Coercion;
import java.util.Map;
public class EntityCoercerServiceImpl implements EntityCoercerService
{
private BidiMap aliases;
public EntityCoercerServiceImpl(Map<String, Class> aliases)
{
this.aliases = new DualHashBidiMap(aliases);
}
public String classToString(Class clazz)
{
return (String) aliases.inverseBidiMap().get(clazz);
}
public Class stringToClass(String simpleName)
{
return (Class) aliases.get(simpleName);
}
}
class ClassToStringCoercion implements Coercion<Class, String>
{
EntityCoercerService entityCoercerService;
public ClassToStringCoercion(final EntityCoercerService entityCoercerService)
{
this.entityCoercerService = entityCoercerService;
}
public String coerce(Class clazz)
{
return entityCoercerService.classToString(clazz);
}
}
class StringToClassCoercion implements Coercion<String, Class>
{
EntityCoercerService entityCoercerService;
public StringToClassCoercion(final EntityCoercerService entityCoercerService)
{
this.entityCoercerService = entityCoercerService;
}
public Class coerce(String simpleName)
{
return entityCoercerService.stringToClass(simpleName);
}
}