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
}
// assume this is a GenericItem
GenericItem genericItem = (GenericItem) item;
State newState = setState(genericItem, new String(payload));
State newState = parseState(genericItem, new String(payload));
if (newState != null) {
logger.debug("Setting state {} of type {} for {}", newState, newState.getClass().getSimpleName(),
genericItem.getName());
genericItem.setState(newState);
} else {
logger.warn("Could not set state for {} using '{}'", genericItem, new String(payload));
......@@ -170,18 +172,18 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis
}
}
private State setState(GenericItem genericItem, String state) {
for (Class<? extends @NonNull State> type : genericItem.getAcceptedDataTypes()) {
private State parseState(GenericItem genericItem, String state) {
for (Class<? extends @NonNull Command> type : genericItem.getAcceptedCommandTypes()) {
if (type.equals(StringType.class)) {
return new StringType(state);
} else if (type.equals(HSBType.class)) {
return new HSBType(state);
} else if (type.equals(DecimalType.class)) {
return new DecimalType(state);
} else if (type.equals(OnOffType.class)) {
return OnOffType.from(state);
} else if (type.equals(DateTimeType.class)) {
return new DateTimeType(state);
} else if (type.equals(HSBType.class)) {
return new HSBType(state);
}
}
return null;
......@@ -191,26 +193,6 @@ public class EraserHandler extends AbstractMqttHandler implements StateChangeLis
public void handleCommand(ChannelUID channelUID, 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) {
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