1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.qedeq.kernel.xml.handler.module;
17
18 import org.qedeq.kernel.se.base.module.Node;
19 import org.qedeq.kernel.se.dto.module.NodeVo;
20 import org.qedeq.kernel.xml.common.XmlSyntaxException;
21 import org.qedeq.kernel.xml.handler.common.AbstractSimpleHandler;
22 import org.qedeq.kernel.xml.handler.common.SimpleAttributes;
23
24
25
26
27
28
29
30 public class NodeHandler extends AbstractSimpleHandler {
31
32
33
34 private final LatexListHandler nameHandler;
35
36
37 private final LatexListHandler titleHandler;
38
39
40 private final LatexListHandler precedingHandler;
41
42
43 private final LatexListHandler succeedingHandler;
44
45
46 private final AxiomHandler axiomHandler;
47
48
49 private final InitialPredicateDefinitionHandler initialPredicateDefinitionHandler;
50
51
52 private final PredicateDefinitionHandler predicateDefinitionHandler;
53
54
55 private final FunctionDefinitionHandler functionDefinitionHandler;
56
57
58 private final InitialFunctionDefinitionHandler initialFunctionDefinitionHandler;
59
60
61 private final PropositionHandler propositionHandler;
62
63
64 private final RuleHandler ruleHandler;
65
66
67 private NodeVo node;
68
69
70
71
72
73
74
75 public NodeHandler(final AbstractSimpleHandler handler) {
76 super(handler, "NODE");
77 nameHandler = new LatexListHandler(this, "NAME");
78 titleHandler = new LatexListHandler(this, "TITLE");
79 precedingHandler = new LatexListHandler(this, "PRECEDING");
80 succeedingHandler = new LatexListHandler(this, "SUCCEEDING");
81 axiomHandler = new AxiomHandler(this);
82 initialPredicateDefinitionHandler = new InitialPredicateDefinitionHandler(this);
83 predicateDefinitionHandler = new PredicateDefinitionHandler(this);
84 functionDefinitionHandler = new FunctionDefinitionHandler(this);
85 initialFunctionDefinitionHandler = new InitialFunctionDefinitionHandler(this);
86 propositionHandler = new PropositionHandler(this);
87 ruleHandler = new RuleHandler(this);
88 }
89
90 public final void init() {
91 node = null;
92 }
93
94
95
96
97
98
99 public final Node getNode() {
100 return node;
101 }
102
103 public final void startElement(final String name, final SimpleAttributes attributes)
104 throws XmlSyntaxException {
105 if (getStartTag().equals(name)) {
106 node = new NodeVo();
107 node.setId(attributes.getString("id"));
108 node.setLevel(attributes.getString("level"));
109 } else if (nameHandler.getStartTag().equals(name)) {
110 changeHandler(nameHandler, name, attributes);
111 } else if (titleHandler.getStartTag().equals(name)) {
112 changeHandler(titleHandler, name, attributes);
113 } else if (precedingHandler.getStartTag().equals(name)) {
114 changeHandler(precedingHandler, name, attributes);
115 } else if (succeedingHandler.getStartTag().equals(name)) {
116 changeHandler(succeedingHandler, name, attributes);
117 } else if (axiomHandler.getStartTag().equals(name)) {
118 changeHandler(axiomHandler, name, attributes);
119 } else if (initialPredicateDefinitionHandler.getStartTag().equals(name)) {
120 changeHandler(initialPredicateDefinitionHandler, name, attributes);
121 } else if (predicateDefinitionHandler.getStartTag().equals(name)) {
122 changeHandler(predicateDefinitionHandler, name, attributes);
123 } else if (functionDefinitionHandler.getStartTag().equals(name)) {
124 changeHandler(functionDefinitionHandler, name, attributes);
125 } else if (initialFunctionDefinitionHandler.getStartTag().equals(name)) {
126 changeHandler(initialFunctionDefinitionHandler, name, attributes);
127 } else if (propositionHandler.getStartTag().equals(name)) {
128 changeHandler(propositionHandler, name, attributes);
129 } else if (ruleHandler.getStartTag().equals(name)) {
130 changeHandler(ruleHandler, name, attributes);
131 } else {
132 throw XmlSyntaxException.createUnexpectedTagException(name);
133 }
134 }
135
136 public void endElement(final String name) throws XmlSyntaxException {
137 if (getStartTag().equals(name)) {
138
139 } else if (nameHandler.getStartTag().equals(name)) {
140 node.setName(nameHandler.getLatexList());
141 } else if (titleHandler.getStartTag().equals(name)) {
142 node.setTitle(titleHandler.getLatexList());
143 } else if (precedingHandler.getStartTag().equals(name)) {
144 node.setPrecedingText(precedingHandler.getLatexList());
145 } else if (succeedingHandler.getStartTag().equals(name)) {
146 node.setSucceedingText(succeedingHandler.getLatexList());
147 } else if (axiomHandler.getStartTag().equals(name)) {
148 node.setNodeType(axiomHandler.getAxiom());
149 } else if (initialPredicateDefinitionHandler.getStartTag().equals(name)) {
150 node.setNodeType(initialPredicateDefinitionHandler.getInitialDefinition());
151 } else if (predicateDefinitionHandler.getStartTag().equals(name)) {
152 node.setNodeType(predicateDefinitionHandler.getDefinition());
153 } else if (functionDefinitionHandler.getStartTag().equals(name)) {
154 node.setNodeType(functionDefinitionHandler.getDefinition());
155 } else if (initialFunctionDefinitionHandler.getStartTag().equals(name)) {
156 node.setNodeType(initialFunctionDefinitionHandler.getDefinition());
157 } else if (propositionHandler.getStartTag().equals(name)) {
158 node.setNodeType(propositionHandler.getProposition());
159 } else if (ruleHandler.getStartTag().equals(name)) {
160 node.setNodeType(ruleHandler.getRule());
161 } else {
162 throw XmlSyntaxException.createUnexpectedTagException(name);
163 }
164 }
165
166 }