package com.jdroid.android.sample.ui.sqlite;
import android.content.ContentValues;
import android.database.Cursor;
import com.jdroid.android.sqlite.Column;
import com.jdroid.android.sqlite.DataType;
import com.jdroid.android.sqlite.Reference;
public enum SampleSQLiteEntityColumns implements Column {
ID(Column.ID, DataType.TEXT, Column.PRIMARY_KEY, Boolean.FALSE, Boolean.TRUE),
FIELD("field", DataType.TEXT, null, Boolean.FALSE, Boolean.FALSE);
private String columnName;
private DataType dataType;
private String extraQualifier;
private Boolean optional;
private Boolean unique;
private SampleSQLiteEntityColumns(String columnName, DataType dataType, String extraQualifier, Boolean optional,
Boolean unique) {
this.columnName = columnName;
this.dataType = dataType;
this.extraQualifier = extraQualifier;
this.optional = optional;
this.unique = unique;
}
@Override
public <T> void addValue(ContentValues values, T value) {
dataType.writeValue(values, columnName, value);
}
@SuppressWarnings("unchecked")
@Override
public <E> E readValue(Cursor cursor) {
return (E)dataType.readValue(cursor, columnName);
}
@Override
public DataType getDataType() {
return dataType;
}
@Override
public String getColumnName() {
return columnName;
}
@Override
public String getExtraQualifier() {
return extraQualifier;
}
@Override
public Boolean isOptional() {
return optional;
}
@Override
public Boolean isUnique() {
return unique;
}
@Override
public Reference getReference() {
return null;
}
}