
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