ChannelTypeProvider.class })
@NonNullByDefault
public class ChannelsTypeProviderAvailableInputs implements ChannelTypeProvider, ThingHandlerService {
- private @NonNullByDefault({}) ChannelType channelType;
- private @NonNullByDefault({}) ChannelTypeUID channelTypeUID;
- private @NonNullByDefault({}) YamahaZoneThingHandler handler;
+ private @Nullable ChannelType channelType;
+ private @Nullable ChannelTypeUID channelTypeUID;
+ private @Nullable YamahaZoneThingHandler handler;
@Override
public Collection<ChannelType> getChannelTypes(@Nullable Locale locale) {
- return Set.of(channelType);
+ ChannelType channelType = this.channelType;
+ return channelType == null ? Set.of() : Set.of(channelType);
}
@Override
public @Nullable ChannelType getChannelType(ChannelTypeUID channelTypeUID, @Nullable Locale locale) {
- if (this.channelTypeUID.equals(channelTypeUID)) {
+ if (channelTypeUID.equals(this.channelTypeUID)) {
return channelType;
} else {
return null;
}
}
- public ChannelTypeUID getChannelTypeUID() {
+ public @Nullable ChannelTypeUID getChannelTypeUID() {
return channelTypeUID;
}
private void createChannelType(StateDescriptionFragment state) {
- channelType = ChannelTypeBuilder.state(channelTypeUID, "Input source", "String")
- .withDescription("Select the input source of the AVR").withStateDescriptionFragment(state).build();
+ ChannelTypeUID channelTypeUID = this.channelTypeUID;
+ if (channelTypeUID != null) {
+ channelType = ChannelTypeBuilder.state(channelTypeUID, "Input source", "String")
+ .withDescription("Select the input source of the AVR").withStateDescriptionFragment(state).build();
+ }
}
private StateDescriptionFragment getDefaultStateDescription() {
.withOptions(options).build());
}
- @NonNullByDefault({})
@Override
public void setThingHandler(ThingHandler handler) {
this.handler = (YamahaZoneThingHandler) handler;
@Component(scope = ServiceScope.PROTOTYPE, service = { ChannelsTypeProviderPreset.class, ChannelTypeProvider.class })
@NonNullByDefault
public class ChannelsTypeProviderPreset implements ChannelTypeProvider, ThingHandlerService {
- private @NonNullByDefault({}) ChannelType channelType;
- private @NonNullByDefault({}) ChannelTypeUID channelTypeUID;
- private @NonNullByDefault({}) YamahaZoneThingHandler handler;
+ private @Nullable ChannelType channelType;
+ private @Nullable ChannelTypeUID channelTypeUID;
+ private @Nullable YamahaZoneThingHandler handler;
@Override
public Collection<ChannelType> getChannelTypes(@Nullable Locale locale) {
- return Set.of(channelType);
+ ChannelType channelType = this.channelType;
+ return channelType == null ? Set.of() : Set.of(channelType);
}
@Override
public @Nullable ChannelType getChannelType(ChannelTypeUID channelTypeUID, @Nullable Locale locale) {
- if (this.channelTypeUID.equals(channelTypeUID)) {
+ if (channelTypeUID.equals(this.channelTypeUID)) {
return channelType;
} else {
return null;
}
}
- public ChannelTypeUID getChannelTypeUID() {
+ public @Nullable ChannelTypeUID getChannelTypeUID() {
return channelTypeUID;
}
}
private void createChannelType(StateDescriptionFragment state) {
- channelType = ChannelTypeBuilder.state(channelTypeUID, "Preset", "Number")
- .withDescription("Select a saved channel by its preset number").withStateDescriptionFragment(state)
- .build();
+ ChannelTypeUID channelTypeUID = this.channelTypeUID;
+ if (channelTypeUID != null) {
+ channelType = ChannelTypeBuilder.state(channelTypeUID, "Preset", "Number")
+ .withDescription("Select a saved channel by its preset number").withStateDescriptionFragment(state)
+ .build();
+ }
}
- @NonNullByDefault({})
@Override
public void setThingHandler(ThingHandler handler) {
this.handler = (YamahaZoneThingHandler) handler;
import org.openhab.core.thing.binding.BaseThingHandler;
import org.openhab.core.thing.binding.ThingHandlerService;
import org.openhab.core.thing.binding.builder.ChannelBuilder;
+import org.openhab.core.thing.type.ChannelTypeUID;
import org.openhab.core.types.Command;
import org.openhab.core.types.RefreshType;
import org.slf4j.Logger;
// Remove the old channel and add the new channel. The channel will be requested from the
// yamahaChannelTypeProvider.
ChannelUID inputChannelUID = new ChannelUID(thing.getUID(), CHANNEL_GROUP_ZONE, CHANNEL_INPUT);
- Channel channel = ChannelBuilder.create(inputChannelUID, "String")
- .withType(channelsTypeProviderAvailableInputs.getChannelTypeUID()).build();
+ ChannelTypeUID channelTypeUID = channelsTypeProviderAvailableInputs.getChannelTypeUID();
+ if (channelTypeUID == null) {
+ logger.warn("ChannelTypeUID is null, this should not happen.");
+ return;
+ }
+ Channel channel = ChannelBuilder.create(inputChannelUID, "String").withType(channelTypeUID).build();
updateThing(editThing().withoutChannel(inputChannelUID).withChannel(channel).build());
}
// Remove the old channel and add the new channel. The channel will be requested from the
// channelsTypeProviderPreset.
- ChannelUID inputChannelUID = new ChannelUID(thing.getUID(), CHANNEL_GROUP_PLAYBACK,
+ ChannelUID presetChannelUID = new ChannelUID(thing.getUID(), CHANNEL_GROUP_PLAYBACK,
CHANNEL_PLAYBACK_PRESET);
- Channel channel = ChannelBuilder.create(inputChannelUID, "Number")
- .withType(channelsTypeProviderPreset.getChannelTypeUID()).build();
- updateThing(editThing().withoutChannel(inputChannelUID).withChannel(channel).build());
+ ChannelTypeUID channelTypeUID = channelsTypeProviderPreset.getChannelTypeUID();
+ if (channelTypeUID == null) {
+ logger.warn("ChannelTypeUID is null, this should not happen.");
+ return;
+ }
+ Channel channel = ChannelBuilder.create(presetChannelUID, "Number").withType(channelTypeUID).build();
+ updateThing(editThing().withoutChannel(presetChannelUID).withChannel(channel).build());
}
updateState(grpPlayback(CHANNEL_PLAYBACK_PRESET), new DecimalType(msg.presetChannel));