ProcessorProviderImpl.java 2.24 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.annotation.CheckForNull
 *  javax.annotation.Nonnull
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.ReferenceCardinality
 *  org.apache.felix.scr.annotations.ReferencePolicy
 *  org.apache.felix.scr.annotations.References
 *  org.apache.felix.scr.annotations.Service
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.granite.ui.clientlibs.impl;

import com.adobe.granite.ui.clientlibs.impl.ProcessorProvider;
import com.adobe.granite.ui.clientlibs.script.ScriptProcessor;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.apache.felix.scr.annotations.ReferencePolicy;
import org.apache.felix.scr.annotations.References;
import org.apache.felix.scr.annotations.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component(immediate=1)
@References(value={@Reference(name="processor", referenceInterface=ScriptProcessor.class, cardinality=ReferenceCardinality.OPTIONAL_MULTIPLE, policy=ReferencePolicy.DYNAMIC)})
@Service
public class ProcessorProviderImpl
implements ProcessorProvider {
    private static final Logger log = LoggerFactory.getLogger(ProcessorProviderImpl.class);
    private ConcurrentHashMap<String, ScriptProcessor> processors = new ConcurrentHashMap();

    protected void bindProcessor(ScriptProcessor processor, Map<String, Object> props) {
        this.processors.put(processor.getName(), processor);
        log.info("Registering client library processor {}", (Object)processor.getName());
    }

    protected void unbindProcessor(ScriptProcessor processor, Map<String, Object> props) {
        this.processors.remove(processor.getName(), processor);
        log.info("Unregistering client library processor {}", (Object)processor.getName());
    }

    @CheckForNull
    @Override
    public ScriptProcessor getProcessor(@Nonnull String name) {
        return this.processors.get(name);
    }
}