PDFOCMembership.java
6.17 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
* 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.graphics.optionalcontent;
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.graphics.optionalcontent.PDFOCGroup;
import com.adobe.internal.pdftoolkit.pdf.graphics.optionalcontent.PDFOCGroupList;
import com.adobe.internal.pdftoolkit.pdf.graphics.optionalcontent.PDFOCObject;
import com.adobe.internal.pdftoolkit.pdf.graphics.optionalcontent.PDFOCVExpression;
public class PDFOCMembership
extends PDFOCObject {
protected PDFOCMembership(CosObject cosObject) throws PDFInvalidDocumentException {
super(cosObject);
}
public static PDFOCMembership getInstance(CosObject cosObject) throws PDFInvalidDocumentException {
if (PDFCosObject.checkNullCosObject(cosObject) == null) {
return null;
}
PDFOCMembership pdfObject = PDFCosObject.getCachedInstance(cosObject, PDFOCMembership.class);
if (pdfObject == null) {
pdfObject = new PDFOCMembership(cosObject);
}
return pdfObject;
}
public static PDFOCMembership newInstance(PDFDocument pdfDoc) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
PDFOCMembership ocmd = new PDFOCMembership((CosObject)PDFCosObject.newCosDictionary(pdfDoc));
ocmd.setDictionaryNameValue(ASName.k_Type, ASName.k_OCMD);
ocmd.setOCGS(PDFOCGroupList.newInstance(pdfDoc));
ocmd.setVisibilityPolicyAnyOn();
return ocmd;
}
public ASName getType() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
return this.getDictionaryNameValue(ASName.k_Type);
}
public PDFOCGroupList getOCGs() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
PDFOCGroupList result = null;
CosObject ocgObj = this.getDictionaryCosObjectValue(ASName.k_OCGs);
result = PDFOCGroupList.getInstance(ocgObj);
return result;
}
public void addOCG(PDFOCGroup ocg) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException, PDFInvalidParameterException {
CosObject ocgsObj;
PDFOCGroupList ocgs = this.getOCGs();
if (ocgs == null) {
ocgs = PDFOCGroupList.newInstance(this.getPDFDocument());
}
if ((ocgsObj = ocgs.getCosObject()) instanceof CosDictionary) {
PDFOCGroup myOCG = PDFOCGroup.getInstance(ocgsObj);
PDFOCGroupList newOcgs = PDFOCGroupList.newInstance(this.getPDFDocument(), myOCG);
CosArray newOcgsObj = newOcgs.getCosArray();
this.setOCGS(newOcgs);
ocgs = newOcgs;
ocgsObj = newOcgsObj;
}
if (ocgsObj instanceof CosArray && !ocgs.contains(ocg)) {
((CosArray)ocgsObj).add(ocg.getCosObject());
}
}
public void setOCGS(PDFOCGroupList ocgs) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setDictionaryValue(ASName.k_OCGs, ocgs);
}
public void setOCGS(PDFOCGroup ocgs) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setDictionaryValue(ASName.k_OCGs, ocgs);
}
public void setVisibilityPolicyAllOn() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setVisibilityPolicy(ASName.k_AllOn);
}
public void setVisibilityPolicyAllOff() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setVisibilityPolicy(ASName.k_AllOff);
}
public void setVisibilityPolicyAnyOn() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setVisibilityPolicy(ASName.k_AnyOn);
}
public void setVisibilityPolicyAnyOff() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setVisibilityPolicy(ASName.k_AnyOff);
}
private void setVisibilityPolicy(ASName policy) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
this.setDictionaryNameValue(ASName.k_P, policy);
}
public ASName getVisibilityPolicy() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
ASName vp = this.getDictionaryNameValue(ASName.k_P);
return vp != null ? vp : ASName.k_AnyOn;
}
public boolean hasVisibilityExpression() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
return this.dictionaryContains(ASName.k_VE);
}
public void setVisibilityExpression(PDFOCVExpression exp) throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
CosArray expArray = exp.getCosArray();
this.setDictionaryArrayValue(ASName.k_VE, expArray);
}
public PDFOCVExpression getVisibilityExpression() throws PDFInvalidDocumentException, PDFIOException, PDFSecurityException {
PDFOCVExpression result = null;
CosArray obj = this.getDictionaryArrayValue(ASName.k_VE);
if (obj != null) {
result = PDFOCVExpression.getInstance((CosObject)obj);
}
return result;
}
}