protected abstract void initializeThing();
protected State getNAThingProperty(String channelId) {
- Optional<State> result;
-
- result = getBatteryHelper().flatMap(helper -> helper.getNAThingProperty(channelId));
+ Optional<State> result = getBatteryHelper().flatMap(helper -> helper.getNAThingProperty(channelId));
if (result.isPresent()) {
return result.get();
}
}
private void updateDataChannels() {
- getThing().getChannels().stream().filter(channel -> !channel.getKind().equals(ChannelKind.TRIGGER))
- .forEach(channel -> {
-
- String channelId = channel.getUID().getId();
- if (isLinked(channelId)) {
- State state = getNAThingProperty(channelId);
- updateState(channel.getUID(), state);
- }
- });
+ getThing().getChannels().stream()
+ .filter(channel -> !ChannelKind.TRIGGER.equals(channel.getKind()) && isLinked(channel.getUID()))
+ .map(channel -> channel.getUID()).forEach(this::updateChannel);
+ }
+
+ private void updateChannel(ChannelUID channelUID) {
+ updateState(channelUID, getNAThingProperty(channelUID.getId()));
}
/**
* (when a channel is triggered, a rule can get all other information from the updated non-trigger channels)
*/
private void triggerEventChannels() {
- getThing().getChannels().stream().filter(channel -> channel.getKind().equals(ChannelKind.TRIGGER))
- .forEach(channel -> triggerChannelIfRequired(channel.getUID().getId()));
+ getThing().getChannels().stream().filter(channel -> ChannelKind.TRIGGER.equals(channel.getKind()))
+ .map(channel -> channel.getUID().getId()).forEach(this::triggerChannelIfRequired);
}
/**
@Override
public void handleCommand(ChannelUID channelUID, Command command) {
if (command == RefreshType.REFRESH) {
- logger.debug("Refreshing {}", channelUID);
- updateChannels();
+ logger.debug("Refreshing '{}'", channelUID);
+ updateChannel(channelUID);
}
}