class DistanceDatabaseAdapter implements SelectionBackedDatabaseAdapter<Distance, Trip> {

    @NonNull
    @Override
    public Distance build(@NonNull Distance distance, int primaryKey, @NonNull UUID uuid,
                          @NonNull DatabaseOperationMetadata databaseOperationMetadata) {
        return new DistanceBuilderFactory(primaryKey, distance)
                .setUuid(uuid)
                .setSyncState(mSyncStateAdapter.get(distance.getSyncState(), databaseOperationMetadata))
                .build();
    }

    public  DistanceDatabaseAdapter(@NonNull Table<Trip> tripsTable, @NonNull Table<PaymentMethod> paymentMethodTable);
    public  DistanceDatabaseAdapter(@NonNull Table<Trip> tripsTable, @NonNull Table<PaymentMethod> paymentMethodTable,
                                   @NonNull SyncStateAdapter syncStateAdapter);

}