PDFNameTree.java
2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.adobe.internal.pdftoolkit.core.cos.CosObject
* com.adobe.internal.pdftoolkit.core.cos.CosScalar
* com.adobe.internal.pdftoolkit.core.cos.CosString
* 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
* com.adobe.internal.pdftoolkit.core.types.ASString
*/
package com.adobe.internal.pdftoolkit.pdf.document;
import com.adobe.internal.pdftoolkit.core.cos.CosObject;
import com.adobe.internal.pdftoolkit.core.cos.CosScalar;
import com.adobe.internal.pdftoolkit.core.cos.CosString;
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.core.types.ASString;
import com.adobe.internal.pdftoolkit.pdf.document.PDFCosObject;
import com.adobe.internal.pdftoolkit.pdf.document.PDFDocument;
import com.adobe.internal.pdftoolkit.pdf.document.PDFTree;
import com.adobe.internal.pdftoolkit.pdf.utils.UTF16Support;
/*
* This class specifies class file version 49.0 but uses Java 6 signatures. Assumed Java 6.
*/
public abstract class PDFNameTree<V extends PDFCosObject>
extends PDFTree<ASString, V> {
protected PDFNameTree(CosObject cosObject) throws PDFInvalidDocumentException {
super(cosObject, ASName.k_Names);
}
protected CosString makeInternalKeyType(ASString externalKey) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
return PDFCosObject.newCosString(this.getPDFDocument(), externalKey.getBytes());
}
@Override
protected ASString makeExternalKeyType(CosScalar internalKey) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
return internalKey.stringValue();
}
public byte[] findKey(String key) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
byte[] notFound = new byte[]{};
ASString asName = new ASString(UTF16Support.toUTF16(key));
PDFCosObject fileSpec = (PDFCosObject)this.getEntry(asName);
if (fileSpec != null) {
return asName.getBytes();
}
ASString utf8Key = new ASString(key);
if (this.getEntry(utf8Key) != null) {
return utf8Key.getBytes();
}
return notFound;
}
}