use of org.openhab.core.items.Item in project openhab1-addons by openhab.
the class MysqlPersistenceService method getItemType.
/**
*
* @param i
* @return
*/
private String getItemType(Item i) {
Item item = i;
if (i instanceof GroupItem) {
item = ((GroupItem) i).getBaseItem();
if (item == null) {
// if GroupItem:<ItemType> is not defined in *.items using StringType
logger.debug("mySQL: Cannot detect ItemType for {} because the GroupItems' base type isn't set in *.items File.", i.getName());
item = ((GroupItem) i).getMembers().get(0);
if (item == null) {
logger.debug("mySQL: No ItemType found for first Child-Member of GroupItem {}, use ItemType STRINGITEM ({}) as Fallback", i.getName(), sqlTypes.get("STRINGITEM"));
return sqlTypes.get("STRINGITEM");
}
}
}
String itemType = item.getClass().getSimpleName().toUpperCase();
if (sqlTypes.get(itemType) == null) {
logger.debug("mySQL: No sqlType found for ItemType {}, use ItemType STRINGITEM ({}) as Fallback for {}", itemType, sqlTypes.get("STRINGITEM"), i.getName());
return sqlTypes.get("STRINGITEM");
}
logger.debug("mySQL: Use ItemType {} ({}) for Item {}", itemType, sqlTypes.get(itemType), itemType, i.getName());
return sqlTypes.get(itemType);
}
use of org.openhab.core.items.Item in project openhab1-addons by openhab.
the class JdbcBaseDAO method getItemType.
public String getItemType(Item i) {
Item item = i;
String def = "STRINGITEM";
if (i instanceof GroupItem) {
item = ((GroupItem) i).getBaseItem();
if (item == null) {
// if GroupItem:<ItemType> is not defined in
// *.items using StringType
// logger.debug("JDBC: BaseItem GroupItem:<ItemType> is not
// defined in *.items searching for first Member and try to use
// as ItemType");
logger.debug("JDBC::getItemType: Cannot detect ItemType for {} because the GroupItems' base type isn't set in *.items File.", i.getName());
item = ((GroupItem) i).getMembers().get(0);
if (item == null) {
logger.debug("JDBC::getItemType: No ItemType found for first Child-Member of GroupItem {}, use ItemType for STRINGITEM as Fallback", i.getName());
return def;
}
}
}
String itemType = item.getClass().getSimpleName().toUpperCase();
logger.debug("JDBC::getItemType: Try to use ItemType {} for Item {}", itemType, i.getName());
if (sqlTypes.get(itemType) == null) {
logger.warn("JDBC::getItemType: No sqlType found for ItemType {}, use ItemType for STRINGITEM as Fallback for {}", itemType, i.getName());
return def;
}
return itemType;
}
use of org.openhab.core.items.Item in project openhab1-addons by openhab.
the class CaldavPersistenceService method query.
@Override
public Iterable<HistoricItem> query(final FilterCriteria filter) {
List<CalDavEvent> events = calDavLoader.getEvents(new CalDavQuery(calendarId));
List<HistoricItem> outList = new ArrayList<HistoricItem>();
for (CalDavEvent calDavEvent : events) {
if (filter.getBeginDate() != null && calDavEvent.getEnd().toDate().before(filter.getBeginDate())) {
continue;
}
if (filter.getEndDate() != null && calDavEvent.getStart().toDate().after(filter.getEndDate())) {
continue;
}
Item item = null;
try {
item = this.itemRegistry.getItem(filter.getItemName());
} catch (ItemNotFoundException e) {
logger.error("item {} could not be found", filter.getItemName());
continue;
}
final List<EventUtils.EventContent> parseContent = EventUtils.parseContent(calDavEvent, item);
for (EventUtils.EventContent eventContent : parseContent) {
if (filter.getBeginDate() != null && eventContent.getTime().toDate().before(filter.getBeginDate())) {
continue;
}
if (filter.getEndDate() != null && eventContent.getTime().toDate().after(filter.getEndDate())) {
continue;
}
final State eventState = eventContent.getState();
if (filter.getState() != null && filter.getOperator() != null) {
switch(filter.getOperator()) {
case EQ:
{
if (!filter.getState().equals(eventState)) {
continue;
}
break;
}
case NEQ:
{
if (filter.getState().equals(eventState)) {
continue;
}
break;
}
case LTE:
{
if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
if (((DecimalType) eventState).longValue() > ((DecimalType) filter.getState()).longValue()) {
continue;
}
} else {
continue;
}
break;
}
case GTE:
{
if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
if (((DecimalType) eventState).longValue() < ((DecimalType) filter.getState()).longValue()) {
continue;
}
} else {
continue;
}
break;
}
case LT:
{
if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
if (((DecimalType) eventState).longValue() >= ((DecimalType) filter.getState()).longValue()) {
continue;
}
} else {
continue;
}
break;
}
case GT:
{
if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
if (((DecimalType) eventState).longValue() <= ((DecimalType) filter.getState()).longValue()) {
continue;
}
} else {
continue;
}
break;
}
}
}
// just filtered events are here...
final CaldavItem caldavItem = new CaldavItem(filter.getItemName(), eventState, eventContent.getTime().toDate());
caldavItem.setEvent(calDavEvent);
outList.add(caldavItem);
}
}
Collections.sort(outList, new Comparator<HistoricItem>() {
@Override
public int compare(HistoricItem arg0, HistoricItem arg1) {
if (filter.getOrdering().equals(FilterCriteria.Ordering.ASCENDING)) {
return (int) (arg0.getTimestamp().getTime() - arg1.getTimestamp().getTime());
} else {
return (int) (arg1.getTimestamp().getTime() - arg0.getTimestamp().getTime());
}
}
});
if (outList.size() < filter.getPageNumber() * filter.getPageSize()) {
return Collections.emptyList();
}
outList = outList.subList(filter.getPageNumber() * filter.getPageSize(), Math.min((filter.getPageNumber() * filter.getPageSize()) + filter.getPageSize(), outList.size()));
logger.trace("result size for query: {}", outList.size());
return outList;
}
use of org.openhab.core.items.Item in project openhab1-addons by openhab.
the class ItemStateRequestProcessor method getItemState.
public ItemStateData getItemState(String itemId) throws ServiceException {
ItemRegistry itemRegistry = getItemRegistry();
ItemStateData itemState = null;
try {
Item item = itemRegistry.getItem(itemId);
StateTransformable state = getState(item);
itemState = new ItemStateData(System.currentTimeMillis(), itemId, state);
} catch (ItemNotFoundException ex) {
logger.info(itemId + " not found", ex);
}
return itemState;
}
use of org.openhab.core.items.Item in project openhab1-addons by openhab.
the class NikobusGenericBindingProviderTest method parseButtonWithRefresh.
private void parseButtonWithRefresh(String name, String config, Button.PressType type, String address, String[] groups) throws BindingConfigParseException {
Item item = new SwitchItem(name);
provider.processBindingConfiguration("context", item, config);
Button button = (Button) provider.getItemConfig(name);
assertEquals(name, button.getName());
assertEquals(address, button.getAddress());
assertEquals(type, button.getType());
String[] modules = (String[]) Whitebox.getInternalState(button, "impactedModules");
assertEquals(groups.length, modules.length);
for (int i = 0; i < groups.length; i++) {
assertEquals(groups[i], modules[i]);
}
}
Aggregations