package org.openhab.domain; import org.openhab.domain.command.WidgetPhraseMatchResult; import org.openhab.domain.model.OpenHABItemType; import org.openhab.domain.model.OpenHABWidget; import org.openhab.domain.model.OpenHABWidgetDataSource; import org.openhab.domain.model.OpenHABWidgetType; import org.openhab.domain.model.Room; import org.openhab.domain.rule.IEntityDataType; import org.openhab.domain.rule.UnitEntityDataType; import java.util.List; import java.util.Set; import java.util.UUID; public interface IOpenHABWidgetProvider { List<OpenHABWidget> getWidgetList(OpenHABWidgetType type); OpenHABWidget getWidgetByItemName(String itemName); void setOpenHABWidgets(OpenHABWidgetDataSource openHABWidgetDataSource); UUID getUpdateUUID(); List<OpenHABWidget> getWidgetList(Set<OpenHABWidgetType> category); List<WidgetPhraseMatchResult> getWidgetByLabel(String searchLabel); OpenHABWidget getWidgetByID(String id); List<String> getItemNameListByWidgetType(Set<OpenHABWidgetType> widgetTypes); List<String> getItemNamesByType(OpenHABItemType type); List<OpenHABWidget> getListOfWidgetsFromListOfRooms(List<Room> listOfRooms); void addItemListener(UnitEntityDataType listener); void removeItemListener(UnitEntityDataType listener); }