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 package org.metricshub.wbem.sblim.cimclient.internal.cimxml.sax.node;
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 import org.metricshub.wbem.sblim.cimclient.internal.cimxml.sax.SAXSession;
49 import org.xml.sax.Attributes;
50 import org.xml.sax.SAXException;
51
52
53
54
55 public class NameSpacePathNode extends Node {
56
57 private boolean iHasHost;
58
59 private String iHostStr;
60
61
62 private boolean iHasLocalNameSpacePath;
63
64 private String iLocalNameSpacePathStr;
65
66
67
68
69 public NameSpacePathNode() {
70 super(NAMESPACEPATH);
71 }
72
73
74
75
76
77 @Override
78 public void init(Attributes pAttribs, SAXSession pSession) {
79 this.iHasHost = this.iHasLocalNameSpacePath = false;
80 this.iHostStr = this.iLocalNameSpacePathStr = null;
81
82 }
83
84
85
86
87 @Override
88 public void parseData(String pData) {
89
90 }
91
92 @Override
93 public void testChild(String pNodeNameEnum) throws SAXException {
94 if (pNodeNameEnum == HOST) {
95 if (this.iHasHost) throw new SAXException(getNodeName() + " node can have only one HOST child node!");
96 } else if (pNodeNameEnum == LOCALNAMESPACEPATH) {
97 if (this.iHasLocalNameSpacePath) throw new SAXException(
98 getNodeName() + " node can have only one LOCALNAMESPACEPATH child node!"
99 );
100 } else throw new SAXException(getNodeName() + " node cannot have " + pNodeNameEnum + " child node!");
101 }
102
103 @Override
104 public void childParsed(Node pChild) {
105 if (pChild instanceof HostNode) {
106 this.iHasHost = true;
107 this.iHostStr = ((HostNode) pChild).getHostStr();
108 } else {
109 this.iHasLocalNameSpacePath = true;
110 this.iLocalNameSpacePathStr = ((LocalNameSpacePathNode) pChild).getNameSpace();
111 }
112 }
113
114 @Override
115 public void testCompletness() throws SAXException {
116 if (!this.iHasHost) throw new SAXException("HOST child node is mandatory for " + getNodeName() + " node!");
117 if (!this.iHasLocalNameSpacePath) throw new SAXException(
118 "LOCALNAMESPACEPATH child node is mandatory for " + getNodeName() + " node!"
119 );
120 }
121
122
123
124
125
126
127 public String getHostStr() {
128 return this.iHostStr;
129 }
130
131
132
133
134
135
136 public String getLocalNameSpacePath() {
137 return this.iLocalNameSpacePathStr;
138 }
139 }