[AAF-21] Initial code import
[aaf/cadi.git] / core / src / main / java / com / att / cadi / wsse / XEvent.java
1 /*******************************************************************************\r
2  * ============LICENSE_START====================================================\r
3  * * org.onap.aai\r
4  * * ===========================================================================\r
5  * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.\r
6  * * Copyright © 2017 Amdocs\r
7  * * ===========================================================================\r
8  * * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * * you may not use this file except in compliance with the License.\r
10  * * You may obtain a copy of the License at\r
11  * * \r
12  *  *      http://www.apache.org/licenses/LICENSE-2.0\r
13  * * \r
14  *  * Unless required by applicable law or agreed to in writing, software\r
15  * * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * * See the License for the specific language governing permissions and\r
18  * * limitations under the License.\r
19  * * ============LICENSE_END====================================================\r
20  * *\r
21  * * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
22  * *\r
23  ******************************************************************************/\r
24 package com.att.cadi.wsse;\r
25 \r
26 import javax.xml.namespace.QName;\r
27 import javax.xml.stream.events.XMLEvent;\r
28 \r
29 /**\r
30  * XEvent\r
31  * \r
32  * This mechanism mimics a minimal portion of StAX "XMLEvent", enough to work with minimal XReader.\r
33  * \r
34  * We implement the same interface, as much as minimally necessary, as XMLEvent for these small usages so as to\r
35  * be interchangeable in the future, if so desired\r
36  * \r
37  *\r
38  */\r
39 // @SuppressWarnings("restriction")\r
40 public abstract class XEvent {\r
41 \r
42         public abstract int getEventType();\r
43 \r
44         public StartElement asStartElement() {\r
45                 return (StartElement)this;\r
46         }\r
47 \r
48         public Characters asCharacters() {\r
49                 return (Characters)this;\r
50         }\r
51 \r
52         public EndElement asEndElement() {\r
53                 return (EndElement)this;\r
54         }\r
55 \r
56     public static abstract class NamedXEvent extends XEvent {\r
57         private QName qname;\r
58 \r
59         public NamedXEvent(QName qname) {\r
60                 this.qname = qname;\r
61         }\r
62         \r
63                 public QName getName() {\r
64                 return qname;\r
65         }\r
66     }\r
67         public static class StartElement extends NamedXEvent {\r
68 \r
69                 public StartElement(String ns, String tag) {\r
70                         super(new QName(ns,tag));\r
71                 }\r
72 \r
73                 @Override\r
74                 public int getEventType() {\r
75                         return XMLEvent.START_ELEMENT;\r
76                 }\r
77         }\r
78 \r
79         public static class EndElement extends NamedXEvent {\r
80                 public EndElement(String ns, String tag) {\r
81                         super(new QName(ns,tag));\r
82                 }\r
83                 \r
84                 @Override\r
85                 public int getEventType() {\r
86                         return XMLEvent.END_ELEMENT;\r
87                 }\r
88         }\r
89 \r
90         public static class Characters extends XEvent {\r
91                 private String data;\r
92 \r
93                 public Characters(String data) {\r
94                         this.data = data;\r
95                 }\r
96                 @Override\r
97                 public int getEventType() {\r
98                         return XMLEvent.CHARACTERS;\r
99                 }\r
100 \r
101                 public String getData() {\r
102                         return data;\r
103                 }\r
104         }\r
105         \r
106         public static class StartDocument extends XEvent {\r
107 \r
108                 @Override\r
109                 public int getEventType() {\r
110                         return XMLEvent.START_DOCUMENT;\r
111                 }\r
112                 \r
113         }\r
114 \r
115         public static class EndDocument extends XEvent {\r
116 \r
117                 @Override\r
118                 public int getEventType() {\r
119                         return XMLEvent.END_DOCUMENT;\r
120                 }\r
121                 \r
122         }\r
123         public static class Comment extends XEvent {\r
124                 public final String value;\r
125                 public Comment(String value) {\r
126                         this.value = value;\r
127                 }\r
128 \r
129                 @Override\r
130                 public int getEventType() {\r
131                         return XMLEvent.COMMENT;\r
132                 }\r
133         \r
134         }\r
135 \r
136 }\r