/** * Build a channel definition. * * @return channel definition */ public ChannelDefinition build() { return new ChannelDefinition(id, channelTypeUID, label, description, properties, autoUpdatePolicy); }
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; }
protected List<ChannelDefinition> toChannelDefinitions(List<ChannelXmlResult> channelTypeReferences) throws ConversionException { List<ChannelDefinition> channelTypeDefinitions = null; if ((channelTypeReferences != null) && (channelTypeReferences.size() > 0)) { channelTypeDefinitions = new ArrayList<>(channelTypeReferences.size()); for (ChannelXmlResult channelTypeReference : channelTypeReferences) { String id = channelTypeReference.getId(); String typeId = channelTypeReference.getTypeId(); String typeUID = String.format("%s:%s", this.thingTypeUID.getBindingId(), typeId); int systemPrefixIdx = typeId.indexOf(XmlHelper.SYSTEM_NAMESPACE_PREFIX); if (systemPrefixIdx != -1) { typeUID = XmlHelper.getSystemUID(typeId); } // Convert the channel properties into a map Map<String, String> propertiesMap = new HashMap<>(); for (NodeValue property : channelTypeReference.getProperties()) { propertiesMap.put(property.getAttributes().get("name"), (String) property.getValue()); } ChannelDefinition channelDefinition = new ChannelDefinition(id, new ChannelTypeUID(typeUID), propertiesMap, channelTypeReference.getLabel(), channelTypeReference.getDescription()); channelTypeDefinitions.add(channelDefinition); } } return channelTypeDefinitions; }