AEMFDWorkflowProcess.java 4.29 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.granite.resourceresolverhelper.ResourceResolverHelper
 *  com.adobe.granite.workflow.WorkflowException
 *  com.adobe.granite.workflow.WorkflowSession
 *  com.adobe.granite.workflow.exec.WorkItem
 *  com.adobe.granite.workflow.exec.WorkflowProcess
 *  com.adobe.granite.workflow.metadata.MetaDataMap
 *  javax.jcr.Session
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.api.resource.ResourceResolverFactory
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.fd.workflow.internal.common;

import com.adobe.granite.resourceresolverhelper.ResourceResolverHelper;
import com.adobe.granite.workflow.WorkflowException;
import com.adobe.granite.workflow.WorkflowSession;
import com.adobe.granite.workflow.exec.WorkItem;
import com.adobe.granite.workflow.exec.WorkflowProcess;
import com.adobe.granite.workflow.metadata.MetaDataMap;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Callable;
import javax.jcr.Session;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component
public abstract class AEMFDWorkflowProcess
implements WorkflowProcess {
    private static Logger logger = LoggerFactory.getLogger(AEMFDWorkflowProcess.class);
    @Reference
    protected ResourceResolverHelper resourceResolverHelper;
    @Reference
    protected ResourceResolverFactory resourceResolverFactory;

    public void execute(final WorkItem workItem, final WorkflowSession workflowSession, final MetaDataMap metaDataMap) throws WorkflowException {
        try {
            logger.debug("metaDataMap =" + (Object)metaDataMap);
            ResourceResolver resolver = this.resourceResolverFactory.getResourceResolver(Collections.singletonMap("user.jcr.session", workflowSession.adaptTo(Session.class)));
            logger.debug("resourceresolver = " + (Object)resolver);
            logger.debug("resolverhelper = " + (Object)this.resourceResolverHelper);
            this.resourceResolverHelper.callWith(resolver, (Callable)new Callable<Void>(){

                @Override
                public Void call() throws WorkflowException {
                    AEMFDWorkflowProcess.this.internal_execute(workItem, workflowSession, metaDataMap);
                    return null;
                }
            });
        }
        catch (Exception e) {
            logger.error("Exception : ", (Throwable)e);
            throw new WorkflowException((Throwable)e);
        }
    }

    protected ResourceResolver getResourceResolver(Session session) throws WorkflowException {
        try {
            HashMap<String, Session> authenticationMap = new HashMap<String, Session>();
            authenticationMap.put("user.jcr.session", session);
            return this.resourceResolverFactory.getResourceResolver(authenticationMap);
        }
        catch (Exception e) {
            logger.debug("Exception in getting Resource Resolver", (Throwable)e);
            throw new WorkflowException("Exception in getting Resource Resolver", (Throwable)e);
        }
    }

    protected abstract void internal_execute(WorkItem var1, WorkflowSession var2, MetaDataMap var3) throws WorkflowException;

    protected void bindResourceResolverHelper(ResourceResolverHelper resourceResolverHelper) {
        this.resourceResolverHelper = resourceResolverHelper;
    }

    protected void unbindResourceResolverHelper(ResourceResolverHelper resourceResolverHelper) {
        if (this.resourceResolverHelper == resourceResolverHelper) {
            this.resourceResolverHelper = null;
        }
    }

    protected void bindResourceResolverFactory(ResourceResolverFactory resourceResolverFactory) {
        this.resourceResolverFactory = resourceResolverFactory;
    }

    protected void unbindResourceResolverFactory(ResourceResolverFactory resourceResolverFactory) {
        if (this.resourceResolverFactory == resourceResolverFactory) {
            this.resourceResolverFactory = null;
        }
    }

}