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}