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=InputEvent, discriminator=null, data={key=InputKeyEvent, btn=InputBtnEvent, rel=InputMoveEvent, abs=InputMoveEvent}, innerTypes=null, fields=null, discriminatorField=null}</pre> 017 */ 018@JsonInclude(JsonInclude.Include.NON_EMPTY) 019public class InputEvent extends QApiType implements QApiUnion { 020 public static enum Discriminator { 021 key, 022 btn, 023 rel, 024 abs, 025 __NONE; 026 } 027 028 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 029 @Nonnull 030 @JsonProperty("type") 031 public Discriminator type; 032 033 @Nonnull 034 public final Discriminator getType() { 035 return type; 036 } 037 038 // union { 039 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 040 @JsonProperty("key") 041 @JsonUnwrapped 042 @CheckForNull 043 public InputKeyEvent key; 044 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 045 @JsonProperty("btn") 046 @JsonUnwrapped 047 @CheckForNull 048 public InputBtnEvent btn; 049 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 050 @JsonProperty("rel") 051 @JsonUnwrapped 052 @CheckForNull 053 public InputMoveEvent rel; 054 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 055 @JsonProperty("abs") 056 @JsonUnwrapped 057 @CheckForNull 058 public InputMoveEvent abs; 059 // } 060 061 @Nonnull 062 public static InputEvent key(@Nonnull InputKeyEvent key) { 063 InputEvent self = new InputEvent(); 064 self.type = Discriminator.key; 065 self.key = key; 066 return self; 067 } 068 069 @Nonnull 070 public static InputEvent btn(@Nonnull InputBtnEvent btn) { 071 InputEvent self = new InputEvent(); 072 self.type = Discriminator.btn; 073 self.btn = btn; 074 return self; 075 } 076 077 @Nonnull 078 public static InputEvent rel(@Nonnull InputMoveEvent rel) { 079 InputEvent self = new InputEvent(); 080 self.type = Discriminator.rel; 081 self.rel = rel; 082 return self; 083 } 084 085 @Nonnull 086 public static InputEvent abs(@Nonnull InputMoveEvent abs) { 087 InputEvent self = new InputEvent(); 088 self.type = Discriminator.abs; 089 self.abs = abs; 090 return self; 091 } 092 093 @Override 094 public java.util.List<java.lang.String> getFieldNames() { 095 java.util.List<java.lang.String> names = super.getFieldNames(); 096 names.add("key"); 097 names.add("btn"); 098 names.add("rel"); 099 names.add("abs"); 100 return names; 101 } 102 103 @JsonIgnore 104 @Override 105 public Object getFieldByName(@Nonnull java.lang.String name) throws NoSuchFieldException { 106 if ("key".equals(name)) 107 return key; 108 if ("btn".equals(name)) 109 return btn; 110 if ("rel".equals(name)) 111 return rel; 112 if ("abs".equals(name)) 113 return abs; 114 return super.getFieldByName(name); 115 } 116 117 @Override 118 @JsonIgnore 119 public boolean isValidUnion() { 120 int count = 0; 121 if (key != null) 122 count++; 123 if (btn != null) 124 count++; 125 if (rel != null) 126 count++; 127 if (abs != null) 128 count++; 129 return (count == 1); 130 } 131}