I'm developing an Android application.
I have the following interface:
public interface IDBAdapter {
public enum Table {
...
}
public int insertItem(Table table, Object item);
public boolean removeItem(Table table, long rowIndex);
public Cursor getAllItemsCursor(Table table);
public Cursor setCursorToItem(Table table, long rowIndex);
public void getItem(Table table, long rowIndex);
public boolean updateItem(Table table, long rowIndex, Object item);
}
For each table defined on enum Table
, it will be an object that represents that table.
My problem is about parameter Object item
. I will have to unbox each item every time I call one of this methods and I don't know if this will be very slow for Android.
Do you know a better solution? I don't want to create a DBAdapter for each table because I should share SQLiteDatabase object between each other.
UPDATE:
Here is an example of object that I need to pass to those methods:
public class GameDescriptionData {
public int gameId;
public char[] language = new char[5];
public String name;
public String description;
public GameDescriptionData() {
}
}
Thanks.
You haven't said what kind of values you're putting into the tables. Unless you're inserting primitive values, there won't be any boxing involved. For example, if item
is a String
reference, that doesn't need boxing because it's a reference already.
I suggest you try your ideal design before changing it for the sake of performance concerns. Admittedly I'm not entirely convinced this is a great design to start with, but it's hard to say without knowing more about your application.