ContentStreamReader.java 3.64 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.internal.pdftoolkit.core.exceptions.PDFFontException
 *  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.contentmodify.impl;

import com.adobe.internal.pdftoolkit.core.exceptions.PDFFontException;
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.content.Content;
import com.adobe.internal.pdftoolkit.pdf.content.ContentReader;
import com.adobe.internal.pdftoolkit.pdf.content.Instruction;
import com.adobe.internal.pdftoolkit.pdf.content.processor.ContentOperator;
import com.adobe.internal.pdftoolkit.pdf.content.processor.ContentStreamProcessor;
import com.adobe.internal.pdftoolkit.pdf.content.processor.IOperatorHandler;
import com.adobe.internal.pdftoolkit.pdf.contentmodify.IContentStreamReader;
import java.io.IOException;
import java.util.Map;

public class ContentStreamReader
extends ContentStreamProcessor
implements IContentStreamReader {
    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public void parse(ContentReader reader) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException, PDFFontException {
        while (reader.hasNext()) {
            Instruction instruction = null;
            try {
                instruction = reader.next();
                ContentOperator co = (ContentOperator)operators.get((Object)instruction.getOperator());
                if (co == null) continue;
                try {
                    co.process(instruction, this.operatorHandler);
                    continue;
                }
                catch (PDFInvalidParameterException e) {
                    throw new PDFInvalidDocumentException((Throwable)e);
                }
            }
            finally {
                try {
                    if (instruction == null) continue;
                    instruction.close();
                    continue;
                }
                catch (PDFIOException e) {}
                continue;
            }
        }
    }

    public void setContentStreamHandler(IOperatorHandler operatorHandler) {
        this.operatorHandler = operatorHandler;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     */
    public void process(Content content) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        ContentReader reader = null;
        try {
            reader = ContentReader.newInstance(content);
            this.process(reader);
        }
        finally {
            if (reader != null) {
                try {
                    reader.close();
                }
                catch (IOException e) {}
            }
        }
    }

    public void process(ContentReader reader) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
        try {
            this.parse(reader);
        }
        catch (PDFFontException e) {
            throw new PDFInvalidDocumentException((Throwable)e);
        }
    }
}