xref: /aosp_15_r20/external/flatbuffers/tests/union_vector/movie.ts (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker// automatically generated by the FlatBuffers compiler, do not modify
2*890232f2SAndroid Build Coastguard Worker
3*890232f2SAndroid Build Coastguard Workerimport * as flatbuffers from 'flatbuffers';
4*890232f2SAndroid Build Coastguard Worker
5*890232f2SAndroid Build Coastguard Workerimport { Attacker, AttackerT } from './attacker';
6*890232f2SAndroid Build Coastguard Workerimport { BookReader, BookReaderT } from './book-reader';
7*890232f2SAndroid Build Coastguard Workerimport { Character, unionToCharacter, unionListToCharacter } from './character';
8*890232f2SAndroid Build Coastguard Workerimport { Rapunzel, RapunzelT } from './rapunzel';
9*890232f2SAndroid Build Coastguard Worker
10*890232f2SAndroid Build Coastguard Worker
11*890232f2SAndroid Build Coastguard Workerexport class Movie {
12*890232f2SAndroid Build Coastguard Worker  bb: flatbuffers.ByteBuffer|null = null;
13*890232f2SAndroid Build Coastguard Worker  bb_pos = 0;
14*890232f2SAndroid Build Coastguard Worker  __init(i:number, bb:flatbuffers.ByteBuffer):Movie {
15*890232f2SAndroid Build Coastguard Worker  this.bb_pos = i;
16*890232f2SAndroid Build Coastguard Worker  this.bb = bb;
17*890232f2SAndroid Build Coastguard Worker  return this;
18*890232f2SAndroid Build Coastguard Worker}
19*890232f2SAndroid Build Coastguard Worker
20*890232f2SAndroid Build Coastguard Workerstatic getRootAsMovie(bb:flatbuffers.ByteBuffer, obj?:Movie):Movie {
21*890232f2SAndroid Build Coastguard Worker  return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
22*890232f2SAndroid Build Coastguard Worker}
23*890232f2SAndroid Build Coastguard Worker
24*890232f2SAndroid Build Coastguard Workerstatic getSizePrefixedRootAsMovie(bb:flatbuffers.ByteBuffer, obj?:Movie):Movie {
25*890232f2SAndroid Build Coastguard Worker  bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
26*890232f2SAndroid Build Coastguard Worker  return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
27*890232f2SAndroid Build Coastguard Worker}
28*890232f2SAndroid Build Coastguard Worker
29*890232f2SAndroid Build Coastguard Workerstatic bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean {
30*890232f2SAndroid Build Coastguard Worker  return bb.__has_identifier('MOVI');
31*890232f2SAndroid Build Coastguard Worker}
32*890232f2SAndroid Build Coastguard Worker
33*890232f2SAndroid Build Coastguard WorkermainCharacterType():Character {
34*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 4);
35*890232f2SAndroid Build Coastguard Worker  return offset ? this.bb!.readUint8(this.bb_pos + offset) : Character.NONE;
36*890232f2SAndroid Build Coastguard Worker}
37*890232f2SAndroid Build Coastguard Worker
38*890232f2SAndroid Build Coastguard WorkermainCharacter<T extends flatbuffers.Table>(obj:any|string):any|string|null {
39*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 6);
40*890232f2SAndroid Build Coastguard Worker  return offset ? this.bb!.__union_with_string(obj, this.bb_pos + offset) : null;
41*890232f2SAndroid Build Coastguard Worker}
42*890232f2SAndroid Build Coastguard Worker
43*890232f2SAndroid Build Coastguard WorkercharactersType(index: number):Character|null {
44*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 8);
45*890232f2SAndroid Build Coastguard Worker  return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0;
46*890232f2SAndroid Build Coastguard Worker}
47*890232f2SAndroid Build Coastguard Worker
48*890232f2SAndroid Build Coastguard WorkercharactersTypeLength():number {
49*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 8);
50*890232f2SAndroid Build Coastguard Worker  return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
51*890232f2SAndroid Build Coastguard Worker}
52*890232f2SAndroid Build Coastguard Worker
53*890232f2SAndroid Build Coastguard WorkercharactersTypeArray():Uint8Array|null {
54*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 8);
55*890232f2SAndroid Build Coastguard Worker  return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null;
56*890232f2SAndroid Build Coastguard Worker}
57*890232f2SAndroid Build Coastguard Worker
58*890232f2SAndroid Build Coastguard Workercharacters(index: number, obj:any|string):any|string|null {
59*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 10);
60*890232f2SAndroid Build Coastguard Worker  return offset ? this.bb!.__union_with_string(obj, this.bb!.__vector(this.bb_pos + offset) + index * 4) : null;
61*890232f2SAndroid Build Coastguard Worker}
62*890232f2SAndroid Build Coastguard Worker
63*890232f2SAndroid Build Coastguard WorkercharactersLength():number {
64*890232f2SAndroid Build Coastguard Worker  const offset = this.bb!.__offset(this.bb_pos, 10);
65*890232f2SAndroid Build Coastguard Worker  return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0;
66*890232f2SAndroid Build Coastguard Worker}
67*890232f2SAndroid Build Coastguard Worker
68*890232f2SAndroid Build Coastguard Workerstatic getFullyQualifiedName():string {
69*890232f2SAndroid Build Coastguard Worker  return 'Movie';
70*890232f2SAndroid Build Coastguard Worker}
71*890232f2SAndroid Build Coastguard Worker
72*890232f2SAndroid Build Coastguard Workerstatic startMovie(builder:flatbuffers.Builder) {
73*890232f2SAndroid Build Coastguard Worker  builder.startObject(4);
74*890232f2SAndroid Build Coastguard Worker}
75*890232f2SAndroid Build Coastguard Worker
76*890232f2SAndroid Build Coastguard Workerstatic addMainCharacterType(builder:flatbuffers.Builder, mainCharacterType:Character) {
77*890232f2SAndroid Build Coastguard Worker  builder.addFieldInt8(0, mainCharacterType, Character.NONE);
78*890232f2SAndroid Build Coastguard Worker}
79*890232f2SAndroid Build Coastguard Worker
80*890232f2SAndroid Build Coastguard Workerstatic addMainCharacter(builder:flatbuffers.Builder, mainCharacterOffset:flatbuffers.Offset) {
81*890232f2SAndroid Build Coastguard Worker  builder.addFieldOffset(1, mainCharacterOffset, 0);
82*890232f2SAndroid Build Coastguard Worker}
83*890232f2SAndroid Build Coastguard Worker
84*890232f2SAndroid Build Coastguard Workerstatic addCharactersType(builder:flatbuffers.Builder, charactersTypeOffset:flatbuffers.Offset) {
85*890232f2SAndroid Build Coastguard Worker  builder.addFieldOffset(2, charactersTypeOffset, 0);
86*890232f2SAndroid Build Coastguard Worker}
87*890232f2SAndroid Build Coastguard Worker
88*890232f2SAndroid Build Coastguard Workerstatic createCharactersTypeVector(builder:flatbuffers.Builder, data:Character[]):flatbuffers.Offset {
89*890232f2SAndroid Build Coastguard Worker  builder.startVector(1, data.length, 1);
90*890232f2SAndroid Build Coastguard Worker  for (let i = data.length - 1; i >= 0; i--) {
91*890232f2SAndroid Build Coastguard Worker    builder.addInt8(data[i]!);
92*890232f2SAndroid Build Coastguard Worker  }
93*890232f2SAndroid Build Coastguard Worker  return builder.endVector();
94*890232f2SAndroid Build Coastguard Worker}
95*890232f2SAndroid Build Coastguard Worker
96*890232f2SAndroid Build Coastguard Workerstatic startCharactersTypeVector(builder:flatbuffers.Builder, numElems:number) {
97*890232f2SAndroid Build Coastguard Worker  builder.startVector(1, numElems, 1);
98*890232f2SAndroid Build Coastguard Worker}
99*890232f2SAndroid Build Coastguard Worker
100*890232f2SAndroid Build Coastguard Workerstatic addCharacters(builder:flatbuffers.Builder, charactersOffset:flatbuffers.Offset) {
101*890232f2SAndroid Build Coastguard Worker  builder.addFieldOffset(3, charactersOffset, 0);
102*890232f2SAndroid Build Coastguard Worker}
103*890232f2SAndroid Build Coastguard Worker
104*890232f2SAndroid Build Coastguard Workerstatic createCharactersVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset {
105*890232f2SAndroid Build Coastguard Worker  builder.startVector(4, data.length, 4);
106*890232f2SAndroid Build Coastguard Worker  for (let i = data.length - 1; i >= 0; i--) {
107*890232f2SAndroid Build Coastguard Worker    builder.addOffset(data[i]!);
108*890232f2SAndroid Build Coastguard Worker  }
109*890232f2SAndroid Build Coastguard Worker  return builder.endVector();
110*890232f2SAndroid Build Coastguard Worker}
111*890232f2SAndroid Build Coastguard Worker
112*890232f2SAndroid Build Coastguard Workerstatic startCharactersVector(builder:flatbuffers.Builder, numElems:number) {
113*890232f2SAndroid Build Coastguard Worker  builder.startVector(4, numElems, 4);
114*890232f2SAndroid Build Coastguard Worker}
115*890232f2SAndroid Build Coastguard Worker
116*890232f2SAndroid Build Coastguard Workerstatic endMovie(builder:flatbuffers.Builder):flatbuffers.Offset {
117*890232f2SAndroid Build Coastguard Worker  const offset = builder.endObject();
118*890232f2SAndroid Build Coastguard Worker  return offset;
119*890232f2SAndroid Build Coastguard Worker}
120*890232f2SAndroid Build Coastguard Worker
121*890232f2SAndroid Build Coastguard Workerstatic finishMovieBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {
122*890232f2SAndroid Build Coastguard Worker  builder.finish(offset, 'MOVI');
123*890232f2SAndroid Build Coastguard Worker}
124*890232f2SAndroid Build Coastguard Worker
125*890232f2SAndroid Build Coastguard Workerstatic finishSizePrefixedMovieBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) {
126*890232f2SAndroid Build Coastguard Worker  builder.finish(offset, 'MOVI', true);
127*890232f2SAndroid Build Coastguard Worker}
128*890232f2SAndroid Build Coastguard Worker
129*890232f2SAndroid Build Coastguard Workerstatic createMovie(builder:flatbuffers.Builder, mainCharacterType:Character, mainCharacterOffset:flatbuffers.Offset, charactersTypeOffset:flatbuffers.Offset, charactersOffset:flatbuffers.Offset):flatbuffers.Offset {
130*890232f2SAndroid Build Coastguard Worker  Movie.startMovie(builder);
131*890232f2SAndroid Build Coastguard Worker  Movie.addMainCharacterType(builder, mainCharacterType);
132*890232f2SAndroid Build Coastguard Worker  Movie.addMainCharacter(builder, mainCharacterOffset);
133*890232f2SAndroid Build Coastguard Worker  Movie.addCharactersType(builder, charactersTypeOffset);
134*890232f2SAndroid Build Coastguard Worker  Movie.addCharacters(builder, charactersOffset);
135*890232f2SAndroid Build Coastguard Worker  return Movie.endMovie(builder);
136*890232f2SAndroid Build Coastguard Worker}
137*890232f2SAndroid Build Coastguard Worker
138*890232f2SAndroid Build Coastguard Workerunpack(): MovieT {
139*890232f2SAndroid Build Coastguard Worker  return new MovieT(
140*890232f2SAndroid Build Coastguard Worker    this.mainCharacterType(),
141*890232f2SAndroid Build Coastguard Worker    (() => {
142*890232f2SAndroid Build Coastguard Worker      let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
143*890232f2SAndroid Build Coastguard Worker      if(temp === null) { return null; }
144*890232f2SAndroid Build Coastguard Worker      if(typeof temp === 'string') { return temp; }
145*890232f2SAndroid Build Coastguard Worker      return temp.unpack()
146*890232f2SAndroid Build Coastguard Worker  })(),
147*890232f2SAndroid Build Coastguard Worker    this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()),
148*890232f2SAndroid Build Coastguard Worker    (() => {
149*890232f2SAndroid Build Coastguard Worker    let ret = [];
150*890232f2SAndroid Build Coastguard Worker    for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) {
151*890232f2SAndroid Build Coastguard Worker      let targetEnum = this.charactersType(targetEnumIndex);
152*890232f2SAndroid Build Coastguard Worker      if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; }
153*890232f2SAndroid Build Coastguard Worker
154*890232f2SAndroid Build Coastguard Worker      let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
155*890232f2SAndroid Build Coastguard Worker      if(temp === null) { continue; }
156*890232f2SAndroid Build Coastguard Worker      if(typeof temp === 'string') { ret.push(temp); continue; }
157*890232f2SAndroid Build Coastguard Worker      ret.push(temp.unpack());
158*890232f2SAndroid Build Coastguard Worker    }
159*890232f2SAndroid Build Coastguard Worker    return ret;
160*890232f2SAndroid Build Coastguard Worker  })()
161*890232f2SAndroid Build Coastguard Worker  );
162*890232f2SAndroid Build Coastguard Worker}
163*890232f2SAndroid Build Coastguard Worker
164*890232f2SAndroid Build Coastguard Worker
165*890232f2SAndroid Build Coastguard WorkerunpackTo(_o: MovieT): void {
166*890232f2SAndroid Build Coastguard Worker  _o.mainCharacterType = this.mainCharacterType();
167*890232f2SAndroid Build Coastguard Worker  _o.mainCharacter = (() => {
168*890232f2SAndroid Build Coastguard Worker      let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this));
169*890232f2SAndroid Build Coastguard Worker      if(temp === null) { return null; }
170*890232f2SAndroid Build Coastguard Worker      if(typeof temp === 'string') { return temp; }
171*890232f2SAndroid Build Coastguard Worker      return temp.unpack()
172*890232f2SAndroid Build Coastguard Worker  })();
173*890232f2SAndroid Build Coastguard Worker  _o.charactersType = this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength());
174*890232f2SAndroid Build Coastguard Worker  _o.characters = (() => {
175*890232f2SAndroid Build Coastguard Worker    let ret = [];
176*890232f2SAndroid Build Coastguard Worker    for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) {
177*890232f2SAndroid Build Coastguard Worker      let targetEnum = this.charactersType(targetEnumIndex);
178*890232f2SAndroid Build Coastguard Worker      if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; }
179*890232f2SAndroid Build Coastguard Worker
180*890232f2SAndroid Build Coastguard Worker      let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex);
181*890232f2SAndroid Build Coastguard Worker      if(temp === null) { continue; }
182*890232f2SAndroid Build Coastguard Worker      if(typeof temp === 'string') { ret.push(temp); continue; }
183*890232f2SAndroid Build Coastguard Worker      ret.push(temp.unpack());
184*890232f2SAndroid Build Coastguard Worker    }
185*890232f2SAndroid Build Coastguard Worker    return ret;
186*890232f2SAndroid Build Coastguard Worker  })();
187*890232f2SAndroid Build Coastguard Worker}
188*890232f2SAndroid Build Coastguard Worker}
189*890232f2SAndroid Build Coastguard Worker
190*890232f2SAndroid Build Coastguard Workerexport class MovieT {
191*890232f2SAndroid Build Coastguard Workerconstructor(
192*890232f2SAndroid Build Coastguard Worker  public mainCharacterType: Character = Character.NONE,
193*890232f2SAndroid Build Coastguard Worker  public mainCharacter: AttackerT|BookReaderT|RapunzelT|string|null = null,
194*890232f2SAndroid Build Coastguard Worker  public charactersType: (Character)[] = [],
195*890232f2SAndroid Build Coastguard Worker  public characters: (AttackerT|BookReaderT|RapunzelT|string)[] = []
196*890232f2SAndroid Build Coastguard Worker){}
197*890232f2SAndroid Build Coastguard Worker
198*890232f2SAndroid Build Coastguard Worker
199*890232f2SAndroid Build Coastguard Workerpack(builder:flatbuffers.Builder): flatbuffers.Offset {
200*890232f2SAndroid Build Coastguard Worker  const mainCharacter = builder.createObjectOffset(this.mainCharacter);
201*890232f2SAndroid Build Coastguard Worker  const charactersType = Movie.createCharactersTypeVector(builder, this.charactersType);
202*890232f2SAndroid Build Coastguard Worker  const characters = Movie.createCharactersVector(builder, builder.createObjectOffsetList(this.characters));
203*890232f2SAndroid Build Coastguard Worker
204*890232f2SAndroid Build Coastguard Worker  return Movie.createMovie(builder,
205*890232f2SAndroid Build Coastguard Worker    this.mainCharacterType,
206*890232f2SAndroid Build Coastguard Worker    mainCharacter,
207*890232f2SAndroid Build Coastguard Worker    charactersType,
208*890232f2SAndroid Build Coastguard Worker    characters
209*890232f2SAndroid Build Coastguard Worker  );
210*890232f2SAndroid Build Coastguard Worker}
211*890232f2SAndroid Build Coastguard Worker}
212