AbstractBatchProvider.java 4.65 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.aemds.guide.batch.api.BatchConfig
 *  com.adobe.aemds.guide.batch.api.BatchInput
 *  com.adobe.aemds.guide.batch.api.BatchProvider
 *  com.adobe.aemds.guide.batch.api.PostProcessor
 *  com.adobe.aemds.guide.batch.api.RecordSplitter
 *  com.adobe.aemds.guide.storage.api.StorageProvider
 *  com.adobe.aemfd.docmanager.Document
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ValueMap
 *  org.apache.sling.jcr.api.SlingRepository
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.aemds.guide.batch.impl;

import com.adobe.aemds.guide.batch.api.BatchConfig;
import com.adobe.aemds.guide.batch.api.BatchInput;
import com.adobe.aemds.guide.batch.api.BatchProvider;
import com.adobe.aemds.guide.batch.api.PostProcessor;
import com.adobe.aemds.guide.batch.api.RecordSplitter;
import com.adobe.aemds.guide.batch.impl.DepthBasedRecordSplitter;
import com.adobe.aemds.guide.storage.api.StorageProvider;
import com.adobe.aemfd.docmanager.Document;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.jcr.api.SlingRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class AbstractBatchProvider
implements BatchProvider {
    private Logger logger = LoggerFactory.getLogger(AbstractBatchProvider.class);

    public Map<Document, String> getDataXMLs(BatchInput batchInput, BatchConfig batchConfig) {
        Map dataXMLs = new LinkedHashMap<Document, String>();
        String recordIdentifier = this.getRecordIdentifier(batchConfig);
        List dataRecords = batchInput.getDataXMLs();
        if (dataRecords != null) {
            this.logger.debug("BatchInput " + (Object)batchInput + " has supplied individual data records");
            for (Document dataRecord : dataRecords) {
                RecordSplitter recordSplitter = batchConfig.getRecordSplitter();
                if (recordSplitter == null) {
                    recordSplitter = new DepthBasedRecordSplitter();
                    recordSplitter.configure((Object)0, recordIdentifier);
                }
                dataXMLs.putAll(recordSplitter.split(dataRecord));
            }
        } else {
            Document dataXML = batchInput.getDataXML();
            if (dataXML != null) {
                this.logger.debug("BatchInput " + (Object)batchInput + " has supplied a single large data XML");
                RecordSplitter recordSplitter = batchConfig.getRecordSplitter();
                if (recordSplitter == null) {
                    recordSplitter = new DepthBasedRecordSplitter();
                    recordSplitter.configure((Object)1, recordIdentifier);
                }
                dataXMLs = recordSplitter.split(dataXML);
            }
        }
        return dataXMLs;
    }

    public StorageProvider getStorageProvider(BatchConfig batchConfig, StorageProvider defaultStorageProvider) {
        StorageProvider storageProvider = batchConfig.getStorageProvider();
        if (storageProvider == null) {
            storageProvider = defaultStorageProvider;
        }
        return storageProvider;
    }

    public PostProcessor getPostProcessor(BatchConfig batchConfig, PostProcessor defaultPostProcessor) {
        PostProcessor postProcessor = batchConfig.getPostProcessor();
        if (postProcessor == null) {
            postProcessor = defaultPostProcessor;
        }
        return postProcessor;
    }

    public RecordSplitter getRecordSplitter(BatchConfig batchConfig, RecordSplitter defaultRecordSplitter) {
        RecordSplitter recordSplitter = batchConfig.getRecordSplitter();
        if (recordSplitter == null) {
            recordSplitter = defaultRecordSplitter;
        }
        return recordSplitter;
    }

    public String getRecordIdentifier(BatchConfig batchConfig) {
        String recordIdentifier = batchConfig.getRecordIdentifier();
        if (recordIdentifier == null) {
            recordIdentifier = "id";
        }
        return recordIdentifier;
    }

    public /* varargs */ List<String> asList(String ... str) {
        return Arrays.asList(str);
    }

    public void safelyDispose(Document doc) {
        if (doc != null) {
            doc.dispose();
        }
    }

    public static String getLetterRef(Resource adaptiveDocument) {
        ValueMap guideProps = (ValueMap)adaptiveDocument.adaptTo(ValueMap.class);
        return guideProps != null ? (String)guideProps.get((Object)"letterRef") : null;
    }

    protected abstract SlingRepository getSlingRepository();
}