PDFXObjectFactory.java 2.69 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.internal.pdftoolkit.core.cos.CosDictionary
 *  com.adobe.internal.pdftoolkit.core.cos.CosName
 *  com.adobe.internal.pdftoolkit.core.cos.CosNull
 *  com.adobe.internal.pdftoolkit.core.cos.CosObject
 *  com.adobe.internal.pdftoolkit.core.exceptions.PDFIOException
 *  com.adobe.internal.pdftoolkit.core.exceptions.PDFInvalidDocumentException
 *  com.adobe.internal.pdftoolkit.core.exceptions.PDFSecurityException
 *  com.adobe.internal.pdftoolkit.core.types.ASName
 */
package com.adobe.internal.pdftoolkit.pdf.graphics.xobject;

import com.adobe.internal.pdftoolkit.core.cos.CosDictionary;
import com.adobe.internal.pdftoolkit.core.cos.CosName;
import com.adobe.internal.pdftoolkit.core.cos.CosNull;
import com.adobe.internal.pdftoolkit.core.cos.CosObject;
import com.adobe.internal.pdftoolkit.core.exceptions.PDFIOException;
import com.adobe.internal.pdftoolkit.core.exceptions.PDFInvalidDocumentException;
import com.adobe.internal.pdftoolkit.core.exceptions.PDFSecurityException;
import com.adobe.internal.pdftoolkit.core.types.ASName;
import com.adobe.internal.pdftoolkit.pdf.graphics.xobject.PDFXObject;
import com.adobe.internal.pdftoolkit.pdf.graphics.xobject.PDFXObjectForm;
import com.adobe.internal.pdftoolkit.pdf.graphics.xobject.PDFXObjectImage;
import com.adobe.internal.pdftoolkit.pdf.graphics.xobject.PDFXObjectPostScript;

public class PDFXObjectFactory {
    public static PDFXObject getInstance(CosObject cosObject) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        if (cosObject == null || cosObject instanceof CosNull) {
            return null;
        }
        if (cosObject instanceof CosDictionary) {
            if (((CosDictionary)cosObject).getName(ASName.k_Subtype) == ASName.k_Image) {
                return PDFXObjectImage.getInstance(cosObject);
            }
            if (((CosDictionary)cosObject).getName(ASName.k_Subtype) == ASName.k_Form) {
                ASName subtype2;
                CosObject subtype2Obj;
                CosDictionary dict = (CosDictionary)cosObject;
                if (dict.containsKey((Object)ASName.k_Subtype2) && (subtype2Obj = dict.get(ASName.k_Subtype2)).getType() == 3 && (subtype2 = ((CosName)subtype2Obj).nameValue()) == ASName.k_PS) {
                    return PDFXObjectPostScript.getInstance(cosObject);
                }
                return PDFXObjectForm.getInstance(cosObject);
            }
            if (((CosDictionary)cosObject).getName(ASName.k_Subtype) == ASName.k_PS) {
                return PDFXObjectPostScript.getInstance(cosObject);
            }
        }
        throw new PDFInvalidDocumentException("Bad Document");
    }
}