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=NetClientOptions, discriminator=null, data={none=NetdevNoneOptions, nic=NetLegacyNicOptions, user=NetdevUserOptions, tap=NetdevTapOptions, l2tpv3=NetdevL2TPv3Options, socket=NetdevSocketOptions, vde=NetdevVdeOptions, dump=NetdevDumpOptions, bridge=NetdevBridgeOptions, hubport=NetdevHubPortOptions, netmap=NetdevNetmapOptions, vhost-user=NetdevVhostUserOptions}, innerTypes=null, fields=null, discriminatorField=null}</pre> 017 */ 018@JsonInclude(JsonInclude.Include.NON_EMPTY) 019public class NetClientOptions extends QApiType implements QApiUnion { 020 public static enum Discriminator { 021 none, 022 nic, 023 user, 024 tap, 025 l2tpv3, 026 socket, 027 vde, 028 dump, 029 bridge, 030 hubport, 031 netmap, 032 vhost_user, 033 __NONE; 034 } 035 036 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 037 @Nonnull 038 @JsonProperty("type") 039 public Discriminator type; 040 041 @Nonnull 042 public final Discriminator getType() { 043 return type; 044 } 045 046 // union { 047 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 048 @JsonProperty("none") 049 @JsonUnwrapped 050 @CheckForNull 051 public NetdevNoneOptions none; 052 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 053 @JsonProperty("nic") 054 @JsonUnwrapped 055 @CheckForNull 056 public NetLegacyNicOptions nic; 057 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 058 @JsonProperty("user") 059 @JsonUnwrapped 060 @CheckForNull 061 public NetdevUserOptions user; 062 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 063 @JsonProperty("tap") 064 @JsonUnwrapped 065 @CheckForNull 066 public NetdevTapOptions tap; 067 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 068 @JsonProperty("l2tpv3") 069 @JsonUnwrapped 070 @CheckForNull 071 public NetdevL2TPv3Options l2tpv3; 072 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 073 @JsonProperty("socket") 074 @JsonUnwrapped 075 @CheckForNull 076 public NetdevSocketOptions socket; 077 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 078 @JsonProperty("vde") 079 @JsonUnwrapped 080 @CheckForNull 081 public NetdevVdeOptions vde; 082 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 083 @JsonProperty("dump") 084 @JsonUnwrapped 085 @CheckForNull 086 public NetdevDumpOptions dump; 087 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 088 @JsonProperty("bridge") 089 @JsonUnwrapped 090 @CheckForNull 091 public NetdevBridgeOptions bridge; 092 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 093 @JsonProperty("hubport") 094 @JsonUnwrapped 095 @CheckForNull 096 public NetdevHubPortOptions hubport; 097 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 098 @JsonProperty("netmap") 099 @JsonUnwrapped 100 @CheckForNull 101 public NetdevNetmapOptions netmap; 102 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 103 @JsonProperty("vhost-user") 104 @JsonUnwrapped 105 @CheckForNull 106 public NetdevVhostUserOptions vhostUser; 107 // } 108 109 @Nonnull 110 public static NetClientOptions none(@Nonnull NetdevNoneOptions none) { 111 NetClientOptions self = new NetClientOptions(); 112 self.type = Discriminator.none; 113 self.none = none; 114 return self; 115 } 116 117 @Nonnull 118 public static NetClientOptions nic(@Nonnull NetLegacyNicOptions nic) { 119 NetClientOptions self = new NetClientOptions(); 120 self.type = Discriminator.nic; 121 self.nic = nic; 122 return self; 123 } 124 125 @Nonnull 126 public static NetClientOptions user(@Nonnull NetdevUserOptions user) { 127 NetClientOptions self = new NetClientOptions(); 128 self.type = Discriminator.user; 129 self.user = user; 130 return self; 131 } 132 133 @Nonnull 134 public static NetClientOptions tap(@Nonnull NetdevTapOptions tap) { 135 NetClientOptions self = new NetClientOptions(); 136 self.type = Discriminator.tap; 137 self.tap = tap; 138 return self; 139 } 140 141 @Nonnull 142 public static NetClientOptions l2tpv3(@Nonnull NetdevL2TPv3Options l2tpv3) { 143 NetClientOptions self = new NetClientOptions(); 144 self.type = Discriminator.l2tpv3; 145 self.l2tpv3 = l2tpv3; 146 return self; 147 } 148 149 @Nonnull 150 public static NetClientOptions socket(@Nonnull NetdevSocketOptions socket) { 151 NetClientOptions self = new NetClientOptions(); 152 self.type = Discriminator.socket; 153 self.socket = socket; 154 return self; 155 } 156 157 @Nonnull 158 public static NetClientOptions vde(@Nonnull NetdevVdeOptions vde) { 159 NetClientOptions self = new NetClientOptions(); 160 self.type = Discriminator.vde; 161 self.vde = vde; 162 return self; 163 } 164 165 @Nonnull 166 public static NetClientOptions dump(@Nonnull NetdevDumpOptions dump) { 167 NetClientOptions self = new NetClientOptions(); 168 self.type = Discriminator.dump; 169 self.dump = dump; 170 return self; 171 } 172 173 @Nonnull 174 public static NetClientOptions bridge(@Nonnull NetdevBridgeOptions bridge) { 175 NetClientOptions self = new NetClientOptions(); 176 self.type = Discriminator.bridge; 177 self.bridge = bridge; 178 return self; 179 } 180 181 @Nonnull 182 public static NetClientOptions hubport(@Nonnull NetdevHubPortOptions hubport) { 183 NetClientOptions self = new NetClientOptions(); 184 self.type = Discriminator.hubport; 185 self.hubport = hubport; 186 return self; 187 } 188 189 @Nonnull 190 public static NetClientOptions netmap(@Nonnull NetdevNetmapOptions netmap) { 191 NetClientOptions self = new NetClientOptions(); 192 self.type = Discriminator.netmap; 193 self.netmap = netmap; 194 return self; 195 } 196 197 @Nonnull 198 public static NetClientOptions vhostUser(@Nonnull NetdevVhostUserOptions vhostUser) { 199 NetClientOptions self = new NetClientOptions(); 200 self.type = Discriminator.vhost_user; 201 self.vhostUser = vhostUser; 202 return self; 203 } 204 205 @Override 206 public java.util.List<java.lang.String> getFieldNames() { 207 java.util.List<java.lang.String> names = super.getFieldNames(); 208 names.add("none"); 209 names.add("nic"); 210 names.add("user"); 211 names.add("tap"); 212 names.add("l2tpv3"); 213 names.add("socket"); 214 names.add("vde"); 215 names.add("dump"); 216 names.add("bridge"); 217 names.add("hubport"); 218 names.add("netmap"); 219 names.add("vhost-user"); 220 return names; 221 } 222 223 @JsonIgnore 224 @Override 225 public Object getFieldByName(@Nonnull java.lang.String name) throws NoSuchFieldException { 226 if ("none".equals(name)) 227 return none; 228 if ("nic".equals(name)) 229 return nic; 230 if ("user".equals(name)) 231 return user; 232 if ("tap".equals(name)) 233 return tap; 234 if ("l2tpv3".equals(name)) 235 return l2tpv3; 236 if ("socket".equals(name)) 237 return socket; 238 if ("vde".equals(name)) 239 return vde; 240 if ("dump".equals(name)) 241 return dump; 242 if ("bridge".equals(name)) 243 return bridge; 244 if ("hubport".equals(name)) 245 return hubport; 246 if ("netmap".equals(name)) 247 return netmap; 248 if ("vhost-user".equals(name)) 249 return vhostUser; 250 return super.getFieldByName(name); 251 } 252 253 @Override 254 @JsonIgnore 255 public boolean isValidUnion() { 256 int count = 0; 257 if (none != null) 258 count++; 259 if (nic != null) 260 count++; 261 if (user != null) 262 count++; 263 if (tap != null) 264 count++; 265 if (l2tpv3 != null) 266 count++; 267 if (socket != null) 268 count++; 269 if (vde != null) 270 count++; 271 if (dump != null) 272 count++; 273 if (bridge != null) 274 count++; 275 if (hubport != null) 276 count++; 277 if (netmap != null) 278 count++; 279 if (vhostUser != null) 280 count++; 281 return (count == 1); 282 } 283}