test_class.declarator: uriDummy
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) URI uriDummy;
test_class.type: URI
test_class.var_name: uriDummy
test_class.declarator: uriDummy1
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) URI uriDummy1;
test_class.type: URI
test_class.var_name: uriDummy1
test_class.declarator: uriAliases
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) URI uriAliases;
test_class.type: URI
test_class.var_name: uriAliases
test_class.declarator: configDescriptionRegistry
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) ConfigDescriptionRegistry configDescriptionRegistry;
test_class.type: ConfigDescriptionRegistry
test_class.var_name: configDescriptionRegistry
test_class.declarator: configDescription
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) ConfigDescription configDescription;
test_class.type: ConfigDescription
test_class.var_name: configDescription
test_class.declarator: configDescription1
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) ConfigDescription configDescription1;
test_class.type: ConfigDescription
test_class.var_name: configDescription1
test_class.declarator: configDescription2
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) ConfigDescription configDescription2;
test_class.type: ConfigDescription
test_class.var_name: configDescription2
test_class.declarator: configDescriptionAliased
test_class.modifier: private @NonNullByDefault({})
test_class.original_string: private @NonNullByDefault({}) ConfigDescription configDescriptionAliased;
test_class.type: ConfigDescription
test_class.var_name: configDescriptionAliased
test_class.declarator: configDescriptionProviderMock
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigDescriptionProvider configDescriptionProviderMock;
test_class.type: ConfigDescriptionProvider
test_class.var_name: configDescriptionProviderMock
test_class.declarator: configDescriptionProviderMock1
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigDescriptionProvider configDescriptionProviderMock1;
test_class.type: ConfigDescriptionProvider
test_class.var_name: configDescriptionProviderMock1
test_class.declarator: configDescriptionProviderMock2
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigDescriptionProvider configDescriptionProviderMock2;
test_class.type: ConfigDescriptionProvider
test_class.var_name: configDescriptionProviderMock2
test_class.declarator: configDescriptionProviderAliased
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigDescriptionProvider configDescriptionProviderAliased;
test_class.type: ConfigDescriptionProvider
test_class.var_name: configDescriptionProviderAliased
test_class.declarator: aliasProvider
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigDescriptionAliasProvider aliasProvider;
test_class.type: ConfigDescriptionAliasProvider
test_class.var_name: aliasProvider
test_class.declarator: configOptionsProviderMockAliased
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigOptionProvider configOptionsProviderMockAliased;
test_class.type: ConfigOptionProvider
test_class.var_name: configOptionsProviderMockAliased
test_class.declarator: configOptionsProviderMock
test_class.modifier: private @Mock @NonNullByDefault({})
test_class.original_string: private @Mock @NonNullByDefault({}) ConfigOptionProvider configOptionsProviderMock;
test_class.type: ConfigOptionProvider
test_class.var_name: configOptionsProviderMock
test_class.file: bundles/org.openhab.core.config.core/src/test/java/org/openhab/core/config/core/ConfigDescriptionRegistryTest.java
test_class.identifier: ConfigDescriptionRegistryTest
test_class.superclass: extends JavaTest
test_case.body: @Test
      public void testGetConfigDescription() throws Exception {
          configDescriptionRegistry.addConfigDescriptionProvider(configDescriptionProviderMock);
  
          ConfigDescription configDescription = requireNonNull(configDescriptionRegistry.getConfigDescription(uriDummy));
          assertThat(configDescription.getUID(), is(equalTo(uriDummy)));
      }
