/**
* Copyright (c) 2014-2017 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.eclipse.smarthome.core.thing.type;
import java.net.URI;
import java.util.List;
import java.util.Map;
import org.eclipse.smarthome.core.thing.Bridge;
import org.eclipse.smarthome.core.thing.ThingTypeUID;
/**
* The {@link BridgeType} describes a concrete type of a {@link Bridge}.
* A {@link BridgeType} inherits a {@link ThingType} and signals a parent-child relation.
* <p>
* This description is used as template definition for the creation of the according concrete {@link Bridge} object.
* <p>
* <b>Hint:</b> This class is immutable.
*
* @author Michael Grammling - Initial Contribution
* @author Thomas Höfer - Added thing and thing type properties
*/
public class BridgeType extends ThingType {
/**
* @see BridgeType#BridgeType(ThingTypeUID, List, String, String, List, URI)
*/
public BridgeType(String bindingId, String thingTypeId, String label) throws IllegalArgumentException {
this(new ThingTypeUID(bindingId, thingTypeId), null, label, null, true, null, null, null, null);
}
/**
* Creates a new instance of this class with the specified parameters.
*
* @param uid the unique identifier which identifies this Bridge type within
* the overall system (must neither be null, nor empty)
*
* @param supportedBridgeTypeUIDs the unique identifiers to the bridges this Bridge type
* supports (could be null or empty)
*
* @param label the human readable label for the according type
* (must neither be null nor empty)
*
* @param description the human readable description for the according type
* (could be null or empty)
*
* @param channelDefinitions the channels this Bridge type provides (could be null or empty)
*
* @param channelGroupDefinitions the channel groups defining the channels this Bridge
* type provides (could be null or empty)
*
* @param properties the properties this Bridge type provides (could be null)
*
* @param configDescriptionURI the link to the concrete ConfigDescription (could be null)
*
* @throws IllegalArgumentException if the UID is null or empty,
* or the the meta information is null
*/
public BridgeType(ThingTypeUID uid, List<String> supportedBridgeTypeUIDs, String label, String description,
List<ChannelDefinition> channelDefinitions, List<ChannelGroupDefinition> channelGroupDefinitions,
Map<String, String> properties, URI configDescriptionURI) throws IllegalArgumentException {
this(uid, supportedBridgeTypeUIDs, label, description, true, channelDefinitions, channelGroupDefinitions,
properties, configDescriptionURI);
}
/**
* Creates a new instance of this class with the specified parameters.
*
* @param uid the unique identifier which identifies this Bridge type within
* the overall system (must neither be null, nor empty)
*
* @param supportedBridgeTypeUIDs the unique identifiers to the bridges this Bridge type
* supports (could be null or empty)
*
* @param label the human readable label for the according type
* (must neither be null nor empty)
*
* @param description the human readable description for the according type
* (could be null or empty)
*
* @param listed detemines whether it should be displayed for manually pairing or not
*
* @param channelDefinitions the channels this Bridge type provides (could be null or empty)
*
* @param channelGroupDefinitions the channel groups defining the channels this Bridge
* type provides (could be null or empty)
*
* @param properties the properties this Bridge type provides (could be null)
*
* @param configDescriptionURI the link to the concrete ConfigDescription (could be null)
*
* @throws IllegalArgumentException if the UID is null or empty,
* or the the meta information is null
*/
public BridgeType(ThingTypeUID uid, List<String> supportedBridgeTypeUIDs, String label, String description,
boolean listed, List<ChannelDefinition> channelDefinitions,
List<ChannelGroupDefinition> channelGroupDefinitions, Map<String, String> properties,
URI configDescriptionURI) throws IllegalArgumentException {
super(uid, supportedBridgeTypeUIDs, label, description, listed, channelDefinitions, channelGroupDefinitions,
properties, configDescriptionURI);
}
}