001package org.anarres.qemu.qapi.api; 002 003import com.fasterxml.jackson.annotation.JsonIgnore; 004import com.fasterxml.jackson.annotation.JsonInclude; 005import com.fasterxml.jackson.annotation.JsonProperty; 006import com.fasterxml.jackson.annotation.JsonUnwrapped; 007import com.fasterxml.jackson.annotation.JsonValue; 008import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; 009import javax.annotation.CheckForNull; 010import javax.annotation.Nonnull; 011import org.anarres.qemu.qapi.common.*; 012 013/** 014 * Autogenerated class. 015 * 016 * <pre>QApiUnionDescriptor{name=ChardevBackend, discriminator=null, data={file=ChardevFile, serial=ChardevHostdev, parallel=ChardevHostdev, pipe=ChardevHostdev, socket=ChardevSocket, udp=ChardevUdp, pty=ChardevDummy, null=ChardevDummy, mux=ChardevMux, msmouse=ChardevDummy, braille=ChardevDummy, testdev=ChardevDummy, stdio=ChardevStdio, console=ChardevDummy, spicevmc=ChardevSpiceChannel, spiceport=ChardevSpicePort, vc=ChardevVC, ringbuf=ChardevRingbuf, memory=ChardevRingbuf}, innerTypes=null, fields=null, discriminatorField=null}</pre> 017 */ 018@JsonInclude(JsonInclude.Include.NON_EMPTY) 019public class ChardevBackend extends QApiType implements QApiUnion { 020 public static enum Discriminator { 021 file, 022 serial, 023 parallel, 024 pipe, 025 socket, 026 udp, 027 pty, 028 _null, 029 mux, 030 msmouse, 031 braille, 032 testdev, 033 stdio, 034 console, 035 spicevmc, 036 spiceport, 037 vc, 038 ringbuf, 039 memory, 040 __NONE; 041 } 042 043 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 044 @Nonnull 045 @JsonProperty("type") 046 public Discriminator type; 047 048 @Nonnull 049 public final Discriminator getType() { 050 return type; 051 } 052 053 // union { 054 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 055 @JsonProperty("file") 056 @JsonUnwrapped 057 @CheckForNull 058 public ChardevFile file; 059 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 060 @JsonProperty("serial") 061 @JsonUnwrapped 062 @CheckForNull 063 public ChardevHostdev serial; 064 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 065 @JsonProperty("parallel") 066 @JsonUnwrapped 067 @CheckForNull 068 public ChardevHostdev parallel; 069 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 070 @JsonProperty("pipe") 071 @JsonUnwrapped 072 @CheckForNull 073 public ChardevHostdev pipe; 074 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 075 @JsonProperty("socket") 076 @JsonUnwrapped 077 @CheckForNull 078 public ChardevSocket socket; 079 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 080 @JsonProperty("udp") 081 @JsonUnwrapped 082 @CheckForNull 083 public ChardevUdp udp; 084 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 085 @JsonProperty("pty") 086 @JsonUnwrapped 087 @CheckForNull 088 public ChardevDummy pty; 089 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 090 @JsonProperty("null") 091 @JsonUnwrapped 092 @CheckForNull 093 public ChardevDummy _null; 094 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 095 @JsonProperty("mux") 096 @JsonUnwrapped 097 @CheckForNull 098 public ChardevMux mux; 099 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 100 @JsonProperty("msmouse") 101 @JsonUnwrapped 102 @CheckForNull 103 public ChardevDummy msmouse; 104 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 105 @JsonProperty("braille") 106 @JsonUnwrapped 107 @CheckForNull 108 public ChardevDummy braille; 109 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 110 @JsonProperty("testdev") 111 @JsonUnwrapped 112 @CheckForNull 113 public ChardevDummy testdev; 114 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 115 @JsonProperty("stdio") 116 @JsonUnwrapped 117 @CheckForNull 118 public ChardevStdio stdio; 119 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 120 @JsonProperty("console") 121 @JsonUnwrapped 122 @CheckForNull 123 public ChardevDummy console; 124 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 125 @JsonProperty("spicevmc") 126 @JsonUnwrapped 127 @CheckForNull 128 public ChardevSpiceChannel spicevmc; 129 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 130 @JsonProperty("spiceport") 131 @JsonUnwrapped 132 @CheckForNull 133 public ChardevSpicePort spiceport; 134 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 135 @JsonProperty("vc") 136 @JsonUnwrapped 137 @CheckForNull 138 public ChardevVC vc; 139 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 140 @JsonProperty("ringbuf") 141 @JsonUnwrapped 142 @CheckForNull 143 public ChardevRingbuf ringbuf; 144 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 145 @JsonProperty("memory") 146 @JsonUnwrapped 147 @CheckForNull 148 public ChardevRingbuf memory; 149 // } 150 151 @Nonnull 152 public static ChardevBackend file(@Nonnull ChardevFile file) { 153 ChardevBackend self = new ChardevBackend(); 154 self.type = Discriminator.file; 155 self.file = file; 156 return self; 157 } 158 159 @Nonnull 160 public static ChardevBackend serial(@Nonnull ChardevHostdev serial) { 161 ChardevBackend self = new ChardevBackend(); 162 self.type = Discriminator.serial; 163 self.serial = serial; 164 return self; 165 } 166 167 @Nonnull 168 public static ChardevBackend parallel(@Nonnull ChardevHostdev parallel) { 169 ChardevBackend self = new ChardevBackend(); 170 self.type = Discriminator.parallel; 171 self.parallel = parallel; 172 return self; 173 } 174 175 @Nonnull 176 public static ChardevBackend pipe(@Nonnull ChardevHostdev pipe) { 177 ChardevBackend self = new ChardevBackend(); 178 self.type = Discriminator.pipe; 179 self.pipe = pipe; 180 return self; 181 } 182 183 @Nonnull 184 public static ChardevBackend socket(@Nonnull ChardevSocket socket) { 185 ChardevBackend self = new ChardevBackend(); 186 self.type = Discriminator.socket; 187 self.socket = socket; 188 return self; 189 } 190 191 @Nonnull 192 public static ChardevBackend udp(@Nonnull ChardevUdp udp) { 193 ChardevBackend self = new ChardevBackend(); 194 self.type = Discriminator.udp; 195 self.udp = udp; 196 return self; 197 } 198 199 @Nonnull 200 public static ChardevBackend pty(@Nonnull ChardevDummy pty) { 201 ChardevBackend self = new ChardevBackend(); 202 self.type = Discriminator.pty; 203 self.pty = pty; 204 return self; 205 } 206 207 @Nonnull 208 public static ChardevBackend _null(@Nonnull ChardevDummy _null) { 209 ChardevBackend self = new ChardevBackend(); 210 self.type = Discriminator._null; 211 self._null = _null; 212 return self; 213 } 214 215 @Nonnull 216 public static ChardevBackend mux(@Nonnull ChardevMux mux) { 217 ChardevBackend self = new ChardevBackend(); 218 self.type = Discriminator.mux; 219 self.mux = mux; 220 return self; 221 } 222 223 @Nonnull 224 public static ChardevBackend msmouse(@Nonnull ChardevDummy msmouse) { 225 ChardevBackend self = new ChardevBackend(); 226 self.type = Discriminator.msmouse; 227 self.msmouse = msmouse; 228 return self; 229 } 230 231 @Nonnull 232 public static ChardevBackend braille(@Nonnull ChardevDummy braille) { 233 ChardevBackend self = new ChardevBackend(); 234 self.type = Discriminator.braille; 235 self.braille = braille; 236 return self; 237 } 238 239 @Nonnull 240 public static ChardevBackend testdev(@Nonnull ChardevDummy testdev) { 241 ChardevBackend self = new ChardevBackend(); 242 self.type = Discriminator.testdev; 243 self.testdev = testdev; 244 return self; 245 } 246 247 @Nonnull 248 public static ChardevBackend stdio(@Nonnull ChardevStdio stdio) { 249 ChardevBackend self = new ChardevBackend(); 250 self.type = Discriminator.stdio; 251 self.stdio = stdio; 252 return self; 253 } 254 255 @Nonnull 256 public static ChardevBackend console(@Nonnull ChardevDummy console) { 257 ChardevBackend self = new ChardevBackend(); 258 self.type = Discriminator.console; 259 self.console = console; 260 return self; 261 } 262 263 @Nonnull 264 public static ChardevBackend spicevmc(@Nonnull ChardevSpiceChannel spicevmc) { 265 ChardevBackend self = new ChardevBackend(); 266 self.type = Discriminator.spicevmc; 267 self.spicevmc = spicevmc; 268 return self; 269 } 270 271 @Nonnull 272 public static ChardevBackend spiceport(@Nonnull ChardevSpicePort spiceport) { 273 ChardevBackend self = new ChardevBackend(); 274 self.type = Discriminator.spiceport; 275 self.spiceport = spiceport; 276 return self; 277 } 278 279 @Nonnull 280 public static ChardevBackend vc(@Nonnull ChardevVC vc) { 281 ChardevBackend self = new ChardevBackend(); 282 self.type = Discriminator.vc; 283 self.vc = vc; 284 return self; 285 } 286 287 @Nonnull 288 public static ChardevBackend ringbuf(@Nonnull ChardevRingbuf ringbuf) { 289 ChardevBackend self = new ChardevBackend(); 290 self.type = Discriminator.ringbuf; 291 self.ringbuf = ringbuf; 292 return self; 293 } 294 295 @Nonnull 296 public static ChardevBackend memory(@Nonnull ChardevRingbuf memory) { 297 ChardevBackend self = new ChardevBackend(); 298 self.type = Discriminator.memory; 299 self.memory = memory; 300 return self; 301 } 302 303 @Override 304 public java.util.List<java.lang.String> getFieldNames() { 305 java.util.List<java.lang.String> names = super.getFieldNames(); 306 names.add("file"); 307 names.add("serial"); 308 names.add("parallel"); 309 names.add("pipe"); 310 names.add("socket"); 311 names.add("udp"); 312 names.add("pty"); 313 names.add("null"); 314 names.add("mux"); 315 names.add("msmouse"); 316 names.add("braille"); 317 names.add("testdev"); 318 names.add("stdio"); 319 names.add("console"); 320 names.add("spicevmc"); 321 names.add("spiceport"); 322 names.add("vc"); 323 names.add("ringbuf"); 324 names.add("memory"); 325 return names; 326 } 327 328 @JsonIgnore 329 @Override 330 public Object getFieldByName(@Nonnull java.lang.String name) throws NoSuchFieldException { 331 if ("file".equals(name)) 332 return file; 333 if ("serial".equals(name)) 334 return serial; 335 if ("parallel".equals(name)) 336 return parallel; 337 if ("pipe".equals(name)) 338 return pipe; 339 if ("socket".equals(name)) 340 return socket; 341 if ("udp".equals(name)) 342 return udp; 343 if ("pty".equals(name)) 344 return pty; 345 if ("null".equals(name)) 346 return _null; 347 if ("mux".equals(name)) 348 return mux; 349 if ("msmouse".equals(name)) 350 return msmouse; 351 if ("braille".equals(name)) 352 return braille; 353 if ("testdev".equals(name)) 354 return testdev; 355 if ("stdio".equals(name)) 356 return stdio; 357 if ("console".equals(name)) 358 return console; 359 if ("spicevmc".equals(name)) 360 return spicevmc; 361 if ("spiceport".equals(name)) 362 return spiceport; 363 if ("vc".equals(name)) 364 return vc; 365 if ("ringbuf".equals(name)) 366 return ringbuf; 367 if ("memory".equals(name)) 368 return memory; 369 return super.getFieldByName(name); 370 } 371 372 @Override 373 @JsonIgnore 374 public boolean isValidUnion() { 375 int count = 0; 376 if (file != null) 377 count++; 378 if (serial != null) 379 count++; 380 if (parallel != null) 381 count++; 382 if (pipe != null) 383 count++; 384 if (socket != null) 385 count++; 386 if (udp != null) 387 count++; 388 if (pty != null) 389 count++; 390 if (_null != null) 391 count++; 392 if (mux != null) 393 count++; 394 if (msmouse != null) 395 count++; 396 if (braille != null) 397 count++; 398 if (testdev != null) 399 count++; 400 if (stdio != null) 401 count++; 402 if (console != null) 403 count++; 404 if (spicevmc != null) 405 count++; 406 if (spiceport != null) 407 count++; 408 if (vc != null) 409 count++; 410 if (ringbuf != null) 411 count++; 412 if (memory != null) 413 count++; 414 return (count == 1); 415 } 416}