Add CLI in verigraph.
[parser.git] / verigraph / src / it / polito / verigraph / tosca / serializer / XmlConfigSerializer.java
1 /*******************************************************************************\r
2  * Copyright (c) 2018 Politecnico di Torino and others.\r
3  *\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Apache License, Version 2.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.apache.org/licenses/LICENSE-2.0\r
8  *******************************************************************************/\r
9 package it.polito.verigraph.tosca.serializer;\r
10 \r
11 import java.io.IOException;\r
12 \r
13 import com.fasterxml.jackson.core.JsonGenerator;\r
14 import com.fasterxml.jackson.core.JsonProcessingException;\r
15 import com.fasterxml.jackson.databind.SerializerProvider;\r
16 import com.fasterxml.jackson.databind.ser.std.StdSerializer;\r
17 \r
18 import it.polito.tosca.jaxb.Configuration;\r
19 \r
20 //Custom serializer for XmlToscaConfigurationObject conversion to JSON\r
21 public class XmlConfigSerializer extends StdSerializer<Configuration> {\r
22 \r
23     //Automatically generated VersionUID\r
24     private static final long serialVersionUID = 9102508941195129607L;\r
25 \r
26     public XmlConfigSerializer() {\r
27         this(null);\r
28     }\r
29 \r
30     public XmlConfigSerializer(Class<Configuration> t) {\r
31         super(t);\r
32     }\r
33 \r
34     @Override\r
35     public void serialize(\r
36             Configuration value, JsonGenerator jgen, SerializerProvider provider)\r
37                     throws IOException, JsonProcessingException {\r
38 \r
39         if (value.getAntispamConfiguration() != null) {\r
40             jgen.writeStartArray();\r
41             for(String source : value.getAntispamConfiguration().getSource()) {\r
42                 jgen.writeString(source);\r
43             }\r
44             jgen.writeEndArray();\r
45 \r
46         } else if (value.getCacheConfiguration() != null) {\r
47             jgen.writeStartArray();\r
48             for(String resource : value.getCacheConfiguration().getResource()) {\r
49                 jgen.writeString(resource);\r
50             }\r
51             jgen.writeEndArray();\r
52 \r
53         } else if (value.getDpiConfiguration() != null) {\r
54             jgen.writeStartArray();\r
55             for(String notAllowed : value.getDpiConfiguration().getNotAllowed()) {\r
56                 jgen.writeString(notAllowed);\r
57             }\r
58             jgen.writeEndArray();\r
59 \r
60         } else if (value.getEndhostConfiguration() != null) {\r
61             jgen.writeStartArray();\r
62             jgen.writeStartObject();\r
63 \r
64             Configuration.EndhostConfiguration endhost = value.getEndhostConfiguration();\r
65             if (endhost.getBody() != null) jgen.writeObjectField("body", endhost.getBody());\r
66             if (endhost.getSequence() != null) jgen.writeObjectField("sequence", endhost.getSequence());\r
67             if (endhost.getProtocol() != null) jgen.writeObjectField("protocol", endhost.getProtocol());\r
68             if (endhost.getEmailFrom() != null) jgen.writeObjectField("email_from", endhost.getEmailFrom());\r
69             if (endhost.getUrl() != null) jgen.writeObjectField("url", endhost.getUrl());\r
70             if (endhost.getOptions() != null) jgen.writeObjectField("options", endhost.getOptions());\r
71             if (endhost.getDestination() != null) jgen.writeObjectField("destination", endhost.getDestination());\r
72 \r
73             jgen.writeEndObject();\r
74             jgen.writeEndArray();\r
75 \r
76         } else if (value.getEndpointConfiguration() != null) {\r
77             jgen.writeStartArray();\r
78             jgen.writeEndArray();\r
79 \r
80         } else if (value.getFieldmodifierConfiguration() != null) {\r
81             jgen.writeStartArray();\r
82             jgen.writeEndArray();\r
83 \r
84         } else if (value.getFirewallConfiguration() != null) {\r
85             jgen.writeStartArray();\r
86 \r
87             for(Configuration.FirewallConfiguration.Elements elem : value.getFirewallConfiguration().getElements()) {\r
88                 if ((elem.getSource() != null) && (elem.getDestination() != null)) {\r
89                     jgen.writeStartObject();\r
90                     jgen.writeObjectField(elem.getSource(), elem.getDestination());\r
91                     jgen.writeEndObject();\r
92                 }\r
93             }\r
94 \r
95             jgen.writeEndArray();\r
96 \r
97         } else if (value.getMailclientConfiguration() != null) {\r
98             jgen.writeStartArray();\r
99 \r
100             if (value.getMailclientConfiguration().getMailserver() != null) {\r
101                 jgen.writeStartObject();\r
102                 jgen.writeObjectField("mailserver", value.getMailclientConfiguration().getMailserver());\r
103                 jgen.writeEndObject();\r
104             }\r
105 \r
106             jgen.writeEndArray();\r
107 \r
108         } else if (value.getMailserverConfiguration() != null) {\r
109             jgen.writeStartArray();\r
110             jgen.writeEndArray();\r
111 \r
112         } else if (value.getNatConfiguration() != null) {\r
113             jgen.writeStartArray();\r
114             for(String source : value.getNatConfiguration().getSource()) {\r
115                 jgen.writeString(source);\r
116             }\r
117             jgen.writeEndArray();\r
118 \r
119         } else if (value.getVpnaccessConfiguration() != null) {\r
120             jgen.writeStartArray();\r
121 \r
122             if (value.getVpnaccessConfiguration().getVpnexit()!= null) {\r
123                 jgen.writeStartObject();\r
124                 jgen.writeObjectField("vpnexit", value.getVpnaccessConfiguration().getVpnexit());\r
125                 jgen.writeEndObject();\r
126             }\r
127 \r
128             jgen.writeEndArray();\r
129 \r
130         } else if (value.getVpnexitConfiguration() != null) {\r
131             jgen.writeStartArray();\r
132 \r
133             if (value.getVpnexitConfiguration().getVpnaccess()!= null) {\r
134                 jgen.writeStartObject();\r
135                 jgen.writeObjectField("vpnaccess", value.getVpnexitConfiguration().getVpnaccess());\r
136                 jgen.writeEndObject();\r
137             }\r
138 \r
139             jgen.writeEndArray();\r
140 \r
141         } else if (value.getWebclientConfiguration() != null) {\r
142             jgen.writeStartArray();\r
143 \r
144             if (value.getWebclientConfiguration().getNameWebServer() != null) {\r
145                 jgen.writeStartObject();\r
146                 jgen.writeObjectField("webserver", value.getWebclientConfiguration().getNameWebServer());\r
147                 jgen.writeEndObject();\r
148             }\r
149 \r
150             jgen.writeEndArray();\r
151 \r
152         } else if (value.getWebserverConfiguration() != null) {\r
153             jgen.writeStartArray();\r
154             jgen.writeEndArray();\r
155 \r
156         } else {\r
157             //Case of empty Configuration\r
158             jgen.writeStartArray();\r
159             jgen.writeEndArray();\r
160         }\r
161 \r
162     }\r
163 }\r