/** * Returns the variable provider of this unit like {@code generateVariablePool()}. Additionally this provider also contains variables related to the given service of this unit. * For this it's needed that this unit supports the given service. Additional to the {@code generateVariablePool()} this method further provides: * * BindingServiceConfig (if available) * * ServiceMetaConfig (if available) * * ServiceConfig (protobuf fields) * * @return a key - value pair pool providing all related variable of this unit including the service variables. * * @throws NotAvailableException is thrown if the variable pool is not available. */ default VariableProvider generateVariablePool(final ServiceConfig serviceConfig) throws NotAvailableException { final MetaConfigPool configPool = (MetaConfigPool) generateVariablePool(); if (serviceConfig.hasBindingConfig()) { configPool.register(new MetaConfigVariableProvider("BindingServiceConfig", serviceConfig.getBindingConfig().getMetaConfig())); } configPool.register(new MetaConfigVariableProvider("ServiceMetaConfig", serviceConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(serviceConfig)); return configPool; }
configPool.register(new MetaConfigVariableProvider("HostConfigMetaConfig", hostUnitConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(hostUnitConfig)); switch (hostUnitConfig.getType()) { case DEVICE: final DeviceClass deviceClass = Registries.getDeviceRegistry().getDeviceClassById(hostUnitConfig.getDeviceConfig().getDeviceClassId()); configPool.register(new MetaConfigVariableProvider("DeviceBindingConfig", deviceClass.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClassMetaConfig", deviceClass.getMetaConfig())); configPool.register(new ProtobufVariableProvider(deviceClass)); break; case APP: final AppClass appClass = Registries.getAppRegistry().getAppClassById(hostUnitConfig.getAppConfig().getAppClassId()); configPool.register(new MetaConfigVariableProvider("AppBindingConfig", appClass.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("AppClassMetaConfig", appClass.getMetaConfig())); configPool.register(new ProtobufVariableProvider(appClass)); break; configPool.register(new MetaConfigVariableProvider("UnitLocationMetaConfig", locationUnitConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(locationUnitConfig)); } catch (NullPointerException | CouldNotPerformException | InterruptedException ex) { configPool.register(new MetaConfigVariableProvider("UnitMetaConfig", unitConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(unitConfig)); return configPool; } catch (final CouldNotPerformException ex) {
Registries.getUnitRegistry().waitForData(); final MetaConfigPool metaConfigPool = new MetaConfigPool(); metaConfigPool.register(new MetaConfigVariableProvider("UnitConfig", config.getMetaConfig())); if (config.hasUnitHostId() && !config.getUnitHostId().isEmpty()) { try { metaConfigPool.register(new MetaConfigVariableProvider("UnitHost", Registries.getUnitRegistry().getUnitConfigById(config.getUnitHostId()).getMetaConfig())); } catch (NotAvailableException ex) { logger.warn("Could not check host of unit[" + ScopeGenerator.generateStringRep(config.getScope()) + "] for infrastructure filter because its not available");
configPool.register(new MetaConfigVariableProvider("BindingServiceConfig", serviceConfig.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceMetaConfig", serviceConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("UnitLocationMetaConfig", locationUnitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("UnitMetaConfig", unitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceMetaConfig", unitHostMetaConfig)); configPool.register(new MetaConfigVariableProvider("DeviceBindingConfig", deviceClass.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClassMetaConfig", deviceClass.getMetaConfig())); configPool.register(new ProtobufVariableProvider(locationUnitConfig)); configPool.register(new ProtobufVariableProvider(unitConfig)); configPool.register(new ProtobufVariableProvider(serviceConfig)); configPool.register(new MetaConfigVariableProvider("ServiceTemplateMetaConfig", lookupServiceTemplate(deviceClass, unitConfig, serviceConfig).getMetaConfig())); } catch (final NotAvailableException ex) { ExceptionPrinter.printHistory(new CouldNotPerformException("Could not load service template meta config for Service[" + serviceConfig.getServiceDescription().getType().name() + "] of Unit[" + unitConfig.getLabel() + "]", ex), logger, LogLevel.ERROR);
public void updateNeutralWhiteValue(final UnitConfig config) throws InterruptedException { try { final MetaConfigPool configPool = new MetaConfigPool(); configPool.register(new MetaConfigVariableProvider("UnitConfig", config.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceConfig", colorStateServiceConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceUnitConfig", deviceUnitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClass", deviceClass.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceTemplateConfig", colorStateServiceTemplateConfig.getMetaConfig()));
public void updateNeutralWhiteValue(final UnitConfigType.UnitConfig config) throws InterruptedException { try { final MetaConfigPool configPool = new MetaConfigPool(); configPool.register(new MetaConfigVariableProvider("UnitConfig", config.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceConfig", colorStateServiceConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceUnitConfig", deviceUnitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClass", deviceClass.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceTemplateConfig", colorStateServiceTemplateConfig.getMetaConfig()));