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=TransactionAction, discriminator=null, data={blockdev-snapshot=BlockdevSnapshot, blockdev-snapshot-sync=BlockdevSnapshotSync, drive-backup=DriveBackup, blockdev-backup=BlockdevBackup, abort=Abort, blockdev-snapshot-internal-sync=BlockdevSnapshotInternal, block-dirty-bitmap-add=BlockDirtyBitmapAdd, block-dirty-bitmap-clear=BlockDirtyBitmap}, innerTypes=null, fields=null, discriminatorField=null}</pre> 017 */ 018@JsonInclude(JsonInclude.Include.NON_EMPTY) 019public class TransactionAction extends QApiType implements QApiUnion { 020 public static enum Discriminator { 021 blockdev_snapshot, 022 blockdev_snapshot_sync, 023 drive_backup, 024 blockdev_backup, 025 abort, 026 blockdev_snapshot_internal_sync, 027 block_dirty_bitmap_add, 028 block_dirty_bitmap_clear, 029 __NONE; 030 } 031 032 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 033 @Nonnull 034 @JsonProperty("type") 035 public Discriminator type; 036 037 @Nonnull 038 public final Discriminator getType() { 039 return type; 040 } 041 042 // union { 043 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 044 @JsonProperty("blockdev-snapshot") 045 @JsonUnwrapped 046 @CheckForNull 047 public BlockdevSnapshot blockdevSnapshot; 048 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 049 @JsonProperty("blockdev-snapshot-sync") 050 @JsonUnwrapped 051 @CheckForNull 052 public BlockdevSnapshotSync blockdevSnapshotSync; 053 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 054 @JsonProperty("drive-backup") 055 @JsonUnwrapped 056 @CheckForNull 057 public DriveBackup driveBackup; 058 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 059 @JsonProperty("blockdev-backup") 060 @JsonUnwrapped 061 @CheckForNull 062 public BlockdevBackup blockdevBackup; 063 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 064 @JsonProperty("abort") 065 @JsonUnwrapped 066 @CheckForNull 067 public Abort abort; 068 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 069 @JsonProperty("blockdev-snapshot-internal-sync") 070 @JsonUnwrapped 071 @CheckForNull 072 public BlockdevSnapshotInternal blockdevSnapshotInternalSync; 073 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 074 @JsonProperty("block-dirty-bitmap-add") 075 @JsonUnwrapped 076 @CheckForNull 077 public BlockDirtyBitmapAdd blockDirtyBitmapAdd; 078 @SuppressFBWarnings("NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") 079 @JsonProperty("block-dirty-bitmap-clear") 080 @JsonUnwrapped 081 @CheckForNull 082 public BlockDirtyBitmap blockDirtyBitmapClear; 083 // } 084 085 @Nonnull 086 public static TransactionAction blockdevSnapshot(@Nonnull BlockdevSnapshot blockdevSnapshot) { 087 TransactionAction self = new TransactionAction(); 088 self.type = Discriminator.blockdev_snapshot; 089 self.blockdevSnapshot = blockdevSnapshot; 090 return self; 091 } 092 093 @Nonnull 094 public static TransactionAction blockdevSnapshotSync(@Nonnull BlockdevSnapshotSync blockdevSnapshotSync) { 095 TransactionAction self = new TransactionAction(); 096 self.type = Discriminator.blockdev_snapshot_sync; 097 self.blockdevSnapshotSync = blockdevSnapshotSync; 098 return self; 099 } 100 101 @Nonnull 102 public static TransactionAction driveBackup(@Nonnull DriveBackup driveBackup) { 103 TransactionAction self = new TransactionAction(); 104 self.type = Discriminator.drive_backup; 105 self.driveBackup = driveBackup; 106 return self; 107 } 108 109 @Nonnull 110 public static TransactionAction blockdevBackup(@Nonnull BlockdevBackup blockdevBackup) { 111 TransactionAction self = new TransactionAction(); 112 self.type = Discriminator.blockdev_backup; 113 self.blockdevBackup = blockdevBackup; 114 return self; 115 } 116 117 @Nonnull 118 public static TransactionAction abort(@Nonnull Abort abort) { 119 TransactionAction self = new TransactionAction(); 120 self.type = Discriminator.abort; 121 self.abort = abort; 122 return self; 123 } 124 125 @Nonnull 126 public static TransactionAction blockdevSnapshotInternalSync(@Nonnull BlockdevSnapshotInternal blockdevSnapshotInternalSync) { 127 TransactionAction self = new TransactionAction(); 128 self.type = Discriminator.blockdev_snapshot_internal_sync; 129 self.blockdevSnapshotInternalSync = blockdevSnapshotInternalSync; 130 return self; 131 } 132 133 @Nonnull 134 public static TransactionAction blockDirtyBitmapAdd(@Nonnull BlockDirtyBitmapAdd blockDirtyBitmapAdd) { 135 TransactionAction self = new TransactionAction(); 136 self.type = Discriminator.block_dirty_bitmap_add; 137 self.blockDirtyBitmapAdd = blockDirtyBitmapAdd; 138 return self; 139 } 140 141 @Nonnull 142 public static TransactionAction blockDirtyBitmapClear(@Nonnull BlockDirtyBitmap blockDirtyBitmapClear) { 143 TransactionAction self = new TransactionAction(); 144 self.type = Discriminator.block_dirty_bitmap_clear; 145 self.blockDirtyBitmapClear = blockDirtyBitmapClear; 146 return self; 147 } 148 149 @Override 150 public java.util.List<java.lang.String> getFieldNames() { 151 java.util.List<java.lang.String> names = super.getFieldNames(); 152 names.add("blockdev-snapshot"); 153 names.add("blockdev-snapshot-sync"); 154 names.add("drive-backup"); 155 names.add("blockdev-backup"); 156 names.add("abort"); 157 names.add("blockdev-snapshot-internal-sync"); 158 names.add("block-dirty-bitmap-add"); 159 names.add("block-dirty-bitmap-clear"); 160 return names; 161 } 162 163 @JsonIgnore 164 @Override 165 public Object getFieldByName(@Nonnull java.lang.String name) throws NoSuchFieldException { 166 if ("blockdev-snapshot".equals(name)) 167 return blockdevSnapshot; 168 if ("blockdev-snapshot-sync".equals(name)) 169 return blockdevSnapshotSync; 170 if ("drive-backup".equals(name)) 171 return driveBackup; 172 if ("blockdev-backup".equals(name)) 173 return blockdevBackup; 174 if ("abort".equals(name)) 175 return abort; 176 if ("blockdev-snapshot-internal-sync".equals(name)) 177 return blockdevSnapshotInternalSync; 178 if ("block-dirty-bitmap-add".equals(name)) 179 return blockDirtyBitmapAdd; 180 if ("block-dirty-bitmap-clear".equals(name)) 181 return blockDirtyBitmapClear; 182 return super.getFieldByName(name); 183 } 184 185 @Override 186 @JsonIgnore 187 public boolean isValidUnion() { 188 int count = 0; 189 if (blockdevSnapshot != null) 190 count++; 191 if (blockdevSnapshotSync != null) 192 count++; 193 if (driveBackup != null) 194 count++; 195 if (blockdevBackup != null) 196 count++; 197 if (abort != null) 198 count++; 199 if (blockdevSnapshotInternalSync != null) 200 count++; 201 if (blockDirtyBitmapAdd != null) 202 count++; 203 if (blockDirtyBitmapClear != null) 204 count++; 205 return (count == 1); 206 } 207}