/**
* 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.lightwaverf;
import java.util.List;
import org.openhab.binding.lightwaverf.internal.LightwaveRfItemDirection;
import org.openhab.binding.lightwaverf.internal.LightwaveRfType;
import org.openhab.core.binding.BindingProvider;
/**
* @author Neil Renaud
* @since 1.7.0
*/
public interface LightwaveRfBindingProvider extends BindingProvider {
/**
* Returns the Lightwave DeviceId for this itemString
*
* @param itemString
* @return
*/
String getDeviceId(String itemString);
/**
* Returns the Lightwave DeviceId for this itemString
*
* @param itemString
* @return
*/
String getRoomId(String itemString);
/**
* Returns a list of all items that match this roomId, deviceId. If deviceId
* is null then will return all items that match just the room
*
* @param roomId
* @param deviceId
* @return
*/
List<String> getBindingItemsForRoomDevice(String roomId, String deviceId);
/**
* Returns a list of all items that match this room.
*
* @param roomId
* @return
*/
List<String> getBindingItemsForRoom(String roomId);
/**
* Returns a list of all items that match this serial.
*
* @param serial
* @return
*/
List<String> getBindingItemsForSerial(String serial);
/**
* Returns a list of all items that match this Type
*
* @param version
* @return
*/
List<String> getBindingItemsForType(LightwaveRfType version);
/**
* Returns the type for an item by itemName
*
* @param itemName
* @return
*/
LightwaveRfType getTypeForItemName(String itemName);
/**
* Get the poll interval for the given itemName
*
* @param itemName
* @return
*/
int getPollInterval(String itemName);
/**
* Get the direction for the given itemName.
*
* @param itemName
* @return
*/
LightwaveRfItemDirection getDirection(String itemName);
}