BreadcrumbFactory.java 1.79 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.i18n.I18n
 *  org.apache.sling.api.resource.Resource
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.cq.projects.ui.impl.navigation;

import com.adobe.cq.projects.ui.Breadcrumb;
import com.adobe.cq.projects.ui.impl.navigation.BreadcrumbResolver;
import com.adobe.cq.projects.ui.impl.navigation.EmptyBreadcrumbResolver;
import com.adobe.cq.projects.ui.impl.navigation.ProjectBreadcrumbResolver;
import com.adobe.cq.projects.ui.impl.navigation.TaskBreadcrumbResolver;
import com.day.cq.i18n.I18n;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.apache.sling.api.resource.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class BreadcrumbFactory {
    private static final Logger LOGGER = LoggerFactory.getLogger(BreadcrumbFactory.class);
    private List<BreadcrumbResolver> breadcrumbResolvers = new ArrayList<BreadcrumbResolver>();

    public BreadcrumbFactory() {
        this.breadcrumbResolvers.add(new EmptyBreadcrumbResolver());
        this.breadcrumbResolvers.add(new ProjectBreadcrumbResolver());
        this.breadcrumbResolvers.add(new TaskBreadcrumbResolver());
    }

    public Collection<Breadcrumb> createBreadcrumbs(I18n i18n, Resource resource) {
        for (BreadcrumbResolver breadcrumbResolver : this.breadcrumbResolvers) {
            if (!breadcrumbResolver.canResolve(resource)) continue;
            return Collections.unmodifiableCollection(breadcrumbResolver.resolve(i18n, resource));
        }
        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Unable to resolve a breadcrumb resolver for " + resource.getPath());
        }
        return new ArrayList<Breadcrumb>();
    }
}