TopologyHelper.java 2.45 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.felix.scr.annotations.Activate
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.Service
 *  org.apache.sling.settings.SlingSettingsService
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.aemfd.watchfolder.util;

import java.util.Arrays;
import java.util.List;
import java.util.Set;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.settings.SlingSettingsService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component(metatype=0, immediate=1)
@Service(value={TopologyHelper.class})
public class TopologyHelper {
    private static final Logger logger = LoggerFactory.getLogger(TopologyHelper.class);
    @Reference
    private SlingSettingsService slingSettingsService;
    private String localInstanceId;
    private Set<String> localInstanceRunModes;

    @Activate
    public void activate() {
        this.localInstanceId = this.slingSettingsService.getSlingId();
        this.localInstanceRunModes = this.slingSettingsService.getRunModes();
        logger.info("Initialized local instance ID: " + this.localInstanceId + ", run modes: " + this.localInstanceRunModes);
    }

    public String getLocalInstanceId() {
        return this.localInstanceId;
    }

    public boolean isRunModeActiveLocally(String runModes) {
        if (runModes == null || runModes.trim().length() == 0) {
            return true;
        }
        List<String> runModesToCheck = Arrays.asList(runModes.split(","));
        boolean result = false;
        for (String m : runModesToCheck) {
            if ((m = m.trim()).equals("*")) {
                result = true;
                break;
            }
            if (!this.localInstanceRunModes.contains(m)) continue;
            result = true;
            break;
        }
        return result;
    }

    protected void bindSlingSettingsService(SlingSettingsService slingSettingsService) {
        this.slingSettingsService = slingSettingsService;
    }

    protected void unbindSlingSettingsService(SlingSettingsService slingSettingsService) {
        if (this.slingSettingsService == slingSettingsService) {
            this.slingSettingsService = null;
        }
    }
}