All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adobe.forms.foundation.service.handlers.FormsReferenceProvider Maven / Gradle / Ivy

/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * ___________________
 *
 *  Copyright 2016 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/

package com.adobe.forms.foundation.service.handlers;

import com.adobe.forms.foundation.service.FormsAssetType;
import com.adobe.forms.foundation.service.FormsDependencyManager;
import com.adobe.granite.references.ReferenceProvider;
import com.adobe.granite.references.Reference;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * Created by ramnani on 5/30/2016.
 */

@Component
@Service(value = ReferenceProvider.class)
public class FormsReferenceProvider implements ReferenceProvider {

    @org.apache.felix.scr.annotations.Reference
    private FormsDependencyManager formsDependencyManager;

    private static final Logger logger = LoggerFactory.getLogger(FormsReferenceProvider.class);

    public String getType() {
        return "formReferences";
    }

    public List getReferences(Resource resource) {
        List references = new ArrayList();
	    if(resource != null) {
		    String resourceId = resource.getPath();
		    try {
			    ResourceResolver resourceResolver = resource.getResourceResolver();
			    Map> parentDeps = formsDependencyManager.getImmediateParentDependencies(resourceId);
			    for (FormsAssetType assetType : parentDeps.keySet()) {
				    Set ids = parentDeps.get(assetType);
				    for (String id : ids) {
					    references.add(new Reference(resource, resourceResolver.getResource(id), getType()));
				    }
			    }
		    } catch (Exception e) {
			    logger.error("Error in retrieving dependencies for the given resource : " + resourceId, e);
		    }
	    }
        return references;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy