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