TemplateModelFactory.java
2.91 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
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa.template;
import com.adobe.xfa.AppModel;
import com.adobe.xfa.Element;
import com.adobe.xfa.Model;
import com.adobe.xfa.ModelFactory;
import com.adobe.xfa.ModelPeer;
import com.adobe.xfa.Node;
import com.adobe.xfa.XFA;
import com.adobe.xfa.template.TemplateModel;
import com.adobe.xfa.template.TemplateResolver;
import com.adobe.xfa.ut.ExFull;
import com.adobe.xfa.ut.ResId;
import org.xml.sax.Attributes;
public final class TemplateModelFactory
extends ModelFactory {
private boolean mbApplyFixups;
private boolean mbFixupRenderCache;
private TemplateResolver moTemplateResolver;
public TemplateModelFactory() {
super(XFA.TEMPLATETAG, "template", "$template");
}
public void applyFixups(boolean bApply) {
this.mbApplyFixups = bApply;
}
@Override
public Model createDOM(Element parent) {
TemplateModel tm = new TemplateModel(parent.getAppModel(), null);
ModelPeer modelPeer = new ModelPeer(parent, null, "http://www.xfa.org/schema/xfa-template/3.6/", "template", "template", null, tm);
tm.setXmlPeer(modelPeer);
tm.connectPeerToDocument();
return tm;
}
@Override
protected Model newModel(AppModel parent, Node prevSibling, String uri, String localName, String qName, Attributes a) {
TemplateModel tm = new TemplateModel(parent, prevSibling, uri, qName, localName);
tm.setXmlPeer(new ModelPeer((Element)parent.getXmlPeer(), null, uri, localName, qName, a, tm));
tm.setDOMProperties(uri, localName, qName, null);
if (this.moTemplateResolver != null) {
tm.setTemplateResolver(this.moTemplateResolver);
}
if (this.mbApplyFixups) {
tm.applyFixups();
}
if (this.mbFixupRenderCache) {
tm.fixupRenderCache();
}
return tm;
}
@Override
public void setOption(String optionName, String optionValue, boolean bCritical) {
String name = optionName;
int nPackageSeparatorOffset = optionName.indexOf(95);
if (nPackageSeparatorOffset != -1) {
if (nPackageSeparatorOffset == 0) {
throw new ExFull(ResId.OptionWrongPackageException, optionName);
}
String packageName = optionName.substring(0, nPackageSeparatorOffset);
String oPackageName = packageName.intern();
if (!this.isRootName(oPackageName)) {
throw new ExFull(ResId.OptionWrongPackageException, optionName);
}
name = optionName.substring(nPackageSeparatorOffset + 1);
}
if (name.equals("removeRenderCache")) {
this.mbFixupRenderCache = optionValue.equals("1");
} else {
super.setOption(optionName, optionValue, bCritical);
}
}
public void setTemplateResolver(TemplateResolver oResolver) {
this.moTemplateResolver = oResolver;
}
}