
org.squirrelframework.foundation.fsm.impl.ConverterProviderImpl Maven / Gradle / Ivy
package org.squirrelframework.foundation.fsm.impl;
import com.google.common.collect.Maps;
import org.squirrelframework.foundation.component.SquirrelProvider;
import org.squirrelframework.foundation.fsm.Converter;
import org.squirrelframework.foundation.fsm.ConverterProvider;
import org.squirrelframework.foundation.fsm.GeneralConverter;
import java.util.Map;
public class ConverterProviderImpl implements ConverterProvider {
private Map, Converter>> converterRegistry = Maps.newHashMap();
@Override
public void register(Class> clazz, Class extends Converter>> converterClass) {
Converter> converter = SquirrelProvider.getInstance().newInstance(converterClass);
register(clazz, converter);
}
@Override
public void register(Class> clazz, Converter> converter) {
converterRegistry.put(clazz, converter);
}
@Override
public void unregister(Class> clazz) {
converterRegistry.remove(clazz);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public Converter getConverter(Class clazz) {
Converter converter = (Converter)converterRegistry.get(clazz);
if(converter==null) {
converter = new GeneralConverter(clazz);
}
return converter;
}
@Override
public void clearRegistry() {
converterRegistry.clear();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy