/**
* 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.io.transport.cul.internal;
import java.util.Dictionary;
import org.openhab.io.transport.cul.CULMode;
import org.osgi.service.cm.ConfigurationException;
/**
* Configuration factory for cul handlers.
*
* @author Patrick Ruckstuhl
* @since 1.9.0
*/
public interface CULConfigFactory {
/**
* Creates a specific CULConfig for a handler implementation.
*
* @param deviceType type of the device
* @param deviceAddress address of the device
* @param mode cul mode
* @param config additional configurations.
* @return CULConfig for the handler implementation
* @throws ConfigurationException if configuration is not valid.
*/
CULConfig create(String deviceType, String deviceAddress, CULMode mode, Dictionary<String, ?> config)
throws ConfigurationException;
}