// automatically generated by the FlatBuffers compiler, do not modify

import com.google.flatbuffers.*;
import java.nio.*;
import java.util.*;

public class TableAT {
  private MyGame.OtherNameSpace.TableBT b;

  public MyGame.OtherNameSpace.TableBT getB() {
    return b;
  }

  public void setB(MyGame.OtherNameSpace.TableBT b) {
    this.b = b;
  }

  public TableAT() {
    this.b = null;
  }
}
