private void addServiceMetadata()

in src/main/java/org/apache/sling/adapter/internal/AdapterWebConsolePlugin.java [112:138]


    private void addServiceMetadata(final ServiceReference reference) {
        final Converter converter = Converters.standardConverter();
        final String[] adaptables =
                converter.convert(reference.getProperty(ADAPTABLE_CLASSES)).to(String[].class);
        final String[] adapters =
                converter.convert(reference.getProperty(ADAPTER_CLASSES)).to(String[].class);
        final String condition = converter
                .convert(reference.getProperty(ADAPTER_CONDITION))
                .defaultValue("")
                .to(String.class);
        final boolean deprecated = converter
                .convert(reference.getProperty(ADAPTER_DEPRECATED))
                .defaultValue(false)
                .to(Boolean.class);

        if (adapters != null && adapters.length > 0) {
            final List<AdaptableDescription> descriptions = new ArrayList<>(adaptables.length);
            for (final String adaptable : adaptables) {
                descriptions.add(
                        new AdaptableDescription(reference.getBundle(), adaptable, adapters, condition, deprecated));
            }
            synchronized (this) {
                adapterServiceReferences.put(reference, descriptions);
                update();
            }
        }
    }