GenericNode.java
3.29 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
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa;
import com.adobe.xfa.*;
import com.adobe.xfa.ut.StringUtils;
import java.util.List;
public final class GenericNode
extends ProtoableNode {
static int[][] goUpdateInfoAttributeTags = new int[][]{{XFA.BEFORETARGETTAG, XFA.AFTERTARGETTAG, XFA.BOOKENDLEADERTAG, XFA.BOOKENDTRAILERTAG, XFA.OVERFLOWTARGETTAG, XFA.OVERFLOWLEADERTAG, XFA.OVERFLOWTRAILERTAG, 0}, {XFA.TARGETTAG, XFA.LEADERTAG, XFA.TRAILERTAG, 0}, {XFA.TARGETTAG, XFA.LEADERTAG, XFA.TRAILERTAG, 0}, {XFA.TARGETTAG, XFA.LEADERTAG, XFA.TRAILERTAG, 0}};
static int[] goUpdateInfoElementTags = new int[]{XFA.BREAKTAG, XFA.BREAKBEFORETAG, XFA.BREAKAFTERTAG, XFA.OVERFLOWTAG};
public GenericNode(Element parent, Node prevSibling) {
super(parent, prevSibling, null, null, null, null, -1, null);
}
@Override
public Element clone(Element pParent, boolean bDeep) {
GenericNode oClone = (GenericNode)super.clone(pParent, bDeep);
return oClone;
}
@Override
public Attribute defaultAttribute(int eTag) {
Element oParent;
if (eTag == XFA.PRESENCETAG && this.getElementClass() == XFA.EDGETAG && this.isDefault(true) && (oParent = this.getXFAParent()) != null && oParent.isSameClass(XFA.BORDERTAG)) {
return oParent.defaultAttribute(eTag);
}
return super.defaultAttribute(eTag);
}
@Override
public void updateIDValues(String sPrefix, List<String> oldReferenceList) {
for (int i = 0; i < goUpdateInfoElementTags.length; ++i) {
if (!this.isSameClass(goUpdateInfoElementTags[i])) continue;
int nAttrTag = 0;
while (goUpdateInfoAttributeTags[i][nAttrTag] != 0) {
int eTag = goUpdateInfoAttributeTags[i][nAttrTag];
Attribute oAttr = null;
String aPropertyName = this.getAtom(eTag);
int attr = this.findSchemaAttr(aPropertyName);
if (attr != -1) {
oAttr = this.getAttr(attr);
}
if (oAttr != null) {
StringBuilder sAttrValue = new StringBuilder(oAttr.toString());
StringBuilder sNewAttrValue = new StringBuilder();
String sToken = StringUtils.parseToken(sAttrValue);
while (sToken != null) {
if (sToken.charAt(0) == '#') {
sToken = sToken.substring(1);
if (oldReferenceList != null) {
oldReferenceList.add(sToken);
}
sToken = "#" + sPrefix + ":" + sToken;
}
sNewAttrValue.append(sToken);
if (sAttrValue.length() > 0) {
sNewAttrValue.append(' ');
}
sToken = StringUtils.parseToken(sAttrValue);
}
this.setAttribute(new StringAttr(aPropertyName, sNewAttrValue.toString()), eTag);
}
++nAttrTag;
}
break;
}
}
@Override
public boolean isContextSensitiveAttribute(int eTag) {
return eTag == XFA.PRESENCETAG || super.isContextSensitiveAttribute(eTag);
}
}