class TripForeignKeyAbstractTableController extends AbstractTableController<ModelType> {

    @Override
    public synchronized void unsubscribe(@NonNull TableEventsListener<ModelType> tableEventsListener) {
        if (tableEventsListener instanceof TripForeignKeyTableEventsListener) {
            final TripForeignKeyTableEventsListener<ModelType> tripForeignKeyTableEventsListener = (TripForeignKeyTableEventsListener<ModelType>) tableEventsListener;
            mForeignTableEventsListeners.remove(tripForeignKeyTableEventsListener);
            final BridgingTripForeignKeyTableEventsListener<ModelType> bridge = mBridgingTableEventsListeners.remove(tripForeignKeyTableEventsListener);
            if (bridge != null) {
                bridge.unsubscribe();
            }
        } else {
            super.unsubscribe(tableEventsListener);
        }
    }

    public  TripForeignKeyAbstractTableController(@NonNull TripForeignKeyAbstractSqlTable<ModelType> table, @NonNull Analytics analytics);
    public  TripForeignKeyAbstractTableController(@NonNull TripForeignKeyAbstractSqlTable<ModelType> table, @NonNull TableActionAlterations<ModelType> tableActionAlterations, @NonNull Analytics analytics);
      TripForeignKeyAbstractTableController(@NonNull TripForeignKeyAbstractSqlTable<ModelType> table, @NonNull TableActionAlterations<ModelType> tableActionAlterations, @NonNull Analytics analytics, @NonNull Scheduler subscribeOnScheduler, @NonNull Scheduler observeOnScheduler);

}