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=KeyValue, discriminator=null, data={number=int, qcode=QKeyCode}, innerTypes=null, fields=null, discriminatorField=null}</pre> 017 */ 018@JsonInclude(JsonInclude.Include.NON_EMPTY) 019public class KeyValue extends QApiType implements QApiUnion { 020 public static enum Discriminator { 021 number, 022 qcode, 023 __NONE; 024 } 025 026 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 027 @Nonnull 028 @JsonProperty("type") 029 public Discriminator type; 030 031 @Nonnull 032 public final Discriminator getType() { 033 return type; 034 } 035 036 // union { 037 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 038 @JsonProperty("number") 039 @JsonUnwrapped 040 @CheckForNull 041 public java.lang.Long number; 042 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 043 @JsonProperty("qcode") 044 @JsonUnwrapped 045 @CheckForNull 046 public QKeyCode qcode; 047 // } 048 049 @Nonnull 050 public static KeyValue number(@Nonnull java.lang.Long number) { 051 KeyValue self = new KeyValue(); 052 self.type = Discriminator.number; 053 self.number = number; 054 return self; 055 } 056 057 @Nonnull 058 public static KeyValue qcode(@Nonnull QKeyCode qcode) { 059 KeyValue self = new KeyValue(); 060 self.type = Discriminator.qcode; 061 self.qcode = qcode; 062 return self; 063 } 064 065 @Override 066 public java.util.List<java.lang.String> getFieldNames() { 067 java.util.List<java.lang.String> names = super.getFieldNames(); 068 names.add("number"); 069 names.add("qcode"); 070 return names; 071 } 072 073 @JsonIgnore 074 @Override 075 public Object getFieldByName(@Nonnull java.lang.String name) throws NoSuchFieldException { 076 if ("number".equals(name)) 077 return number; 078 if ("qcode".equals(name)) 079 return qcode; 080 return super.getFieldByName(name); 081 } 082 083 @Override 084 @JsonIgnore 085 public boolean isValidUnion() { 086 int count = 0; 087 if (number != null) 088 count++; 089 if (qcode != null) 090 count++; 091 return (count == 1); 092 } 093}