protected List<ChannelDefinition> toChannelDefinitions(List<ChannelXmlResult> channelTypeReferences,
Map<String, ChannelType> channelTypes) throws ConversionException {
List<ChannelDefinition> channelTypeDefinitions = null;
if ((channelTypeReferences != null) && (channelTypeReferences.size() > 0)) {
channelTypeDefinitions = new ArrayList<>(channelTypeReferences.size());
if (channelTypes != null) {
for (ChannelXmlResult channelTypeReference : channelTypeReferences) {
String id = channelTypeReference.getId();
String typeId = channelTypeReference.getTypeId();
String typeUID = String.format("%s:%s", this.channelGroupTypeUID.getBindingId(), typeId);
ChannelType channelType = channelTypes.get(typeUID);
if (channelType != null) {
ChannelDefinition channelDefinition = new ChannelDefinition(id, channelType.getUID());
channelTypeDefinitions.add(channelDefinition);
} else {
throw new ConversionException("The channel type for '" + typeUID + "' is missing!");
}
}
} else {
throw new ConversionException("Missing the definition of channel types!");
}
}
return channelTypeDefinitions;
}