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