/**
* Copyright (c) 2010-2016 by the respective copyright holders.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.openhab.binding.weather.internal.converter;
import java.util.HashMap;
import java.util.Map;
import org.openhab.binding.weather.internal.converter.property.DateConverter;
import org.openhab.binding.weather.internal.converter.property.DoubleConverter;
import org.openhab.binding.weather.internal.converter.property.FeetConverter;
import org.openhab.binding.weather.internal.converter.property.FractionIntegerConverter;
import org.openhab.binding.weather.internal.converter.property.FullUtcDateConverter;
import org.openhab.binding.weather.internal.converter.property.IntegerConverter;
import org.openhab.binding.weather.internal.converter.property.JsonStandardDateConverter;
import org.openhab.binding.weather.internal.converter.property.MultiIdConverter;
import org.openhab.binding.weather.internal.converter.property.PercentIntegerConverter;
import org.openhab.binding.weather.internal.converter.property.PressureTrendConverter;
import org.openhab.binding.weather.internal.converter.property.SimpleDateConverter;
import org.openhab.binding.weather.internal.converter.property.StringConverter;
import org.openhab.binding.weather.internal.converter.property.ThreeHoursDoubleConverter;
import org.openhab.binding.weather.internal.converter.property.UnixDateConverter;
import org.openhab.binding.weather.internal.converter.property.UtcDateConverter;
import org.openhab.binding.weather.internal.converter.property.WindMpsConverter;
/**
* A factory for creating converters.
*
* @author Gerhard Riegler
* @since 1.6.0
*/
public class ConverterFactory {
private static Map<ConverterType, Converter<?>> converters = new HashMap<ConverterType, Converter<?>>();
static {
addConverter(new DoubleConverter());
addConverter(new IntegerConverter());
addConverter(new StringConverter());
addConverter(new UnixDateConverter());
addConverter(new PercentIntegerConverter());
addConverter(new FractionIntegerConverter());
addConverter(new UtcDateConverter());
addConverter(new DateConverter());
addConverter(new FullUtcDateConverter());
addConverter(new SimpleDateConverter());
addConverter(new MultiIdConverter());
addConverter(new WindMpsConverter());
addConverter(new ThreeHoursDoubleConverter());
addConverter(new PressureTrendConverter());
addConverter(new JsonStandardDateConverter());
addConverter(new FeetConverter());
}
/**
* Add the converter instance to the cache.
*/
private static void addConverter(Converter<?> converter) {
converters.put(converter.getType(), converter);
}
/**
* Returns a converter specified by the type.
*/
public static Converter<?> getConverter(ConverterType type) {
return converters.get(type);
}
}