JobConfiguration.java 12.8 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.pdfg.logging.ErrorCodeConversion
 *  com.adobe.pdfg.logging.PDFGLogger
 */
package com.adobe.pdfg.common;

import com.adobe.native2pdf.xml.File2PdfSettings;
import com.adobe.native2pdf.xml.FiletypeSettings;
import com.adobe.native2pdf.xml.JobOptions;
import com.adobe.native2pdf.xml.SecuritySettings;
import com.adobe.pdfg.common.AESProperties;
import com.adobe.pdfg.common.Constants;
import com.adobe.pdfg.config.PDFGConfigUtility;
import com.adobe.pdfg.logging.ErrorCodeConversion;
import com.adobe.pdfg.logging.PDFGLogger;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Set;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

public class JobConfiguration
implements Serializable {
    private static final PDFGLogger pdfgLogger = PDFGLogger.getPDFGLogger(JobConfiguration.class);
    protected static final String context = "com.adobe.native2pdf.xml";
    protected File2PdfSettings config = null;

    public JobConfiguration(String configString) throws JAXBException {
        try {
            Unmarshaller unmarshaller = PDFGConfigUtility.getUnmarshaller();
            ByteArrayInputStream in = new ByteArrayInputStream(configString.getBytes("UTF-8"));
            this.config = (File2PdfSettings)unmarshaller.unmarshal(in);
        }
        catch (UnsupportedEncodingException e) {
            throw new JAXBException(e);
        }
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public JobConfiguration(File configFile) throws FileNotFoundException, JAXBException {
        Unmarshaller unmarshaller = PDFGConfigUtility.getUnmarshaller();
        FileInputStream in = null;
        try {
            in = new FileInputStream(configFile);
            this.config = (File2PdfSettings)unmarshaller.unmarshal(in);
        }
        finally {
            if (in != null) {
                try {
                    in.close();
                }
                catch (IOException e) {
                    pdfgLogger.debug(e.getMessage(), null, (Throwable)e);
                }
            }
        }
    }

    public SecuritySettings.Settings getSecuritySettings() {
        List<SecuritySettings.Settings> list = this.config.getSecuritySettings().getSettings();
        if (this.config.isSetAction() && this.config.getAction().isSetSecuritySetting()) {
            String secSetting = this.config.getAction().getSecuritySetting();
            ListIterator<SecuritySettings.Settings> liter = list.listIterator();
            while (liter.hasNext()) {
                SecuritySettings.Settings sec = liter.next();
                if (!secSetting.equals(sec.getName())) continue;
                return sec;
            }
        }
        return list.get(0);
    }

    public JobOptions.JobOption getJobOptions() {
        JobOptions.JobOption result = null;
        List<JobOptions.JobOption> list = this.config.getJobOptions().getJobOption();
        String joSetting = this.getJobOptionName();
        ListIterator<JobOptions.JobOption> liter = list.listIterator();
        while (liter.hasNext()) {
            JobOptions.JobOption jo = liter.next();
            if (!joSetting.equals(jo.getName())) continue;
            result = jo;
            break;
        }
        return result;
    }

    public String getJobOptionName() {
        List<JobOptions.JobOption> list;
        String result = ErrorCodeConversion.getErrorString((int)1, (Locale)AESProperties.getLocale());
        if (this.config.isSetAction() && this.config.getAction().isSetJobOptionSetting()) {
            result = this.config.getAction().getJobOptionSetting();
        } else if (this.config.isSetJobOptions() && this.config.getJobOptions().isSetJobOption() && (list = this.config.getJobOptions().getJobOption()).size() > 0) {
            JobOptions.JobOption jo = list.get(0);
            result = jo.getName();
        }
        return result;
    }

    public FiletypeSettings.Settings getFiletypeSettings() {
        if (this.config.getFiletypeSettings() == null) {
            return null;
        }
        List<FiletypeSettings.Settings> list = this.config.getFiletypeSettings().getSettings();
        if (this.config.isSetAction() && this.config.getAction().isSetFiletypeSetting()) {
            String fileTypeSetting = this.config.getAction().getFiletypeSetting();
            ListIterator<FiletypeSettings.Settings> liter = list.listIterator();
            while (liter.hasNext()) {
                FiletypeSettings.Settings ft = liter.next();
                if (!fileTypeSetting.equals(ft.getName())) continue;
                return ft;
            }
        }
        return list.get(0);
    }

    public List getAllFiletypeSettings() {
        if (this.config.getFiletypeSettings() == null) {
            return null;
        }
        List<FiletypeSettings.Settings> list = this.config.getFiletypeSettings().getSettings();
        return list;
    }

    public int getConversionTimeoutSetting(int minValue, int defaultValue, int maxValue) {
        int result = defaultValue;
        if (this.config.isSetAction() && this.config.getAction().isSetTimeout()) {
            int xmlTimeout = this.config.getAction().getTimeout();
            result = Math.max(minValue, xmlTimeout);
            result = Math.min(result, maxValue);
        }
        return result;
    }

    public Serializable getAppConfigByExtension(FiletypeSettings.Settings filetypeSettings, String extension, boolean giveFallback) {
        if (!giveFallback) {
            if (filetypeSettings.isSetImage() && this.extensionMatches(extension, filetypeSettings.getImage().getExtensions())) {
                return filetypeSettings.getImage();
            }
            if (filetypeSettings.isSetAcrobat() && this.extensionMatches(extension, filetypeSettings.getAcrobat().getExtensions())) {
                PDFGLogger.getPDFGLogger(this.getClass()).warning("001-011", "");
                return filetypeSettings.getAcrobat();
            }
            if (filetypeSettings.isSetAutoCAD() && this.extensionMatches(extension, filetypeSettings.getAutoCAD().getExtensions())) {
                return filetypeSettings.getAutoCAD();
            }
            if (filetypeSettings.isSetAdobeFlash() && this.extensionMatches(extension, filetypeSettings.getAdobeFlash().getExtensions())) {
                return filetypeSettings.getAdobeFlash();
            }
            if (filetypeSettings.isSetXPS() && this.extensionMatches(extension, filetypeSettings.getXPS().getExtensions())) {
                return filetypeSettings.getXPS();
            }
            if (filetypeSettings.isSetMSExcel() && this.extensionMatches(extension, filetypeSettings.getMSExcel().getExtensions())) {
                return filetypeSettings.getMSExcel();
            }
            if (filetypeSettings.isSetMSPowerpoint() && this.extensionMatches(extension, filetypeSettings.getMSPowerpoint().getExtensions())) {
                return filetypeSettings.getMSPowerpoint();
            }
            if (filetypeSettings.isSetMSPublisher() && this.extensionMatches(extension, filetypeSettings.getMSPublisher().getExtensions())) {
                return filetypeSettings.getMSPublisher();
            }
            if (filetypeSettings.isSetMSProject() && this.extensionMatches(extension, filetypeSettings.getMSProject().getExtensions())) {
                return filetypeSettings.getMSProject();
            }
            if (filetypeSettings.isSetMSPublisher() && this.extensionMatches(extension, filetypeSettings.getMSPublisher().getExtensions())) {
                return filetypeSettings.getMSPublisher();
            }
            if (filetypeSettings.isSetMSVisio() && this.extensionMatches(extension, filetypeSettings.getMSVisio().getExtensions())) {
                return filetypeSettings.getMSVisio();
            }
            if (filetypeSettings.isSetMSWord() && this.extensionMatches(extension, filetypeSettings.getMSWord().getExtensions())) {
                return filetypeSettings.getMSWord();
            }
            if (filetypeSettings.isSetPDFExport()) {
                String handledExtensions = "pdf";
                if (filetypeSettings.getPDFExport().isSetExtensions()) {
                    handledExtensions = filetypeSettings.getPDFExport().getExtensions();
                }
                if (this.extensionMatches(extension, handledExtensions)) {
                    return filetypeSettings.getPDFExport();
                }
            }
            if (filetypeSettings.isSetOpenOffice() && this.extensionMatches(extension, filetypeSettings.getOpenOffice().getExtensions())) {
                return filetypeSettings.getOpenOffice();
            }
            List<FiletypeSettings.Settings.GenericApp> genericAppList = filetypeSettings.getGenericApp();
            for (FiletypeSettings.Settings.GenericApp genericSettings : genericAppList) {
                if (!this.extensionMatches(extension, genericSettings.getExtensions())) continue;
                return genericSettings;
            }
        } else {
            boolean isWindows;
            String osName = System.getProperty("os.name").toLowerCase();
            boolean bl = isWindows = osName.indexOf("windows") >= 0;
            if (filetypeSettings.isSetImage() && filetypeSettings.getImage().isUseFallback() && this.extensionMatches(extension, filetypeSettings.getImage().getExtensions())) {
                FiletypeSettings.Settings.Image imt = filetypeSettings.getImage();
                String extSmallCase = extension.toLowerCase();
                boolean forJpeg2kUseAcrobat = Constants.JPEG2K_IMAGE_EXTENSION_MAP.contains(extSmallCase);
                if (imt.isUseOCR() || !isWindows || forJpeg2kUseAcrobat) {
                    return null;
                }
                return imt;
            }
            if (filetypeSettings.isSetMSExcel() && filetypeSettings.getMSExcel().isUseFallback() && this.extensionMatches(extension, filetypeSettings.getMSExcel().getExtensions())) {
                return filetypeSettings.getOpenOffice();
            }
            if (filetypeSettings.isSetMSPowerpoint() && filetypeSettings.getMSPowerpoint().isUseFallback() && this.extensionMatches(extension, filetypeSettings.getMSPowerpoint().getExtensions())) {
                return filetypeSettings.getOpenOffice();
            }
            if (filetypeSettings.isSetMSWord() && filetypeSettings.getMSWord().isUseFallback() && this.extensionMatches(extension, filetypeSettings.getMSWord().getExtensions())) {
                return filetypeSettings.getOpenOffice();
            }
            if (filetypeSettings.isSetOpenOffice() && filetypeSettings.getOpenOffice().isUseFallback() && this.extensionMatches(extension, filetypeSettings.getOpenOffice().getExtensions())) {
                if (extension.equalsIgnoreCase("doc")) {
                    return filetypeSettings.getMSWord();
                }
                if (extension.equalsIgnoreCase("xls")) {
                    return filetypeSettings.getMSExcel();
                }
                if (extension.equalsIgnoreCase("ppt")) {
                    return filetypeSettings.getMSPowerpoint();
                }
            }
            if (filetypeSettings.isSetAdobeFlash() && this.extensionMatches(extension, filetypeSettings.getAdobeFlash().getExtensions()) && filetypeSettings.getAdobeFlash().isUseFallback() && isWindows) {
                return filetypeSettings.getAdobeFlash();
            }
            if (filetypeSettings.isSetXPS() && this.extensionMatches(extension, filetypeSettings.getXPS().getExtensions()) && filetypeSettings.getXPS().isUseFallback() && isWindows) {
                return filetypeSettings.getXPS();
            }
        }
        return null;
    }

    private boolean extensionMatches(String extension, String handledExtensions) {
        boolean result = false;
        if (handledExtensions != null) {
            String[] handledArray = handledExtensions.split("\\,");
            for (int i = 0; i < handledArray.length; ++i) {
                if (!handledArray[i].trim().equalsIgnoreCase(extension)) continue;
                result = true;
                break;
            }
        }
        return result;
    }

    public String getJobConfigurationString() throws JAXBException, IOException {
        Marshaller marshaller = PDFGConfigUtility.getMarshaller();
        StringWriter strWriter = new StringWriter();
        marshaller.marshal((Object)this.config, strWriter);
        String jobConfigString = strWriter.toString();
        strWriter.close();
        return jobConfigString;
    }
}