test_case.class_method_signature: ConfigDescriptionRegistryTest.testGetConfigDescription()
test_case.full_signature: @Test public void testGetConfigDescription()
test_case.identifier: testGetConfigDescription
test_case.invocations: addConfigDescriptionProvider requireNonNull getConfigDescription assertThat getUID is equalTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetConfigDescription()
focal_class.declarator: logger = LoggerFactory.getLogger(ConfigDescriptionRegistry.class)
focal_class.modifier: private final
focal_class.original_string: private final Logger logger = LoggerFactory.getLogger(ConfigDescriptionRegistry.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: configOptionProviders = new CopyOnWriteArrayList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<ConfigOptionProvider> configOptionProviders = new CopyOnWriteArrayList<>();
focal_class.type: List<ConfigOptionProvider>
focal_class.var_name: configOptionProviders
focal_class.declarator: configDescriptionProviders = new CopyOnWriteArrayList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<ConfigDescriptionProvider> configDescriptionProviders = new CopyOnWriteArrayList<>();
focal_class.type: List<ConfigDescriptionProvider>
focal_class.var_name: configDescriptionProviders
focal_class.declarator: configDescriptionAliasProviders = new CopyOnWriteArrayList<>()
focal_class.modifier: private final
focal_class.original_string: private final List<ConfigDescriptionAliasProvider> configDescriptionAliasProviders = new CopyOnWriteArrayList<>();
focal_class.type: List<ConfigDescriptionAliasProvider>
focal_class.var_name: configDescriptionAliasProviders
focal_class.file: bundles/org.openhab.core.config.core/src/main/java/org/openhab/core/config/core/ConfigDescriptionRegistry.java
focal_class.identifier: ConfigDescriptionRegistry
focal_class.class_method_signature: ConfigDescriptionRegistry.addConfigOptionProvider(ConfigOptionProvider configOptionProvider)
focal_class.full_signature: @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) protected void addConfigOptionProvider(ConfigOptionProvider configOptionProvider)
focal_class.identifier: addConfigOptionProvider
focal_class.modifiers: @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) protected
focal_class.parameters: (ConfigOptionProvider configOptionProvider)
focal_class.return: void
focal_class.signature: void addConfigOptionProvider(ConfigOptionProvider configOptionProvider)
focal_class.class_method_signature: ConfigDescriptionRegistry.removeConfigOptionProvider(ConfigOptionProvider configOptionProvider)
focal_class.full_signature: protected void removeConfigOptionProvider(ConfigOptionProvider configOptionProvider)
focal_class.identifier: removeConfigOptionProvider
focal_class.modifiers: protected
focal_class.parameters: (ConfigOptionProvider configOptionProvider)
focal_class.return: void
focal_class.signature: void removeConfigOptionProvider(ConfigOptionProvider configOptionProvider)
focal_class.class_method_signature: ConfigDescriptionRegistry.addConfigDescriptionProvider(ConfigDescriptionProvider configDescriptionProvider)
focal_class.full_signature: @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) protected void addConfigDescriptionProvider(ConfigDescriptionProvider configDescriptionProvider)
focal_class.identifier: addConfigDescriptionProvider
focal_class.modifiers: @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) protected
focal_class.parameters: (ConfigDescriptionProvider configDescriptionProvider)
focal_class.return: void
focal_class.signature: void addConfigDescriptionProvider(ConfigDescriptionProvider configDescriptionProvider)
focal_class.class_method_signature: ConfigDescriptionRegistry.removeConfigDescriptionProvider(ConfigDescriptionProvider configDescriptionProvider)
focal_class.full_signature: protected void removeConfigDescriptionProvider(ConfigDescriptionProvider configDescriptionProvider)
focal_class.identifier: removeConfigDescriptionProvider
focal_class.modifiers: protected
focal_class.parameters: (ConfigDescriptionProvider configDescriptionProvider)
focal_class.return: void
focal_class.signature: void removeConfigDescriptionProvider(ConfigDescriptionProvider configDescriptionProvider)
focal_class.class_method_signature: ConfigDescriptionRegistry.addConfigDescriptionAliasProvider(ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.full_signature: @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) protected void addConfigDescriptionAliasProvider(ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.identifier: addConfigDescriptionAliasProvider
focal_class.modifiers: @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) protected
focal_class.parameters: (ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.return: void
focal_class.signature: void addConfigDescriptionAliasProvider(ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.class_method_signature: ConfigDescriptionRegistry.removeConfigDescriptionAliasProvider(ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.full_signature: protected void removeConfigDescriptionAliasProvider(ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.identifier: removeConfigDescriptionAliasProvider
focal_class.modifiers: protected
focal_class.parameters: (ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.return: void
focal_class.signature: void removeConfigDescriptionAliasProvider(ConfigDescriptionAliasProvider configDescriptionAliasProvider)
focal_class.class_method_signature: ConfigDescriptionRegistry.getConfigDescriptions(@Nullable Locale locale)
focal_class.full_signature: public Collection<ConfigDescription> getConfigDescriptions(@Nullable Locale locale)
focal_class.identifier: getConfigDescriptions
focal_class.modifiers: public
focal_class.parameters: (@Nullable Locale locale)
focal_class.return: Collection<ConfigDescription>
focal_class.signature: Collection<ConfigDescription> getConfigDescriptions(@Nullable Locale locale)
focal_class.class_method_signature: ConfigDescriptionRegistry.getConfigDescriptions()
focal_class.full_signature: public Collection<ConfigDescription> getConfigDescriptions()
focal_class.identifier: getConfigDescriptions
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<ConfigDescription>
focal_class.signature: Collection<ConfigDescription> getConfigDescriptions()
focal_class.class_method_signature: ConfigDescriptionRegistry.getConfigDescription(URI uri, @Nullable Locale locale)
focal_class.full_signature: public @Nullable ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale)
focal_class.identifier: getConfigDescription
focal_class.modifiers: public @Nullable
focal_class.parameters: (URI uri, @Nullable Locale locale)
focal_class.return: ConfigDescription
focal_class.signature: ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale)
focal_class.class_method_signature: ConfigDescriptionRegistry.getAliases(URI original)
focal_class.full_signature: private Set<URI> getAliases(URI original)
focal_class.identifier: getAliases
focal_class.modifiers: private
focal_class.parameters: (URI original)
focal_class.return: Set<URI>
focal_class.signature: Set<URI> getAliases(URI original)
focal_class.class_method_signature: ConfigDescriptionRegistry.fillFromProviders(URI uri, @Nullable Locale locale, List<ConfigDescriptionParameter> parameters,
              List<ConfigDescriptionParameterGroup> parameterGroups)
focal_class.full_signature: private boolean fillFromProviders(URI uri, @Nullable Locale locale, List<ConfigDescriptionParameter> parameters,
              List<ConfigDescriptionParameterGroup> parameterGroups)
focal_class.identifier: fillFromProviders
focal_class.modifiers: private
focal_class.parameters: (URI uri, @Nullable Locale locale, List<ConfigDescriptionParameter> parameters,
              List<ConfigDescriptionParameterGroup> parameterGroups)
focal_class.return: boolean
focal_class.signature: boolean fillFromProviders(URI uri, @Nullable Locale locale, List<ConfigDescriptionParameter> parameters,
              List<ConfigDescriptionParameterGroup> parameterGroups)
focal_class.class_method_signature: ConfigDescriptionRegistry.getConfigDescription(URI uri)
focal_class.full_signature: public @Nullable ConfigDescription getConfigDescription(URI uri)
focal_class.identifier: getConfigDescription
focal_class.modifiers: public @Nullable
focal_class.parameters: (URI uri)
focal_class.return: ConfigDescription
focal_class.signature: ConfigDescription getConfigDescription(URI uri)
focal_class.class_method_signature: ConfigDescriptionRegistry.getConfigOptions(URI uri, Set<URI> aliases, ConfigDescriptionParameter parameter,
              @Nullable Locale locale)
focal_class.full_signature: private ConfigDescriptionParameter getConfigOptions(URI uri, Set<URI> aliases, ConfigDescriptionParameter parameter,
              @Nullable Locale locale)
focal_class.identifier: getConfigOptions
focal_class.modifiers: private
focal_class.parameters: (URI uri, Set<URI> aliases, ConfigDescriptionParameter parameter,
              @Nullable Locale locale)
focal_class.return: ConfigDescriptionParameter
focal_class.signature: ConfigDescriptionParameter getConfigOptions(URI uri, Set<URI> aliases, ConfigDescriptionParameter parameter,
              @Nullable Locale locale)
focal_class.class_method_signature: ConfigDescriptionRegistry.fillFromProviders(URI alias, ConfigDescriptionParameter parameter, @Nullable Locale locale,
              List<ParameterOption> options)
focal_class.full_signature: private boolean fillFromProviders(URI alias, ConfigDescriptionParameter parameter, @Nullable Locale locale,
              List<ParameterOption> options)
focal_class.identifier: fillFromProviders
focal_class.modifiers: private
focal_class.parameters: (URI alias, ConfigDescriptionParameter parameter, @Nullable Locale locale,
              List<ParameterOption> options)
focal_class.return: boolean
focal_class.signature: boolean fillFromProviders(URI alias, ConfigDescriptionParameter parameter, @Nullable Locale locale,
              List<ParameterOption> options)
focal_method.body: public @Nullable ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale) {
          List<ConfigDescriptionParameter> parameters = new ArrayList<>();
          List<ConfigDescriptionParameterGroup> parameterGroups = new ArrayList<>();
  
          boolean found = false;
          Set<URI> aliases = getAliases(uri);
          for (URI alias : aliases) {
              logger.debug("No config description found for '{}', using alias '{}' instead", uri, alias);
              found |= fillFromProviders(alias, locale, parameters, parameterGroups);
          }
  
          found |= fillFromProviders(uri, locale, parameters, parameterGroups);
  
          if (found) {
              List<ConfigDescriptionParameter> parametersWithOptions = new ArrayList<>(parameters.size());
              for (ConfigDescriptionParameter parameter : parameters) {
                  parametersWithOptions.add(getConfigOptions(uri, aliases, parameter, locale));
              }
  
              // Return the new configuration description
              return ConfigDescriptionBuilder.create(uri).withParameters(parametersWithOptions)
                      .withParameterGroups(parameterGroups).build();
          } else {
              // Otherwise null
              return null;
          }
      }
focal_method.class_method_signature: ConfigDescriptionRegistry.getConfigDescription(URI uri, @Nullable Locale locale)
focal_method.full_signature: public @Nullable ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale)
focal_method.identifier: getConfigDescription
focal_method.invocations: getAliases debug fillFromProviders fillFromProviders size add getConfigOptions build withParameterGroups withParameters create
focal_method.modifiers: public @Nullable
focal_method.parameters: (URI uri, @Nullable Locale locale)
focal_method.return: ConfigDescription
focal_method.signature: ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale)