xref: /aosp_15_r20/external/flatbuffers/tests/union_vector/Gadget.cs (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker // <auto-generated>
2*890232f2SAndroid Build Coastguard Worker //  automatically generated by the FlatBuffers compiler, do not modify
3*890232f2SAndroid Build Coastguard Worker // </auto-generated>
4*890232f2SAndroid Build Coastguard Worker 
5*890232f2SAndroid Build Coastguard Worker [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
6*890232f2SAndroid Build Coastguard Worker public enum Gadget : byte
7*890232f2SAndroid Build Coastguard Worker {
8*890232f2SAndroid Build Coastguard Worker   NONE = 0,
9*890232f2SAndroid Build Coastguard Worker   FallingTub = 1,
10*890232f2SAndroid Build Coastguard Worker   HandFan = 2,
11*890232f2SAndroid Build Coastguard Worker };
12*890232f2SAndroid Build Coastguard Worker 
13*890232f2SAndroid Build Coastguard Worker public class GadgetUnion {
14*890232f2SAndroid Build Coastguard Worker   public Gadget Type { get; set; }
15*890232f2SAndroid Build Coastguard Worker   public object Value { get; set; }
16*890232f2SAndroid Build Coastguard Worker 
GadgetUnion()17*890232f2SAndroid Build Coastguard Worker   public GadgetUnion() {
18*890232f2SAndroid Build Coastguard Worker     this.Type = Gadget.NONE;
19*890232f2SAndroid Build Coastguard Worker     this.Value = null;
20*890232f2SAndroid Build Coastguard Worker   }
21*890232f2SAndroid Build Coastguard Worker 
22*890232f2SAndroid Build Coastguard Worker   public T As<T>() where T : class { return this.Value as T; }
AsFallingTub()23*890232f2SAndroid Build Coastguard Worker   public FallingTubT AsFallingTub() { return this.As<FallingTubT>(); }
FromFallingTub(FallingTubT _fallingtub)24*890232f2SAndroid Build Coastguard Worker   public static GadgetUnion FromFallingTub(FallingTubT _fallingtub) { return new GadgetUnion{ Type = Gadget.FallingTub, Value = _fallingtub }; }
AsHandFan()25*890232f2SAndroid Build Coastguard Worker   public HandFanT AsHandFan() { return this.As<HandFanT>(); }
FromHandFan(HandFanT _handfan)26*890232f2SAndroid Build Coastguard Worker   public static GadgetUnion FromHandFan(HandFanT _handfan) { return new GadgetUnion{ Type = Gadget.HandFan, Value = _handfan }; }
27*890232f2SAndroid Build Coastguard Worker 
Pack(FlatBuffers.FlatBufferBuilder builder, GadgetUnion _o)28*890232f2SAndroid Build Coastguard Worker   public static int Pack(FlatBuffers.FlatBufferBuilder builder, GadgetUnion _o) {
29*890232f2SAndroid Build Coastguard Worker     switch (_o.Type) {
30*890232f2SAndroid Build Coastguard Worker       default: return 0;
31*890232f2SAndroid Build Coastguard Worker       case Gadget.FallingTub: return FallingTub.Pack(builder, _o.AsFallingTub()).Value;
32*890232f2SAndroid Build Coastguard Worker       case Gadget.HandFan: return HandFan.Pack(builder, _o.AsHandFan()).Value;
33*890232f2SAndroid Build Coastguard Worker     }
34*890232f2SAndroid Build Coastguard Worker   }
35*890232f2SAndroid Build Coastguard Worker }
36*890232f2SAndroid Build Coastguard Worker 
37*890232f2SAndroid Build Coastguard Worker public class GadgetUnion_JsonConverter : Newtonsoft.Json.JsonConverter {
CanConvert(System.Type objectType)38*890232f2SAndroid Build Coastguard Worker   public override bool CanConvert(System.Type objectType) {
39*890232f2SAndroid Build Coastguard Worker     return objectType == typeof(GadgetUnion) || objectType == typeof(System.Collections.Generic.List<GadgetUnion>);
40*890232f2SAndroid Build Coastguard Worker   }
WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)41*890232f2SAndroid Build Coastguard Worker   public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) {
42*890232f2SAndroid Build Coastguard Worker     var _olist = value as System.Collections.Generic.List<GadgetUnion>;
43*890232f2SAndroid Build Coastguard Worker     if (_olist != null) {
44*890232f2SAndroid Build Coastguard Worker       writer.WriteStartArray();
45*890232f2SAndroid Build Coastguard Worker       foreach (var _o in _olist) { this.WriteJson(writer, _o, serializer); }
46*890232f2SAndroid Build Coastguard Worker       writer.WriteEndArray();
47*890232f2SAndroid Build Coastguard Worker     } else {
48*890232f2SAndroid Build Coastguard Worker       this.WriteJson(writer, value as GadgetUnion, serializer);
49*890232f2SAndroid Build Coastguard Worker     }
50*890232f2SAndroid Build Coastguard Worker   }
WriteJson(Newtonsoft.Json.JsonWriter writer, GadgetUnion _o, Newtonsoft.Json.JsonSerializer serializer)51*890232f2SAndroid Build Coastguard Worker   public void WriteJson(Newtonsoft.Json.JsonWriter writer, GadgetUnion _o, Newtonsoft.Json.JsonSerializer serializer) {
52*890232f2SAndroid Build Coastguard Worker     if (_o == null) return;
53*890232f2SAndroid Build Coastguard Worker     serializer.Serialize(writer, _o.Value);
54*890232f2SAndroid Build Coastguard Worker   }
ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer)55*890232f2SAndroid Build Coastguard Worker   public override object ReadJson(Newtonsoft.Json.JsonReader reader, System.Type objectType, object existingValue, Newtonsoft.Json.JsonSerializer serializer) {
56*890232f2SAndroid Build Coastguard Worker     var _olist = existingValue as System.Collections.Generic.List<GadgetUnion>;
57*890232f2SAndroid Build Coastguard Worker     if (_olist != null) {
58*890232f2SAndroid Build Coastguard Worker       for (var _j = 0; _j < _olist.Count; ++_j) {
59*890232f2SAndroid Build Coastguard Worker         reader.Read();
60*890232f2SAndroid Build Coastguard Worker         _olist[_j] = this.ReadJson(reader, _olist[_j], serializer);
61*890232f2SAndroid Build Coastguard Worker       }
62*890232f2SAndroid Build Coastguard Worker       reader.Read();
63*890232f2SAndroid Build Coastguard Worker       return _olist;
64*890232f2SAndroid Build Coastguard Worker     } else {
65*890232f2SAndroid Build Coastguard Worker       return this.ReadJson(reader, existingValue as GadgetUnion, serializer);
66*890232f2SAndroid Build Coastguard Worker     }
67*890232f2SAndroid Build Coastguard Worker   }
ReadJson(Newtonsoft.Json.JsonReader reader, GadgetUnion _o, Newtonsoft.Json.JsonSerializer serializer)68*890232f2SAndroid Build Coastguard Worker   public GadgetUnion ReadJson(Newtonsoft.Json.JsonReader reader, GadgetUnion _o, Newtonsoft.Json.JsonSerializer serializer) {
69*890232f2SAndroid Build Coastguard Worker     if (_o == null) return null;
70*890232f2SAndroid Build Coastguard Worker     switch (_o.Type) {
71*890232f2SAndroid Build Coastguard Worker       default: break;
72*890232f2SAndroid Build Coastguard Worker       case Gadget.FallingTub: _o.Value = serializer.Deserialize<FallingTubT>(reader); break;
73*890232f2SAndroid Build Coastguard Worker       case Gadget.HandFan: _o.Value = serializer.Deserialize<HandFanT>(reader); break;
74*890232f2SAndroid Build Coastguard Worker     }
75*890232f2SAndroid Build Coastguard Worker     return _o;
76*890232f2SAndroid Build Coastguard Worker   }
77*890232f2SAndroid Build Coastguard Worker }
78*890232f2SAndroid Build Coastguard Worker 
79