shillelagh-processor/src/main/java/shillelagh/internal/TableObject.java
void brewJava(Writer writer) throws IOException {
    logger.d("brewJava");
    JavaWriter javaWriter = new JavaWriter(writer);
    javaWriter.setCompressingTypes(false);

    javaWriter.emitSingleLineComment("Generated code from Shillelagh. Do not modify!") //
        .emitPackage(classPackage) //
        /* Knows nothing of android types, must use strings. */ //
        .emitImports("android.content.ContentValues", "android.database.Cursor", //
            "android.database.DatabaseUtils", "android.database.sqlite.SQLiteDatabase") //
        .emitImports(ShillelaghUtil.class, ByteArrayInputStream.class, ByteArrayOutputStream.class,
            IOException.class, ObjectInputStream.class, ObjectOutputStream.class, LinkedList.class,
            Date.class, List.class) //
        .beginType(className, "class", EnumSet.of(PUBLIC, FINAL));

    if (this.isChildTable) {
      emitParentInsert(javaWriter);
      emitSelectAll(javaWriter);
    }
    emitInsert(javaWriter);
    emitOneToOneInsert(javaWriter);
    emitGetId(javaWriter);
    emitCreateTable(javaWriter);
    emitDropTable(javaWriter);
    emitUpdate(javaWriter);
    emitUpdateColumnId(javaWriter);
    emitDeleteWithId(javaWriter);
    emitDeleteWithObject(javaWriter);
    emitMapCursorToObject(javaWriter);
    emitSingleMap(javaWriter);
    emitSelectById(javaWriter);
    javaWriter.endType();
  }
void brewJava(Writer writer) throws IOException {
    logger.d("brewJava");
    JavaWriter javaWriter = new JavaWriter(writer);
    javaWriter.setCompressingTypes(false);

    javaWriter.emitSingleLineComment("Generated code from Shillelagh. Do not modify!") //
        .emitPackage(classPackage) //
        /* Knows nothing of android types, must use strings. */ //
        .emitImports("android.content.ContentValues", "android.database.Cursor", //
            "android.database.DatabaseUtils", "android.database.sqlite.SQLiteDatabase") //
        .emitImports(ShillelaghUtil.class, ByteArrayInputStream.class, ByteArrayOutputStream.class,
            IOException.class, ObjectInputStream.class, ObjectOutputStream.class, LinkedList.class,
            Date.class, List.class) //
        .beginType(className, "class", EnumSet.of(PUBLIC, FINAL));

    if (this.isChildTable) {
      emitParentInsert(javaWriter);
      emitSelectAll(javaWriter);
    }
    emitInsert(javaWriter);
    emitOneToOneInsert(javaWriter);
    emitGetId(javaWriter);
    emitCreateTable(javaWriter);
    emitDropTable(javaWriter);
    emitUpdate(javaWriter);
    emitUpdateColumnId(javaWriter);
    emitDeleteWithId(javaWriter);
    emitDeleteWithObject(javaWriter);
    emitMapCursorToObject(javaWriter);
    emitSingleMap(javaWriter);
    emitSelectById(javaWriter);
    javaWriter.endType();
  }
Create the java functions required for the internal class