package com.usai.util;

import android.content.Context;
import android.database.Cursor;
import android.util.Log;

public class dbgUtil
{
	static boolean ENABLE_DEBUG = true;
	static boolean ENABLE_SQL_DEBUG = true;
	final int DEBUG_LEVEL_NONE = 8;
	static int DEBUG_LEVEL = Log.VERBOSE;

	// private static boolean m_dbgFlag = true;
	/*
	 * public dbgUtil(Context context) {
	 * 
	 * m_dbgFlag = Boolean.parseBoolean(context.getString(R.string.flag_debug));
	 * 
	 * }
	 * 
	 * public dbgUtil(Context context) { m_dbgFlag =
	 * Boolean.parseBoolean(context.getString(R.string.flag_debug)); return
	 * this; }
	 */
//	public static void Log(int type, String tag, String msg)
//	{
//		if (ENABLE_DEBUG == false)
//			return;
//		if (type < DEBUG_LEVEL)
//			return;
//		String pos= getTracePos();
//		switch (type)
//		{
//			case Log.ASSERT:
//				Log.wtf(tag, msg+pos);
//				break;
//			case Log.DEBUG:
//				Log.d(tag, msg+pos);
//				break;
//			case Log.ERROR:
//				Log.e(tag, msg+pos);
//				break;
//			case Log.INFO:
//				Log.i(tag, msg+pos);
//				break;
//			case Log.VERBOSE:
//				Log.v(tag, msg+pos);
//				break;
//			case Log.WARN:
//				Log.w(tag, msg+pos);
//				break;
//			default:
//				Log.wtf("dbgUtil", "LOG TYPE ERROR!"+pos);
//				break;
//		}
//
//	}

	private static String getTracePos()
	{
		// StackTraceElement[] elements =
		// Thread.currentThread().getStackTrace();
		StackTraceElement element = Thread.currentThread().getStackTrace()[4];
		
		return " at " + element.getClassName() + "." + element.getMethodName()
				+ "("+element.getFileName()+":" + element.getLineNumber()+")" ;
	}

	public static void dbgCursorInfo(Cursor cursor, Context context/*
																	 * , String
																	 * TracePos
																	 */)
	{
		if (ENABLE_SQL_DEBUG == false)
			return;

		// ----------------------debug cursor-----------------------------------
		Log.d("sql_dbg@dbgCursorInfo", getTracePos() + "Cursor size:	" + cursor.getCount()
				+ ";	columns count:	" + cursor.getColumnCount() + ";");
//		dbgUtil.Log(Log.DEBUG,"sql_dbg", getTracePos() + "Cursor size:	" + cursor.getCount()
//				+ ";	columns count:	" + cursor.getColumnCount() + ";");
		for (int i = 0; i < cursor.getColumnCount(); i++)
		{
			Log.d("sql_dbg@dbgCursorInfo","column idx:	" + i + ";		column name:	"
					+ cursor.getColumnName(i) + ";");
//			dbgUtil.Log(Log.DEBUG,"sql_dbg",
//					"column idx:	" + i + ";		column name:	"
//							+ cursor.getColumnName(i) + ";");
		}
		// ----------------------debug cursor-----------------------------------

	}
	// public static void dbgCursorMoreInfo(Cursor cursor /*, String TracePos*/)
	// {
	// if(Boolean.parseBoolean(context.getString(R.string.flag_debug))==false)
	// return;
	//
	//
	// //----------------------debug cursor-----------------------------------
	// dbgUtil.Log(Log.DEBUG,"sql_dbg",Log.getStackTraceString(new Throwable())
	// +"Cursor size:	"+cursor.getCount()
	// +";	columns count:	"+cursor.getColumnCount()
	// +";");
	// for (int i =0;i<cursor.getColumnCount();i++)
	// {
	// dbgUtil.Log(Log.DEBUG,"sql_dbg","column idx:	"+i
	// +";		column name:	"+cursor.getColumnName(i)
	// +";");
	// }
	// //----------------------debug cursor-----------------------------------
	//
	// }
}
