Package org.openhab.core.items

Examples of org.openhab.core.items.GenericItem


 
  @Before
  public void setUp() {
    ext = new PersistenceExtensions();
    ext.addPersistenceService(testPersistenceService);
    item = new GenericItem("Test") {
      @Override
      public List<Class<? extends State>> getAcceptedDataTypes() {
        return null;
      }
     
View Full Code Here


        String itemName = widget.getItem();
        if(itemName!=null) {
          try {
            Item item = itemRegistry.getItem(itemName);
            if (item instanceof GenericItem) {
              final GenericItem gItem = (GenericItem) item;
              items.add(gItem);
            }
          } catch (ItemNotFoundException e) {
            // ignore
          }
View Full Code Here

   */
  @Override
  public void receiveUpdate(String itemName, State newStatus) {
    if (itemRegistry != null) {
      try {
        GenericItem item = (GenericItem) itemRegistry.getItem(itemName);
        boolean isAccepted = false;
        if (item.getAcceptedDataTypes().contains(newStatus.getClass())) {
          isAccepted = true;
        } else {
          // Look for class hierarchy
          for (Class<? extends State> state : item.getAcceptedDataTypes()) {
            try {
              if (!state.isEnum() && state.newInstance().getClass().isAssignableFrom(newStatus.getClass())) {
                isAccepted = true;
                break;
              }
            } catch (InstantiationException e) {
              logger.warn("InstantiationException on {}", e.getMessage()); // Should never happen
            } catch (IllegalAccessException e) {
              logger.warn("IllegalAccessException on {}", e.getMessage()); // Should never happen
            }
          }
        }       
        if (isAccepted) {
          item.setState(newStatus);
        } else {
          logger.debug("Received update of a not accepted type ("  + newStatus.getClass().getSimpleName() + ") for item " + itemName);
        }
      } catch (ItemNotFoundException e) {
        logger.debug("Received update for non-existing item: {}", e.getMessage());
View Full Code Here

   * @return false, if the item has no valid name
   */
  private boolean initializeItem(Item item) {
    if(isValidItemName(item.getName())) {
      if(item instanceof GenericItem) {
        GenericItem genericItem = (GenericItem) item;
        genericItem.setEventPublisher(eventPublisher);
        genericItem.initialize();
      }
     
      if(item instanceof GroupItem) {
        // fill group with its members
        for(Item i : getItems()) {
View Full Code Here

  }

  private void postUpdate(String itemName, State newStatus) {
    if (itemRegistry != null) {
      try {
        GenericItem item = (GenericItem) itemRegistry.getItem(itemName);
        boolean isAccepted = false;
        if (item.getAcceptedDataTypes().contains(newStatus.getClass())) {
          isAccepted = true;
        } else {
          // Look for class hierarchy
          for (Class<? extends State> state : item.getAcceptedDataTypes()) {
            try {
              if (!state.isEnum() && state.newInstance().getClass().isAssignableFrom(newStatus.getClass())) {
                isAccepted = true;
                break;
              }
            } catch (InstantiationException e) {
              logger.warn("InstantiationException on ", e.getMessage()); // Should never happen
            } catch (IllegalAccessException e) {
              logger.warn("IllegalAccessException on ", e.getMessage()); // Should never happen
            }
          }
        }       
        if (isAccepted) {
          item.setState(newStatus);
        } else {
          logger.debug("Received update of a not accepted type ("  + newStatus.getClass().getSimpleName() + ") for item " + itemName);
        }
      } catch (ItemNotFoundException e) {
        logger.debug("Received update for non-existing item: {}", e.getMessage());
View Full Code Here

  }

  public void itemAdded(Item item) {
    initialize(item);
    if (item instanceof GenericItem) {
      GenericItem genericItem = (GenericItem) item;
      genericItem.addStateChangeListener(this);
    }
  }
View Full Code Here

                FilterCriteria filter = new FilterCriteria().setItemName(item.getName()).setPageSize(1);
                Iterable<HistoricItem> result = queryService.query(filter);
                Iterator<HistoricItem> it = result.iterator();
                if(it.hasNext()) {
                  HistoricItem historicItem = it.next();
                  GenericItem genericItem = (GenericItem) item;
                  genericItem.removeStateChangeListener(this);
                  genericItem.setState(historicItem.getState());
                  genericItem.addStateChangeListener(this);
                  logger.debug("Restored item state from '{}' for item '{}' -> '{}'",
                      new Object[] { DateFormat.getDateTimeInstance().format(historicItem.getTimestamp()),
                      item.getName(), historicItem.getState().toString() } );
                  return;
                }
View Full Code Here

    }   
  }

  public void itemRemoved(Item item) {
    if (item instanceof GenericItem) {
      GenericItem genericItem = (GenericItem) item;
      genericItem.removeStateChangeListener(this);
    }
  }
View Full Code Here

  private void registerChangeListenerOnItem(
      StateChangeListener stateChangeListener, String itemName) {
    Item item = ItemResource.getItem(itemName);
    if (item instanceof GenericItem) {
      GenericItem genericItem = (GenericItem) item;
      genericItem.addStateChangeListener(stateChangeListener);
     
    }
  }
View Full Code Here

  private void unregisterChangeListenerOnItem(
      StateChangeListener stateChangeListener, String itemName) {
    Item item = ItemResource.getItem(itemName);
    if (item instanceof GenericItem) {
      GenericItem genericItem = (GenericItem) item;
      genericItem.removeStateChangeListener(stateChangeListener);
    }
  }
View Full Code Here

TOP

Related Classes of org.openhab.core.items.GenericItem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.