EnumValue.java
7.5 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
138
139
140
141
142
143
144
145
146
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa;
import com.adobe.xfa.Attribute;
import com.adobe.xfa.EnumAttr;
import com.adobe.xfa.EnumType;
import com.adobe.xfa.XFA;
import com.adobe.xfa.ut.StringUtils;
public final class EnumValue
extends Attribute {
private final EnumAttr mValue;
private final int meAttr;
private static final int[][] mAmbiguousTypes = new int[][]{{XFA.TYPETAG, -2145648640}, {XFA.TYPETAG, -2144796672}, {XFA.TYPETAG, -2144665600}, {XFA.TYPETAG, -2140930048}, {XFA.TYPETAG, -2141716480}, {XFA.OPERATIONTAG, -2140995584}, {XFA.OPERATIONTAG, -2145124352}, {XFA.OVERRIDETAG, -2144862208}, {XFA.OVERRIDETAG, 1074003968}, {XFA.TOTAG, -2145517568}, {XFA.TOTAG, -2144927744}, {XFA.FORMATTAG, -2142502912}, {XFA.FORMATTAG, -2138112000}, {XFA.RELATIONTAG, -2144600064}, {XFA.RELATIONTAG, -2140209152}, {XFA.NAMETAG, 5242880}, {XFA.NAMETAG, -2142175232}, {XFA.NAMETAG, -2142109696}, {XFA.NAMETAG, -2142044160}, {XFA.NAMETAG, 9502720}, {XFA.NAMETAG, -2141978624}};
private static final int[][] mConfigTypes = new int[][]{{XFA.ACCESSIBLECONTENTTAG, 1074003968}, {XFA.ADDSILENTPRINTTAG, 1074003968}, {XFA.ADDVIEWERPREFERENCESTAG, 1074003968}, {XFA.ADJUSTDATATAG, 1074003968}, {XFA.ATTRIBUTESTAG, 1073938432}, {XFA.CHANGETAG, 1074003968}, {XFA.COMPRESSLOGICALSTRUCTURETAG, 1074003968}, {XFA.COMPRESSOBJECTSTREAMTAG, 1074003968}, {XFA.CONFORMANCETAG, 1082261504}, {XFA.CONTENTCOPYTAG, 1074003968}, {XFA.DESTINATIONTAG, 1078001664}, {XFA.DOCUMENTASSEMBLYTAG, 1074003968}, {XFA.DUPLEXOPTIONTAG, 1081409536}, {XFA.DYNAMICRENDERTAG, 1080426496}, {XFA.EMBEDRENDEREDOUTPUTTAG, 1074003968}, {XFA.EMBEDTAG, 1074003968}, {XFA.ENABLETAG, 1074003968}, {XFA.ENCRYPTIONLEVELTAG, 1074397184}, {XFA.ENCRYPTTAG, 1074003968}, {XFA.FLIPLABELTAG, 1074003968}, {XFA.FORMFIELDFILLINGTAG, 1074003968}, {XFA.IFEMPTYTAG, 1075314688}, {XFA.INTERACTIVETAG, 1074003968}, {XFA.INCREMENTALLOADTAG, 1078394880}, {XFA.JOGTAG, 1081737216}, {XFA.LAYOUTTAG, 1079771136}, {XFA.LINEARIZEDTAG, 1074003968}, {XFA.LOCKTAG, 1074003968}, {XFA.MODETAG, 1075904512}, {XFA.OVERPRINTTAG, 1082327040}, {XFA.PAGINATIONTAG, 1081671680}, {XFA.PAGINATIONOVERRIDETAG, 1082589184}, {XFA.PLAINTEXTMETADATATAG, 1074003968}, {XFA.PRESENCETAG, 1076494336}, {XFA.PRINTTAG, 1074003968}, {XFA.RENDERPOLICYTAG, 1080557568}, {XFA.RUNSCRIPTSTAG, 1080754176}, {XFA.SCRIPTMODELTAG, 1076690944}, {XFA.SEVERITYTAG, 1076822016}, {XFA.SUBMITFORMATTAG, 1077346304}, {XFA.SUPPRESSBANNERTAG, 1074003968}, {XFA.TAGGEDMODETAG, 1080688640}, {XFA.TAGGEDTAG, 1074003968}, {XFA.THRESHOLDTAG, 1075838976}, {XFA.TOTAG, -2144927744}, {XFA.TOTAG, -2145517568}, {XFA.TYPETAG, 5177344}, {XFA.VALIDATETAG, 1074003968}, {XFA.WHITESPACETAG, 1077870592}, {XFA.VALIDATIONMESSAGINGTAG, 1082654720}, {XFA.PRINTSCALINGTAG, 1082785792}, {XFA.PICKTRAYBYPDFSIZETAG, 1074003968}, {XFA.ADBE_JSDEBUGGERTAG, 1083179008}, {XFA.ADBE_JSCONSOLETAG, 1083179008}};
private static final EnumValue[][] mAllEnumAttrs = new EnumValue[XFA.XFA_ATTR_COUNT][];
private static final EnumValue[][] mAmbiguousAttrs = new EnumValue[mAmbiguousTypes.length][];
private static final EnumValue[][] mConfigAttrs = new EnumValue[mConfigTypes.length][];
private EnumValue(EnumType enumType, int eAttrTag, String NS, String localName, String qName, String value) {
super(NS, localName, qName, value, false);
this.mValue = EnumAttr.getEnum(enumType, this.getAttrValue());
this.meAttr = eAttrTag;
}
public EnumAttr getAttr() {
return this.mValue;
}
public int getInt() {
return this.mValue.getInt();
}
public EnumType getType() {
return this.mValue.getType();
}
@Override
public Attribute newAttribute(String value) {
return this.newAttribute(null, null, null, value, true);
}
@Override
public Attribute newAttribute(String NS, String localName, String qName, String value) {
return this.newAttribute(NS, localName, qName, value, true);
}
@Override
public Attribute newAttribute(String NS, String localName, String qName, String value, boolean internSymbols) {
if (StringUtils.isEmpty(value)) {
return this;
}
if (internSymbols) {
value = value.intern();
}
return EnumValue.getEnum(this.mValue.getType(), this.meAttr, value);
}
public int getAttrTag() {
return this.meAttr;
}
private static EnumValue getEnum(EnumType enumType, int eAttrTag, String value) {
EnumAttr a = EnumAttr.getEnum(enumType, value);
return EnumValue.getEnum(eAttrTag, a);
}
/*
* WARNING - Removed try catching itself - possible behaviour change.
*/
public static EnumValue getEnum(int eAttrTag, EnumAttr value) {
EnumValue v;
int offset;
EnumValue[][] arrenumValue;
EnumType enumType = value.getType();
int eType = enumType.getInt();
int index = -1;
EnumValue[] vals = null;
if (enumType.usedAmbiguously()) {
for (index = 0; index < mAmbiguousTypes.length && (mAmbiguousTypes[index][0] != eAttrTag || mAmbiguousTypes[index][1] != eType); ++index) {
}
} else if (enumType.usedElementarily()) {
for (index = 0; index < mConfigTypes.length && (mConfigTypes[index][0] != eAttrTag || mConfigTypes[index][1] != eType); ++index) {
}
if (index == mConfigTypes.length) {
index = -1;
}
}
if (index == -1) {
assert (eAttrTag > XFA.XFA_ELEMENTS + 2);
vals = mAllEnumAttrs[eAttrTag - (XFA.XFA_ELEMENTS + 2)];
if (vals == null) {
arrenumValue = mAllEnumAttrs;
synchronized (arrenumValue) {
vals = mAllEnumAttrs[eAttrTag - (XFA.XFA_ELEMENTS + 2)];
if (vals == null) {
vals = new EnumValue[value.getValues().length];
EnumValue.mAllEnumAttrs[eAttrTag - (XFA.XFA_ELEMENTS + 2)] = vals;
}
}
}
} else if (enumType.usedAmbiguously()) {
vals = mAmbiguousAttrs[index];
if (vals == null) {
arrenumValue = mAmbiguousAttrs;
synchronized (arrenumValue) {
vals = mAmbiguousAttrs[index];
if (vals == null) {
vals = new EnumValue[value.getValues().length];
EnumValue.mAmbiguousAttrs[index] = vals;
}
}
}
} else {
vals = mConfigAttrs[index];
if (vals == null) {
arrenumValue = mConfigAttrs;
synchronized (arrenumValue) {
vals = mConfigAttrs[index];
if (vals == null) {
vals = new EnumValue[value.getValues().length];
EnumValue.mConfigAttrs[index] = vals;
}
}
}
}
if ((v = vals[offset = value.getInt() & 65535]) == null) {
EnumValue[] arrenumValue2 = vals;
synchronized (arrenumValue2) {
v = vals[offset];
if (v == null) {
String name = XFA.getString(eAttrTag);
vals[offset] = v = new EnumValue(enumType, eAttrTag, null, name, name, value.toString());
}
}
}
return v;
}
public static EnumValue getEnum(int eAttrTag, int value) {
return EnumValue.getEnum(eAttrTag, EnumAttr.getEnum(value));
}
}