private String generateItemHardwareConfig(final UnitConfig unitConfig, final ServiceConfig serviceConfig) throws CouldNotPerformException { try { String config = ""; config += configPool.getValue(SERVICE_TEMPLATE_BINDING_TYPE); config += "=\""; config += configPool.getValue(SERVICE_TEMPLATE_BINDING_CONFIG); config += "\""; return config; } catch (Exception ex) { throw new CouldNotPerformException("Could not generate item hardware config of Unit[" + unitConfig.getId() + "] !", ex); } }
/** * 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; }
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"); if (Boolean.parseBoolean(metaConfigPool.getValue(META_CONFIG_UNIT_INFRASTRUCTURE_FLAG))) {
try { final UnitConfig unitConfig = getConfig(); final MetaConfigPool configPool = new MetaConfigPool(); 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) {
configPool = new MetaConfigPool(); 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); this.itemId = configPool.getValue(OPENHAB_BINDING_ITEM_ID); } catch (final NotAvailableException ex) { throw new NotAvailableException("itemId", ex); this.label = configPool.getValue(SERVICE_TEMPLATE_BINDING_LABEL_DESCRIPTOR); } catch (NotAvailableException ex) { this.label = unitConfig.getLabel(); this.commandType = configPool.getValue(SERVICE_TEMPLATE_BINDING_COMMAND); } catch (NotAvailableException ex) { this.commandType = getDefaultCommand(serviceConfig.getServiceDescription().getType()); this.icon = configPool.getValue(SERVICE_TEMPLATE_BINDING_ICON);
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())); String neutralWhiteString = configPool.getValue(NEUTRAL_WHITE_KEY); try { String[] split = neutralWhiteString.replace(" ", "").split(",");
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())); String neutralWhiteString = configPool.getValue(NEUTRAL_WHITE_KEY); try { String[] split = neutralWhiteString.replace(" ", "").split(",");