package com.florianmski.tracktoid.utils;
import android.database.Cursor;
import com.uwetrottmann.trakt.v2.enums.Rating;
import org.joda.time.DateTime;
import java.util.Arrays;
import java.util.List;
public class CursorHelper
{
private Cursor cursor;
public CursorHelper(Cursor cursor)
{
this.cursor = cursor;
}
public String getString(String column)
{
return cursor.getString(getIndex(column));
}
public String getString(String column, String defaultValue)
{
String data = getString(column);
return data == null ? defaultValue : data;
}
public Integer getInt(String column)
{
int index = getIndex(column);
return cursor.isNull(index) ? null : cursor.getInt(index);
}
public Integer getInt(String column, Integer defaultValue)
{
Integer data = getInt(column);
return data == null ? defaultValue : data;
}
public Long getLong(String column)
{
int index = getIndex(column);
return cursor.isNull(index) ? null : cursor.getLong(index);
}
public Long getLong(String column, Long defaultValue)
{
Long data = getLong(column);
return data == null ? defaultValue : data;
}
public Double getDouble(String column)
{
int index = getIndex(column);
return cursor.isNull(index) ? null : cursor.getDouble(index);
}
public Double getDouble(String column, Double defaultValue)
{
Double data = getDouble(column);
return data == null ? defaultValue : data;
}
public boolean getBoolean(String column)
{
return getBoolean(column, false);
}
public boolean getBoolean(String column, boolean defaultValue)
{
Integer data = getInt(column);
return data == null ? defaultValue : data != 0;
}
public DateTime getDate(String column)
{
return getDate(column, null);
}
public DateTime getDate(String column, DateTime defaultValue)
{
Long millis = getLong(column);
return millis == null ? defaultValue : new DateTime(millis);
}
public Rating getRating(String column)
{
return getRating(column, null);
}
public Rating getRating(String column, Rating defaultValue)
{
Integer rating = getInt(column);
return rating == null ? defaultValue : Rating.fromValue(rating);
}
public List<String> getStringList(String column)
{
return getStringList(column, null);
}
public List<String> getStringList(String column, List<String> defaultValue)
{
String list = getString(column);
return list == null ? defaultValue : Arrays.asList(list.split(","));
}
private int getIndex(String column)
{
return cursor.getColumnIndexOrThrow(column);
}
}