private void addServiceMetadata()

in src/main/java/org/apache/sling/adapter/internal/AdapterWebConsolePlugin.java [109:126]


    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();
            }    
        }
    }