private String inferThingTypeKey(ThingTypeUID thingTypeUID, ChannelGroupDefinition channelGroup, String lastSegment) { return "thing-type." + thingTypeUID.getBindingId() + "." + thingTypeUID.getId() + ".group." + channelGroup.getId() + "." + lastSegment; }
private List<ChannelGroupDefinition> createLocalizedChannelGroupDefinitions(final Bundle bundle, final List<ChannelGroupDefinition> channelGroupDefinitions, final Function<ChannelGroupDefinition, @Nullable String> channelGroupLabelResolver, final Function<ChannelGroupDefinition, @Nullable String> channelGroupDescriptionResolver, final @Nullable Locale locale) { List<ChannelGroupDefinition> localizedChannelGroupDefinitions = new ArrayList<>(channelGroupDefinitions.size()); for (final ChannelGroupDefinition channelGroupDefinition : channelGroupDefinitions) { String channelGroupLabel = channelGroupLabelResolver.apply(channelGroupDefinition); String channelGroupDescription = channelGroupDescriptionResolver.apply(channelGroupDefinition); if (channelGroupLabel == null || channelGroupDescription == null) { ChannelGroupTypeUID channelGroupTypeUID = channelGroupDefinition.getTypeUID(); ChannelGroupType channelGroupType = channelGroupTypeRegistry.getChannelGroupType(channelGroupTypeUID, locale); if (channelGroupType != null) { if (channelGroupLabel == null) { channelGroupLabel = thingTypeI18nUtil.getChannelGroupLabel(bundle, channelGroupTypeUID, channelGroupType.getLabel(), locale); } if (channelGroupDescription == null) { channelGroupDescription = thingTypeI18nUtil.getChannelGroupDescription(bundle, channelGroupTypeUID, channelGroupType.getDescription(), locale); } } } localizedChannelGroupDefinitions.add(new ChannelGroupDefinition(channelGroupDefinition.getId(), channelGroupDefinition.getTypeUID(), channelGroupLabel, channelGroupDescription)); } return localizedChannelGroupDefinitions; }
List<ChannelDefinition> channelGroupChannelDefinitions = channelGroupType.getChannelDefinitions(); for (ChannelDefinition channelDefinition : channelGroupChannelDefinitions) { Channel channel = createChannel(channelDefinition, thingUID, channelGroupDefinition.getId(), configDescriptionRegistry); if (channel != null) { logger.warn( "Could not create channels for channel group '{}' for thing type '{}', because channel group type '{}' could not be found.", channelGroupDefinition.getId(), thingUID, channelGroupDefinition.getTypeUID());
private List<ChannelGroupDefinitionDTO> convertToChannelGroupDefinitionDTOs( List<ChannelGroupDefinition> channelGroupDefinitions, Locale locale) { List<ChannelGroupDefinitionDTO> channelGroupDefinitionDTOs = new ArrayList<>(); for (ChannelGroupDefinition channelGroupDefinition : channelGroupDefinitions) { String id = channelGroupDefinition.getId(); ChannelGroupType channelGroupType = channelGroupTypeRegistry .getChannelGroupType(channelGroupDefinition.getTypeUID(), locale); // Default to the channelGroupDefinition label to override the // channelGroupType String label = channelGroupDefinition.getLabel(); if (label == null) { label = channelGroupType.getLabel(); } // Default to the channelGroupDefinition description to override the // channelGroupType String description = channelGroupDefinition.getDescription(); if (description == null) { description = channelGroupType.getDescription(); } List<ChannelDefinition> channelDefinitions = channelGroupType.getChannelDefinitions(); List<ChannelDefinitionDTO> channelDefinitionDTOs = convertToChannelDefinitionDTOs(channelDefinitions, locale); channelGroupDefinitionDTOs .add(new ChannelGroupDefinitionDTO(id, label, description, channelDefinitionDTOs)); } return channelGroupDefinitionDTOs; }