@Override public ChannelType getChannelType(ChannelTypeUID channelTypeUID, Locale locale) { Collection<Entry<Bundle, List<ChannelType>>> channelTypesList = this.bundleChannelTypesMap.entrySet(); if (channelTypesList != null) { for (Entry<Bundle, List<ChannelType>> channelTypes : channelTypesList) { for (ChannelType channelType : channelTypes.getValue()) { if (channelType.getUID().equals(channelTypeUID)) { return createLocalizedChannelType(channelTypes.getKey(), channelType, locale); } } } } else { } return null; }
@Nullable @Override public ProfileTypeUID getSuggestedProfileTypeUID(@Nullable ChannelType channelType, @Nullable String itemType) { if (channelType == null) { return null; } switch (channelType.getKind()) { case STATE: return SystemProfiles.DEFAULT; case TRIGGER: if (DefaultSystemChannelTypeProvider.SYSTEM_RAWBUTTON.getUID().equals(channelType.getUID())) { if (CoreItemFactory.SWITCH.equalsIgnoreCase(itemType)) { return SystemProfiles.RAWBUTTON_TOGGLE_SWITCH; } } else if (DefaultSystemChannelTypeProvider.SYSTEM_RAWROCKER.getUID().equals(channelType.getUID())) { if (CoreItemFactory.SWITCH.equalsIgnoreCase(itemType)) { return SystemProfiles.RAWROCKER_ON_OFF; } else if (CoreItemFactory.DIMMER.equalsIgnoreCase(itemType)) { return SystemProfiles.RAWROCKER_DIMMER; } else if (CoreItemFactory.PLAYER.equalsIgnoreCase(itemType)) { return SystemProfiles.RAWROCKER_PLAY_PAUSE; } } break; default: throw new IllegalArgumentException("Unsupported channel kind: " + channelType.getKind()); } return null; }
@Override public ChannelType getChannelType(ChannelTypeUID channelTypeUID, Locale locale) { final Bundle bundle = bundleResolver.resolveBundle(DefaultSystemChannelTypeProvider.class); for (final ChannelType channelType : CHANNEL_TYPES) { if (channelTypeUID.equals(channelType.getUID())) { return createLocalizedChannelType(bundle, channelType, locale); } } return null; }