ADInstanceGeneratorImpl.java 4.26 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.aemds.guide.service.GuideModelTransformer
 *  com.adobe.aemds.guide.utils.GuideUtils
 *  com.adobe.granite.resourceresolverhelper.ResourceResolverHelper
 *  com.adobe.icc.services.api.AdInstanceGenerator
 *  com.day.cq.i18n.I18n
 *  org.apache.commons.lang.StringUtils
 *  org.apache.felix.scr.annotations.Component
 *  org.apache.felix.scr.annotations.Reference
 *  org.apache.felix.scr.annotations.Service
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.i18n.ResourceBundleProvider
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.fd.adaddon.service.impl;

import com.adobe.aemds.guide.service.GuideModelTransformer;
import com.adobe.aemds.guide.utils.GuideUtils;
import com.adobe.granite.resourceresolverhelper.ResourceResolverHelper;
import com.adobe.icc.services.api.AdInstanceGenerator;
import com.day.cq.i18n.I18n;
import java.util.Locale;
import org.apache.commons.lang.StringUtils;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.i18n.ResourceBundleProvider;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component(immediate=1, label="ADInstanceGeneratorImpl", description="ADInstanceGeneratorImpl")
@Service(value={AdInstanceGenerator.class})
public class ADInstanceGeneratorImpl
implements AdInstanceGenerator {
    private static final Logger logger = LoggerFactory.getLogger(ADInstanceGeneratorImpl.class);
    @Reference
    private ResourceBundleProvider resourceBundleProvider;
    @Reference
    private GuideModelTransformer guideModelTransformer;
    @Reference
    private ResourceResolverHelper resourceResolverHelper;

    public byte[] generateMergedJson(String letterRef, String adPath, String data) {
        try {
            Resource adaptiveDocument;
            Resource resource = adaptiveDocument = StringUtils.isNotBlank((String)adPath) ? this.getADContainerNode(adPath) : null;
            if (adaptiveDocument == null) {
                return null;
            }
            I18n i18n = GuideUtils.getI18n((ResourceBundleProvider)this.resourceBundleProvider, (Resource)adaptiveDocument, (Locale)this.resourceBundleProvider.getDefaultLocale());
            String json = this.guideModelTransformer.exportGuideDataJson(adaptiveDocument, data, i18n);
            logger.trace("JSON :" + json);
            return json.getBytes("UTF-8");
        }
        catch (Exception e) {
            logger.info("Error Generating Merged JSon for AD Path " + adPath + ", and letterRef: " + letterRef, (Throwable)e);
            return null;
        }
    }

    private Resource getADContainerNode(String adAssetPath) {
        ResourceResolver resolver = this.resourceResolverHelper.getResourceResolver();
        String path = GuideUtils.convertFMAssetPathToContainerPath((String)adAssetPath);
        return resolver.getResource(path);
    }

    protected void bindResourceBundleProvider(ResourceBundleProvider resourceBundleProvider) {
        this.resourceBundleProvider = resourceBundleProvider;
    }

    protected void unbindResourceBundleProvider(ResourceBundleProvider resourceBundleProvider) {
        if (this.resourceBundleProvider == resourceBundleProvider) {
            this.resourceBundleProvider = null;
        }
    }

    protected void bindGuideModelTransformer(GuideModelTransformer guideModelTransformer) {
        this.guideModelTransformer = guideModelTransformer;
    }

    protected void unbindGuideModelTransformer(GuideModelTransformer guideModelTransformer) {
        if (this.guideModelTransformer == guideModelTransformer) {
            this.guideModelTransformer = null;
        }
    }

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

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