Skip to content
Snippets Groups Projects
Commit 683fa2c3 authored by René Schöne's avatar René Schöne
Browse files

Change changing state to use commands in EraserHandler.

parent 0302c67b
No related branches found
No related tags found
No related merge requests found
...@@ -159,8 +159,10 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis ...@@ -159,8 +159,10 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis
} }
// assume this is a GenericItem // assume this is a GenericItem
GenericItem genericItem = (GenericItem) item; GenericItem genericItem = (GenericItem) item;
State newState = setState(genericItem, new String(payload)); State newState = parseState(genericItem, new String(payload));
if (newState != null) { if (newState != null) {
logger.debug("Setting state {} of type {} for {}", newState, newState.getClass().getSimpleName(),
genericItem.getName());
genericItem.setState(newState); genericItem.setState(newState);
} else { } else {
logger.warn("Could not set state for {} using '{}'", genericItem, new String(payload)); logger.warn("Could not set state for {} using '{}'", genericItem, new String(payload));
...@@ -170,18 +172,18 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis ...@@ -170,18 +172,18 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis
} }
} }
private State setState(GenericItem genericItem, String state) { private State parseState(GenericItem genericItem, String state) {
for (Class<? extends @NonNull State> type : genericItem.getAcceptedDataTypes()) { for (Class<? extends @NonNull Command> type : genericItem.getAcceptedCommandTypes()) {
if (type.equals(StringType.class)) { if (type.equals(StringType.class)) {
return new StringType(state); return new StringType(state);
} else if (type.equals(HSBType.class)) {
return new HSBType(state);
} else if (type.equals(DecimalType.class)) { } else if (type.equals(DecimalType.class)) {
return new DecimalType(state); return new DecimalType(state);
} else if (type.equals(OnOffType.class)) { } else if (type.equals(OnOffType.class)) {
return OnOffType.from(state); return OnOffType.from(state);
} else if (type.equals(DateTimeType.class)) { } else if (type.equals(DateTimeType.class)) {
return new DateTimeType(state); return new DateTimeType(state);
} else if (type.equals(HSBType.class)) {
return new HSBType(state);
} }
} }
return null; return null;
...@@ -191,26 +193,6 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis ...@@ -191,26 +193,6 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis
public void handleCommand(ChannelUID channelUID, Command command) { public void handleCommand(ChannelUID channelUID, Command command) {
logger.debug("got a command " + command); logger.debug("got a command " + command);
} }
//
// @Override
// public Set<@NonNull String> getSubscribedEventTypes() {
// return Collections.singleton(ItemStateEvent.TYPE);
// }
//
// @Override
// public @Nullable EventFilter getEventFilter() {
// return null;
// }
//
// @Override
// public void receive(Event event) {
// // publish MQTT message
// logger.debug("Received an event: " + event);
// ItemStateEvent itemStateEvent = (ItemStateEvent) event;
// String topic = outTopic + itemStateEvent.getItemName();
// String payload = itemStateEvent.getPayload();
// publish(topic, payload);
// }
public void added(Item element) { public void added(Item element) {
GenericItem genericItem = (GenericItem) element; GenericItem genericItem = (GenericItem) element;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment