test_class.file: bundles/org.openhab.core.config.core/src/test/java/org/openhab/core/config/core/ConfigurableServiceUtilTest.java
test_class.identifier: ConfigurableServiceUtilTest
test_case.body: @Test
      public void asConfigurableServiceUndefinedProperties() {
          Properties properties = new Properties();
  
          ConfigurableService configurableService = ConfigurableServiceUtil
                  .asConfigurableService((key) -> properties.get(key));
  
          assertThat(configurableService.annotationType(), is(ConfigurableService.class));
          assertThat(configurableService.category(), is(emptyString()));
          assertThat(configurableService.description_uri(), is(emptyString()));
          assertThat(configurableService.factory(), is(false));
          assertThat(configurableService.label(), is(emptyString()));
      }
test_case.class_method_signature: ConfigurableServiceUtilTest.asConfigurableServiceUndefinedProperties()
test_case.full_signature: @Test public void asConfigurableServiceUndefinedProperties()
test_case.identifier: asConfigurableServiceUndefinedProperties
test_case.invocations: asConfigurableService get assertThat annotationType is assertThat category is emptyString assertThat description_uri is emptyString assertThat factory is assertThat label is emptyString
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void asConfigurableServiceUndefinedProperties()
focal_class.declarator: SERVICE_PROPERTY_DESCRIPTION_URI = ConfigurableService.PREFIX_ + "description.uri"
focal_class.modifier: static final
focal_class.original_string: static final String SERVICE_PROPERTY_DESCRIPTION_URI = ConfigurableService.PREFIX_ + "description.uri";
focal_class.type: String
focal_class.var_name: SERVICE_PROPERTY_DESCRIPTION_URI
focal_class.declarator: SERVICE_PROPERTY_LABEL = ConfigurableService.PREFIX_ + "label"
focal_class.modifier: static final
focal_class.original_string: static final String SERVICE_PROPERTY_LABEL = ConfigurableService.PREFIX_ + "label";
focal_class.type: String
focal_class.var_name: SERVICE_PROPERTY_LABEL
focal_class.declarator: SERVICE_PROPERTY_CATEGORY = ConfigurableService.PREFIX_ + "category"
focal_class.modifier: static final
focal_class.original_string: static final String SERVICE_PROPERTY_CATEGORY = ConfigurableService.PREFIX_ + "category";
focal_class.type: String
focal_class.var_name: SERVICE_PROPERTY_CATEGORY
focal_class.declarator: SERVICE_PROPERTY_FACTORY_SERVICE = ConfigurableService.PREFIX_ + "factory"
focal_class.modifier: static final
focal_class.original_string: static final String SERVICE_PROPERTY_FACTORY_SERVICE = ConfigurableService.PREFIX_ + "factory";
focal_class.type: String
focal_class.var_name: SERVICE_PROPERTY_FACTORY_SERVICE
focal_class.declarator: CONFIGURABLE_SERVICE_FILTER = "(&(" + SERVICE_PROPERTY_DESCRIPTION_URI + "=*)(!("
              + SERVICE_PROPERTY_FACTORY_SERVICE + "=*)))"
focal_class.modifier: public static final
focal_class.original_string: public static final String CONFIGURABLE_SERVICE_FILTER = "(&(" + SERVICE_PROPERTY_DESCRIPTION_URI + "=*)(!("
              + SERVICE_PROPERTY_FACTORY_SERVICE + "=*)))";
focal_class.type: String
focal_class.var_name: CONFIGURABLE_SERVICE_FILTER
focal_class.declarator: CONFIGURABLE_MULTI_CONFIG_SERVICE_FILTER = "(" + SERVICE_PROPERTY_FACTORY_SERVICE
              + "=*)"
focal_class.modifier: public static final
focal_class.original_string: public static final String CONFIGURABLE_MULTI_CONFIG_SERVICE_FILTER = "(" + SERVICE_PROPERTY_FACTORY_SERVICE
              + "=*)";
focal_class.type: String
focal_class.var_name: CONFIGURABLE_MULTI_CONFIG_SERVICE_FILTER
focal_class.file: bundles/org.openhab.core.config.core/src/main/java/org/openhab/core/config/core/ConfigurableServiceUtil.java
focal_class.identifier: ConfigurableServiceUtil
focal_class.class_method_signature: ConfigurableServiceUtil.asConfigurableService(Function<String, @Nullable Object> propertyResolver)
focal_class.full_signature: public static ConfigurableService asConfigurableService(Function<String, @Nullable Object> propertyResolver)
focal_class.identifier: asConfigurableService
focal_class.modifiers: public static
focal_class.parameters: (Function<String, @Nullable Object> propertyResolver)
focal_class.return: ConfigurableService
focal_class.signature: ConfigurableService asConfigurableService(Function<String, @Nullable Object> propertyResolver)
focal_class.class_method_signature: ConfigurableServiceUtil.resolveString(Function<String, @Nullable Object> propertyResolver, String key)
focal_class.full_signature: private static String resolveString(Function<String, @Nullable Object> propertyResolver, String key)
focal_class.identifier: resolveString
focal_class.modifiers: private static
focal_class.parameters: (Function<String, @Nullable Object> propertyResolver, String key)
focal_class.return: String
focal_class.signature: String resolveString(Function<String, @Nullable Object> propertyResolver, String key)
focal_class.class_method_signature: ConfigurableServiceUtil.resolveBoolean(Function<String, @Nullable Object> propertyResolver, String key)
focal_class.full_signature: private static boolean resolveBoolean(Function<String, @Nullable Object> propertyResolver, String key)
focal_class.identifier: resolveBoolean
focal_class.modifiers: private static
focal_class.parameters: (Function<String, @Nullable Object> propertyResolver, String key)
focal_class.return: boolean
focal_class.signature: boolean resolveBoolean(Function<String, @Nullable Object> propertyResolver, String key)
focal_method.body: public static ConfigurableService asConfigurableService(Function<String, @Nullable Object> propertyResolver) {
          return new ConfigurableService() {
              @Override
              public Class<? extends Annotation> annotationType() {
                  return ConfigurableService.class;
              }
  
              @Override
              public String label() {
                  return resolveString(propertyResolver, SERVICE_PROPERTY_LABEL);
              }
  
              @Override
              public boolean factory() {
                  return resolveBoolean(propertyResolver, SERVICE_PROPERTY_FACTORY_SERVICE);
              }
  
              @Override
              public String description_uri() {
                  return resolveString(propertyResolver, SERVICE_PROPERTY_DESCRIPTION_URI);
              }
  
              @Override
              public String category() {
                  return resolveString(propertyResolver, SERVICE_PROPERTY_CATEGORY);
              }
          };
      }
focal_method.class_method_signature: ConfigurableServiceUtil.asConfigurableService(Function<String, @Nullable Object> propertyResolver)
focal_method.full_signature: public static ConfigurableService asConfigurableService(Function<String, @Nullable Object> propertyResolver)
focal_method.identifier: asConfigurableService
focal_method.invocations: resolveString resolveBoolean resolveString resolveString
focal_method.modifiers: public static
focal_method.parameters: (Function<String, @Nullable Object> propertyResolver)
focal_method.return: ConfigurableService
focal_method.signature: ConfigurableService asConfigurableService(Function<String, @Nullable Object> propertyResolver)