PDFActionFormSubmit.java 6.03 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.internal.pdftoolkit.core.cos.CosArray
 *  com.adobe.internal.pdftoolkit.core.cos.CosDictionary
 *  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.PDFInvalidParameterException
 *  com.adobe.internal.pdftoolkit.core.exceptions.PDFSecurityException
 *  com.adobe.internal.pdftoolkit.core.types.ASName
 */
package com.adobe.internal.pdftoolkit.pdf.interactive.action;

import com.adobe.internal.pdftoolkit.core.cos.CosArray;
import com.adobe.internal.pdftoolkit.core.cos.CosDictionary;
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.PDFInvalidParameterException;
import com.adobe.internal.pdftoolkit.core.exceptions.PDFSecurityException;
import com.adobe.internal.pdftoolkit.core.types.ASName;
import com.adobe.internal.pdftoolkit.pdf.document.PDFCosObject;
import com.adobe.internal.pdftoolkit.pdf.document.PDFDocument;
import com.adobe.internal.pdftoolkit.pdf.document.PDFFileSpecification;
import com.adobe.internal.pdftoolkit.pdf.document.PDFValueContainer;
import com.adobe.internal.pdftoolkit.pdf.interactive.action.PDFActionForm;
import com.adobe.internal.pdftoolkit.pdf.interactive.forms.PDFFieldList;
import com.adobe.internal.pdftoolkit.pdf.interactive.forms.PDFFieldNode;
import java.util.List;

/*
 * This class specifies class file version 49.0 but uses Java 6 signatures.  Assumed Java 6.
 */
public class PDFActionFormSubmit
extends PDFActionForm {
    private PDFActionFormSubmit(CosObject cosObject) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        super(cosObject);
    }

    private PDFActionFormSubmit(PDFDocument pdfDocument, PDFFileSpecification pdfFileSpecification) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        super(pdfDocument);
        this.setSubtype(ASName.k_SubmitForm);
        this.setFileSpecification(pdfFileSpecification);
    }

    public static PDFActionFormSubmit newInstance(PDFDocument pdfDocument, PDFFileSpecification pdfFileSpecification) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException, PDFInvalidParameterException {
        if (pdfFileSpecification == null) {
            throw new PDFInvalidParameterException("File specification should not be null, it is a required key");
        }
        return new PDFActionFormSubmit(pdfDocument, pdfFileSpecification);
    }

    public static PDFActionFormSubmit getInstance(CosObject cosObject) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        if (PDFCosObject.checkNullCosObject(cosObject) == null) {
            return null;
        }
        PDFActionFormSubmit pdfObject = PDFCosObject.getCachedInstance(cosObject, PDFActionFormSubmit.class);
        if (pdfObject == null) {
            pdfObject = new PDFActionFormSubmit(cosObject);
        }
        return pdfObject;
    }

    public PDFFileSpecification getFileSpecification() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        return PDFFileSpecification.getInstance(this.getDictionaryCosObjectValue(ASName.k_F));
    }

    public void setFileSpecification(PDFFileSpecification pdfFileSpecification) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        this.setDictionaryValue(ASName.k_F, pdfFileSpecification);
    }

    public int getFlags() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        return this.getDictionaryIntValue(ASName.k_Flags);
    }

    public void setFlags(int value) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        this.setDictionaryIntValue(ASName.k_Flags, value);
    }

    public PDFValueContainer<PDFValueContainer.Type, Object> getFields() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        CosArray array = this.getDictionaryArrayValue(ASName.k_Fields);
        if (array != null && !array.isEmpty()) {
            PDFValueContainer valueContainer = null;
            CosObject element = array.get(0);
            int count = array.size();
            if (element.getType() == 4) {
                String[] names = null;
                names = new String[count];
                for (int i = 0; i < count; ++i) {
                    names[i] = array.getText(i);
                }
                valueContainer = new PDFValueContainer<PDFValueContainer.Type, String[]>(PDFValueContainer.Type.StringArray, names);
            } else if (element.getType() == 6) {
                PDFFieldList fieldList = PDFFieldList.newInstance(this.getPDFDocument());
                for (int i = 0; i < count; ++i) {
                    fieldList.add(PDFFieldNode.getInstance((CosObject)array.getCosDictionary(i)));
                }
                valueContainer = new PDFValueContainer<PDFValueContainer.Type, PDFFieldList>(PDFValueContainer.Type.FieldList, fieldList);
            }
            return valueContainer;
        }
        return null;
    }

    public void setFields(PDFFieldList array) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        this.setDictionaryArrayValue(ASName.k_Fields, array);
    }

    public void setFields(String[] fieldNames) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        CosArray cosArray = null;
        if (fieldNames != null) {
            cosArray = PDFCosObject.newCosArray(this.getPDFDocument());
            int addAtIndex = 0;
            for (int i = 0; i < fieldNames.length; ++i) {
                if (fieldNames[i] == null) continue;
                cosArray.addText(addAtIndex++, fieldNames[i]);
            }
        }
        this.setDictionaryArrayValue(ASName.k_Fields, cosArray);
    }
}