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