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

package NamespaceA;

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

public class SecondTableInAT {
  private NamespaceC.TableInCT referToC;

  public NamespaceC.TableInCT getReferToC() {
    return referToC;
  }

  public void setReferToC(NamespaceC.TableInCT referToC) {
    this.referToC = referToC;
  }

  public SecondTableInAT() {
    this.referToC = null;
  }
}
