public static Iterable<ServiceConfigType.ServiceConfig> getServiceConfig(final UnitTemplate template) { List<ServiceConfigType.ServiceConfig> serviceConfigList = new ArrayList<>(); template.getServiceDescriptionList().stream().forEach((serviceDescription) -> { BindingConfig bindingServiceConfig = BindingConfig.newBuilder().setBindingId("OPENHAB").build(); serviceConfigList.add(ServiceConfig.newBuilder().setServiceDescription(serviceDescription).setBindingConfig(bindingServiceConfig).build()); }); return serviceConfigList; }
@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig.Builder unitConfig = entry.getMessage().toBuilder(); boolean modification = false; UnitConfig.Builder unitConfigClone = unitConfig.clone(); if (!unitConfig.hasId() || unitConfig.getId().isEmpty()) { throw new NotAvailableException("unitconfig.id"); } unitConfig.clearServiceConfig(); for (ServiceConfig.Builder serviceConfig : unitConfigClone.getServiceConfigBuilderList()) { if (!serviceConfig.hasUnitId() || serviceConfig.getUnitId().isEmpty() || !serviceConfig.getUnitId().equals(unitConfig.getId())) { serviceConfig.setUnitId(unitConfig.getId()); modification = true; } unitConfig.addServiceConfig(serviceConfig); } if (modification) { throw new EntryModification(entry.setMessage(unitConfig), this); } } }
List<ServiceConfigType.ServiceConfig> serviceConfigs = new ArrayList<>(); for (ServiceTemplateConfigType.ServiceTemplateConfig serviceTemplateConfig : unitTemplateConfig.getServiceTemplateConfigList()) { ServiceConfigType.ServiceConfig.Builder serviceConfig = ServiceConfigType.ServiceConfig.newBuilder().setBindingConfig(BindingConfigType.BindingConfig.newBuilder().setBindingId(deviceClass.getBindingConfig().getBindingId())); serviceConfig.setServiceDescription(ServiceDescription.newBuilder().setType(serviceTemplateConfig.getServiceType())); serviceConfigs.add(serviceConfig.build());
dalUnitConfig.clearServiceConfig(); for (ServiceConfig.Builder serviceConfig : unitConfigClone.getServiceConfigBuilderList()) { if (!serviceConfig.hasBindingConfig()) { continue; if (serviceConfig.getBindingConfig().getBindingId().equals("OPENHAB")) { if(!dalUnitConfig.getPlacementConfig().hasLocationId() || dalUnitConfig.getPlacementConfig().getLocationId().isEmpty()) { throw new NotAvailableException("dalUnitConfig.placementConfig.locationId"); String itemId = generateItemName(entry.getMessage(), deviceClass.getLabel(), dalUnitConfig.clone().build(), serviceConfig.clone().build(), locationRegistry.getMessage(dalUnitConfig.getPlacementConfig().getLocationId())); if (!serviceConfig.getBindingConfig().hasMetaConfig()) { serviceConfig.setBindingConfig(serviceConfig.getBindingConfig().toBuilder().setMetaConfig(MetaConfig.getDefaultInstance())); modification = true; metaConfig = serviceConfig.getBindingConfig().getMetaConfig(); serviceConfig.setBindingConfig(serviceConfig.getBindingConfig().toBuilder().setMetaConfig(metaConfig)); modification = true;
for (ServiceConfig.Builder serviceConfig : serviceConfigList) { BindingConfig bindingConfig; if (!serviceConfig.hasBindingConfig()) { bindingConfig = BindingConfig.getDefaultInstance(); } else { bindingConfig = serviceConfig.getBindingConfig(); serviceConfig.setBindingConfig(bindingConfig.toBuilder().setBindingId(bindingId).build()).build(); modification = true;
@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig.Builder unitConfig = entry.getMessage().toBuilder(); if (!unitConfig.hasType()) { throw new NotAvailableException("unitConfig.type"); } boolean modification = false; UnitTemplate unitTemplate = getUnitTemplateByType(unitConfig.getType()); for (ServiceDescription serviceDescription : unitTemplate.getServiceDescriptionList()) { if (!unitConfigContainsServiceDescription(unitConfig, serviceDescription)) { unitConfig.addServiceConfig(ServiceConfig.newBuilder().setServiceDescription(serviceDescription).setBindingConfig(BindingConfig.getDefaultInstance())); modification = true; } } for (int i = 0; i < unitConfig.getServiceConfigCount(); i++) { if (!serviceDescriptionListContainsDescription(unitTemplate.getServiceDescriptionList(), unitConfig.getServiceConfig(i).getServiceDescription())) { unitConfig.removeServiceConfig(i); i--; modification = true; } } if (modification) { throw new EntryModification(entry.setMessage(unitConfig), this); } }
@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig.Builder unitConfig = entry.getMessage().toBuilder(); boolean modification = false; for (ServiceConfig.Builder serviceConfig : unitConfig.getServiceConfigBuilderList()) { ServiceDescription.Builder serviceDescription = serviceConfig.getServiceDescriptionBuilder(); if (serviceDescription.getServiceTemplateId().isEmpty()) { if (!serviceDescription.hasType()) { throw new NotAvailableException("ServiceType"); } serviceDescription.setServiceTemplateId(getServiceIdByType(serviceDescription.getType())); modification = true; } } if (modification) { throw new EntryModification(entry.setMessage(unitConfig), this); } }