// Path: RxArhictecture/app/src/main/java/ru/samples/itis/rxarhictecture/database/Utils.java
// public static int safeIntFromCursor(@NonNull Cursor cursor, @NonNull String column) {
//     try {
//         return cursor.getInt(cursor.getColumnIndex(column));
//     } catch (Exception e) {
//         return 0;
//     }
// }
// 
// Path: RxArhictecture/app/src/main/java/ru/samples/itis/rxarhictecture/database/Utils.java
// public static String safeStringFromCursor(@NonNull Cursor cursor, @NonNull String column) {
//     try {
//         return cursor.getString(cursor.getColumnIndex(column));
//     } catch (Exception e) {
//         return "";
//     }
// }


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import static ru.samples.itis.rxarhictecture.database.Utils.safeIntFromCursor;
import static ru.samples.itis.rxarhictecture.database.Utils.safeStringFromCursor;
package ru.samples.itis.rxarhictecture.database;




/**
 * @author Artur Vasilov
 */
public class PersonsProvider {

    public static final Uri URI = DatabaseProvider.BASE_CONTENT_URI
            .buildUpon()
            .appendPath(PersonTable.getTable().getTableName())
            .build();


    public static void save(Context context, @NonNull Person person) {
        context.getContentResolver().insert(URI, toContentValues(person));
    }

    public static void save(Context context, @NonNull List<Person> persons) {
        ContentValues[] values = new ContentValues[persons.size()];
        for (int i = 0; i < persons.size(); i++) {
            values[i] = toContentValues(persons.get(i));
        }
        context.getContentResolver().bulkInsert(URI, values);
    }

    @NonNull
    public static ContentValues toContentValues(@NonNull Person person) {
        ContentValues values = new ContentValues();
        values.put(PersonTable.Columns.NAME, person.getName());
        values.put(PersonTable.Columns.AGE, person.getAge());
        return values;
    }

    @NonNull
    public static Person fromCursor(@NonNull Cursor cursor) {
        String name = safeStringFromCursor(cursor, PersonTable.Columns.NAME);
// Path: RxArhictecture/app/src/main/java/ru/samples/itis/rxarhictecture/database/Utils.java
// public static int safeIntFromCursor(@NonNull Cursor cursor, @NonNull String column) {
//     try {
//         return cursor.getInt(cursor.getColumnIndex(column));
//     } catch (Exception e) {
//         return 0;
//     }
// }
// 
// Path: RxArhictecture/app/src/main/java/ru/samples/itis/rxarhictecture/database/Utils.java
// public static String safeStringFromCursor(@NonNull Cursor cursor, @NonNull String column) {
//     try {
//         return cursor.getString(cursor.getColumnIndex(column));
//     } catch (Exception e) {
//         return "";
//     }
// }


// Path: RxArhictecture/app/src/main/java/ru/samples/itis/rxarhictecture/database/PersonsProvider.java
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import static ru.samples.itis.rxarhictecture.database.Utils.safeIntFromCursor;
import static ru.samples.itis.rxarhictecture.database.Utils.safeStringFromCursor;

package ru.samples.itis.rxarhictecture.database;




/**
 * @author Artur Vasilov
 */
public class PersonsProvider {

    public static final Uri URI = DatabaseProvider.BASE_CONTENT_URI
            .buildUpon()
            .appendPath(PersonTable.getTable().getTableName())
            .build();


    public static void save(Context context, @NonNull Person person) {
        context.getContentResolver().insert(URI, toContentValues(person));
    }

    public static void save(Context context, @NonNull List<Person> persons) {
        ContentValues[] values = new ContentValues[persons.size()];
        for (int i = 0; i < persons.size(); i++) {
            values[i] = toContentValues(persons.get(i));
        }
        context.getContentResolver().bulkInsert(URI, values);
    }

    @NonNull
    public static ContentValues toContentValues(@NonNull Person person) {
        ContentValues values = new ContentValues();
        values.put(PersonTable.Columns.NAME, person.getName());
        values.put(PersonTable.Columns.AGE, person.getAge());
        return values;
    }

    @NonNull
    public static Person fromCursor(@NonNull Cursor cursor) {
        String name = safeStringFromCursor(cursor, PersonTable.Columns.NAME);
        int age = safeIntFromCursor(cursor, PersonTable.Columns.AGE);