// Path: kerkee/src/com/kercer/kerkee/bridge/type/KCJSCallback.java
// public class KCJSCallback implements KCJSType
// {
// 	private String mCallbackId;
// 	
// 	public KCJSCallback(String aCallbackId)
// 	{
// 		mCallbackId = aCallbackId;
// 	}
// 	
// 	public String getCallbackId()
// 	{
// 		return mCallbackId;
// 	}
// 
// 
// 	public void callbackToJS(final KCWebView aWebView)
// 	{
// 		KCJSExecutor.callbackJS(aWebView, mCallbackId);
// 	}
// 
// 	public void callbackToJS(final KCWebView aWebView, Object... aArgs)
// 	{
// 		KCJSExecutor.callbackJS(aWebView, mCallbackId, aArgs);
// 	}
// 
// //	public void callbackToJS(KCWebView aWebView, String aStr)
// //	{
// //		KCJSExecutor.callbackJS(aWebView, mCallbackId, aStr);
// //	}
// //
// //	public void callbackToJS(KCWebView aWebView, JSONObject aJSONObject)
// //	{
// //		KCJSExecutor.callbackJS(aWebView, mCallbackId, aJSONObject);
// //	}
// //
// //	public void callbackToJS(KCWebView aWebView, JSONArray aJSONArray)
// //	{
// //		KCJSExecutor.callbackJS(aWebView, mCallbackId, aJSONArray);
// //	}
// 	
// 	public String toString()
// 	{
// 		return mCallbackId;
// 	}
// }
// 
// Path: kerkee/src/com/kercer/kerkee/bridge/type/KCJSNull.java
// public class KCJSNull implements KCJSType
// {
//     public static final KCJSNull NULL = new KCJSNull();
// 
//     public static boolean isNull(Object value)
//     {
//         return value == null || value == NULL || value == JSONObject.NULL;
//     }
// 
//     @Override public boolean equals(Object o)
//     {
//         return o == this || o == null; // API specifies this broken equals implementation
//     }
//     @Override public String toString()
//     {
//         return null;
//     }
// 
//     @Override
//     public int hashCode()
//     {
//         return super.hashCode();
//     }
// 
// }


import com.kercer.kercore.debug.KCLog;
import com.kercer.kerkee.bridge.type.KCJSCallback;
import com.kercer.kerkee.bridge.type.KCJSNull;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Iterator;

    public JSONObject getArgsJSON()
    {
        return mArgsJSON;
    }

    protected boolean isNull(Object aObj)
    {
       return aObj == null || aObj == JSONObject.NULL;
    }

    @SuppressWarnings("rawtypes")
    public KCClassParser(String jsonStr)
    {
        try
        {
            JSONObject json = new JSONObject(jsonStr);
            mJSClzName = json.get(CLZ).toString();
            mJSMethodName = json.get(METHOD).toString();
            if (json.has(ARGS))
            {
                mArgsJSON = json.getJSONObject(ARGS);
                Iterator it = mArgsJSON.keys();
                while (it.hasNext())
                {
                    String key = (String) it.next();
                    if (key != null)
                    {
                        Object value = mArgsJSON.get(key);
                        if(KCJSNull.isNull(value))
// Path: kerkee/src/com/kercer/kerkee/bridge/type/KCJSCallback.java
// public class KCJSCallback implements KCJSType
// {
// 	private String mCallbackId;
// 	
// 	public KCJSCallback(String aCallbackId)
// 	{
// 		mCallbackId = aCallbackId;
// 	}
// 	
// 	public String getCallbackId()
// 	{
// 		return mCallbackId;
// 	}
// 
// 
// 	public void callbackToJS(final KCWebView aWebView)
// 	{
// 		KCJSExecutor.callbackJS(aWebView, mCallbackId);
// 	}
// 
// 	public void callbackToJS(final KCWebView aWebView, Object... aArgs)
// 	{
// 		KCJSExecutor.callbackJS(aWebView, mCallbackId, aArgs);
// 	}
// 
// //	public void callbackToJS(KCWebView aWebView, String aStr)
// //	{
// //		KCJSExecutor.callbackJS(aWebView, mCallbackId, aStr);
// //	}
// //
// //	public void callbackToJS(KCWebView aWebView, JSONObject aJSONObject)
// //	{
// //		KCJSExecutor.callbackJS(aWebView, mCallbackId, aJSONObject);
// //	}
// //
// //	public void callbackToJS(KCWebView aWebView, JSONArray aJSONArray)
// //	{
// //		KCJSExecutor.callbackJS(aWebView, mCallbackId, aJSONArray);
// //	}
// 	
// 	public String toString()
// 	{
// 		return mCallbackId;
// 	}
// }
// 
// Path: kerkee/src/com/kercer/kerkee/bridge/type/KCJSNull.java
// public class KCJSNull implements KCJSType
// {
//     public static final KCJSNull NULL = new KCJSNull();
// 
//     public static boolean isNull(Object value)
//     {
//         return value == null || value == NULL || value == JSONObject.NULL;
//     }
// 
//     @Override public boolean equals(Object o)
//     {
//         return o == this || o == null; // API specifies this broken equals implementation
//     }
//     @Override public String toString()
//     {
//         return null;
//     }
// 
//     @Override
//     public int hashCode()
//     {
//         return super.hashCode();
//     }
// 
// }


// Path: kerkee/src/com/kercer/kerkee/bridge/KCClassParser.java
import com.kercer.kercore.debug.KCLog;
import com.kercer.kerkee.bridge.type.KCJSCallback;
import com.kercer.kerkee.bridge.type.KCJSNull;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Iterator;


    public JSONObject getArgsJSON()
    {
        return mArgsJSON;
    }

    protected boolean isNull(Object aObj)
    {
       return aObj == null || aObj == JSONObject.NULL;
    }

    @SuppressWarnings("rawtypes")
    public KCClassParser(String jsonStr)
    {
        try
        {
            JSONObject json = new JSONObject(jsonStr);
            mJSClzName = json.get(CLZ).toString();
            mJSMethodName = json.get(METHOD).toString();
            if (json.has(ARGS))
            {
                mArgsJSON = json.getJSONObject(ARGS);
                Iterator it = mArgsJSON.keys();
                while (it.hasNext())
                {
                    String key = (String) it.next();
                    if (key != null)
                    {
                        Object value = mArgsJSON.get(key);
                        if(KCJSNull.isNull(value))
                            value = new KCJSNull();