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=ImageInfoSpecific, discriminator=null, data={qcow2=ImageInfoSpecificQCow2, vmdk=ImageInfoSpecificVmdk}, innerTypes=null, fields=null, discriminatorField=null}</pre> 017 */ 018@JsonInclude(JsonInclude.Include.NON_EMPTY) 019public class ImageInfoSpecific extends QApiType implements QApiUnion { 020 public static enum Discriminator { 021 qcow2, 022 vmdk, 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("qcow2") 039 @JsonUnwrapped 040 @CheckForNull 041 public ImageInfoSpecificQCow2 qcow2; 042 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 043 @JsonProperty("vmdk") 044 @JsonUnwrapped 045 @CheckForNull 046 public ImageInfoSpecificVmdk vmdk; 047 // } 048 049 @Nonnull 050 public static ImageInfoSpecific qcow2(@Nonnull ImageInfoSpecificQCow2 qcow2) { 051 ImageInfoSpecific self = new ImageInfoSpecific(); 052 self.type = Discriminator.qcow2; 053 self.qcow2 = qcow2; 054 return self; 055 } 056 057 @Nonnull 058 public static ImageInfoSpecific vmdk(@Nonnull ImageInfoSpecificVmdk vmdk) { 059 ImageInfoSpecific self = new ImageInfoSpecific(); 060 self.type = Discriminator.vmdk; 061 self.vmdk = vmdk; 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("qcow2"); 069 names.add("vmdk"); 070 return names; 071 } 072 073 @JsonIgnore 074 @Override 075 public Object getFieldByName(@Nonnull java.lang.String name) throws NoSuchFieldException { 076 if ("qcow2".equals(name)) 077 return qcow2; 078 if ("vmdk".equals(name)) 079 return vmdk; 080 return super.getFieldByName(name); 081 } 082 083 @Override 084 @JsonIgnore 085 public boolean isValidUnion() { 086 int count = 0; 087 if (qcow2 != null) 088 count++; 089 if (vmdk != null) 090 count++; 091 return (count == 1); 092 } 093}