package com.num.database; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import android.database.Cursor; public class DatabaseColumns { private HashMap<String,String> columns; private String tableName; public DatabaseColumns(String tablename) { columns = new HashMap<String, String>(); this.tableName = tablename; } public void add(String name, String type) { columns.put(name,type); } public String getDatabaseCreateText() { String s = "create table " + tableName + " ("; Iterator<String> iter = columns.keySet().iterator(); //iter.next(); while(iter.hasNext()) { String key = iter.next(); s+= key +" "+ columns.get(key) +","; } s = s.substring(0,s.length()-1); s+=" );"; return s; } public String[] getColumnNames() { String[] array = new String[columns.size()]; Iterator<String> iter = columns.keySet().iterator(); int count = 0; while(iter.hasNext()) { array[count++] = iter.next(); } return array; } public HashMap<String,Integer> fetch(Cursor cursor) { HashMap<String,Integer> map = new HashMap<String, Integer>(); Iterator<String> iter = columns.keySet().iterator(); while(iter.hasNext()) { String column = iter.next(); int value = cursor.getColumnIndex(column); map.put(column, value); } return map; } public Map<String,String> getDataStore(Cursor cursor) { Map<String,Integer> positions = fetch(cursor); Map<String,String> dataStore= new HashMap<String, String>(); Iterator<String> iter = columns.keySet().iterator(); while(iter.hasNext()) { String column = iter.next(); int position = positions.get(column); dataStore.put(column, cursor.getString(position)); } return dataStore; } }