package tool;


import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public final class ZoneDatabase{
	private ZoneDatabase(){}
	/**/
	private static String _createAP = "CREATE TABLE ap (id INTEGER AUTO_INCREMENT PRIMARY KEY, bssid VARCHAR);";
	private static String _createLoc = "CREATE TABLE loc (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR);";
	private static String _createLink = "CREATE TABLE link (lvl FLOAT, id INTEGER AUTO_INCREMENT, fk_ap INT, fk_loc INT, FOREIGN KEY (fk_ap) REFERENCES ap(id), FOREIGN KEY (fk_loc) REFERENCES loc(id));";
	private static String _dropLink = "DROP TABLE IF EXISTS link;";
	private static String _dropLoc = "DROP TABLE IF EXISTS loc;";
	private static String _dropAP = "DROP TABLE IF EXISTS ap;";

	public static SQLiteOpenHelper openDB(Context context){
		return new SQLiteOpenHelper(context, "zone", null, 1){
			public void onCreate(SQLiteDatabase db) {
		        db.execSQL(_createAP);
		        db.execSQL(_createLoc);
		        db.execSQL(_createLink);
			}
			public void onUpgrade(SQLiteDatabase db, 
								  int oldVersion,
								  int newVersion) {
		        db.execSQL(_dropLink);
		        db.execSQL(_dropLoc);
		        db.execSQL(_dropAP);
		        onCreate(db);
			}
		};
	}
	
	public static Cursor query(final SQLiteOpenHelper db, final String sql){
		return db.getReadableDatabase().rawQuery(sql, null);
	}
	
	public static void exec(final SQLiteOpenHelper db, final String sql){
		db.getWritableDatabase().execSQL(sql);
	}

}
