package co.smartreceipts.android.persistence.database.tables.keys; import android.support.annotation.NonNull; import com.google.common.base.Preconditions; import co.smartreceipts.android.model.Column; import co.smartreceipts.android.model.Receipt; /** * Defines the primary key for the {@link co.smartreceipts.android.persistence.database.tables.AbstractColumnTable} for * CSVs and PDFs */ public final class ColumnPrimaryKey implements PrimaryKey<Column<Receipt>, Integer> { private final String mPrimaryKeyColumnName; public ColumnPrimaryKey(@NonNull String primaryKeyColumnName) { mPrimaryKeyColumnName = Preconditions.checkNotNull(primaryKeyColumnName); } @Override @NonNull public String getPrimaryKeyColumn() { return mPrimaryKeyColumnName; } @Override @NonNull public Class<Integer> getPrimaryKeyClass() { return Integer.class; } @Override @NonNull public Integer getPrimaryKeyValue(@NonNull Column<Receipt> column) { return column.getId(); } }