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.list.Element;
19 import org.qedeq.kernel.se.base.module.Existential;
20 import org.qedeq.kernel.se.dto.module.ExistentialVo;
21 import org.qedeq.kernel.xml.common.XmlSyntaxException;
22 import org.qedeq.kernel.xml.handler.common.AbstractSimpleHandler;
23 import org.qedeq.kernel.xml.handler.common.SimpleAttributes;
24 import org.qedeq.kernel.xml.handler.list.ElementHandler;
25
26
27
28
29
30
31
32 public class ExistentialHandler extends AbstractSimpleHandler {
33
34
35 private Existential existential;
36
37
38 private String ref;
39
40
41 private Element subjectVariable;
42
43
44 private final ElementHandler elementHandler;
45
46
47
48
49
50
51 public ExistentialHandler(final AbstractSimpleHandler handler) {
52 super(handler, "EXISTENTIAL");
53 elementHandler = new ElementHandler(this);
54 }
55
56 public final void init() {
57 existential = null;
58 subjectVariable = null;
59 ref = null;
60 }
61
62
63
64
65
66
67 public final Existential getExistentialVo() {
68 return existential;
69 }
70
71 public final void startElement(final String name, final SimpleAttributes attributes)
72 throws XmlSyntaxException {
73 if (getStartTag().equals(name)) {
74 ref = attributes.getString("ref");
75 } else if ("VAR".equals(name)) {
76 changeHandler(elementHandler, name, attributes);
77 } else {
78 throw XmlSyntaxException.createUnexpectedTagException(name);
79 }
80 }
81
82 public final void endElement(final String name) throws XmlSyntaxException {
83 if (getStartTag().equals(name)) {
84 existential = new ExistentialVo(ref, subjectVariable);
85 } else if ("VAR".equals(name)) {
86 subjectVariable = elementHandler.getElement();
87 } else {
88 throw XmlSyntaxException.createUnexpectedTagException(name);
89 }
90 }
91
92 }