// Path: src/com/gotech/tv/launcher/util/Constant.java
// public class Constant {
// 
//     public static final int VIEW_PAGER_DURATION = 500;
//     public static final int MENU_HOME = 0;
//     public static final int MENU_APP = 1;
//     public static final int MENU_SETTING = 2;
//     public static final int TRAN_DUR_ANIM = 500;
//     public static final float APP_PAGE_SIZE = 12.0f;
//     public static final int APP_PAGE_COLUMNS = 4;
//     public static final int MOVE = 1;
//     public static final int PAGE_ITEM_NUM = 6;
//     public static final int DIALOG_AUTO_DISMISS = 0;
//     public static final int TIME_OUT = 5000;
// 
//     /**
//      * 加（解）密钥匙
//      */
//     public static final String DesEncryptKey = "TvLauncher";
// 
//     /**
//      * 存取用户IP和软件类型
//      **/
//     public static final String UserServerConfigTxt = "serverconfig.txt";
// 
//     /**
//      * 存用户名和密码文件
//      **/
//     public static final String UserDataTxt = "userpwd.txt";
// 
//     /**
//      * 软件类型
//      */
//     public static String SOFTWARE_TYPE = "TvLauncher";
// 
//     /**
//      * 默认分组号
//      * 默认：创维 999
//      */
//     public static String MAC_REGISTER_DEFAULT_CODE = "009";
// 
//     /**
//      * JSON数据格式错误
//      **/
//     public static int ParseData_FormatWrong = 2;
// 
//     /**
//      * 解析成功
//      **/
//     public static int ParseData_Success = 0;
// 
//     /**
//      * 用户访问超时 或 未登录
//      **/
//     public static int ParseData_TimeOut = 1;
// 
// }
// 
// Path: src/com/gotech/tv/launcher/vo/ParseResultVo.java
// public class ParseResultVo {
// 
//     /**
//      * 返回结果 类型
//      */
//     public int result;
//     /**
//      * 返回结果 字串 （可选 ）
//      */
//     public String reMsg;
//     /**
//      * 返回结果集合 (可选)
//      */
//     public List<?> list;
//     /**
//      * 返回结果 总记录
//      */
//     public int total;
// 
//     /**
//      * 对象属性
//      */
//     public Object obj;
// 
//     @Override
//     public String toString() {
//         return buildString();
//     }
// 
//     private String buildString() {
//         StringBuilder builder = new StringBuilder();
//         builder.append("[result: " + result);
//         if (!TextUtils.isEmpty(reMsg)) {
//             builder.append(", msg: " + reMsg);
//         }
//         builder.append("]@");
//         builder.append(getClass().getSimpleName());
//         builder.append("@");
//         builder.append(Integer.toHexString(hashCode()));
//         return builder.toString();
//     }
// }
// 
// Path: src/com/gotech/tv/launcher/vo/UserInfoVo.java
// public class UserInfoVo {
//     public String mUserName;
//     public String mPassword;
// 
//     public UserInfoVo() {
// 
//     }
// 
//     public UserInfoVo(String mUserName, String mPassword) {
//         this.mUserName = mUserName;
//         this.mPassword = mPassword;
//     }
// 
//     @Override
//     public String toString() {
//         return mUserName;
//     }
// }


import com.gotech.tv.launcher.util.Constant;
import com.gotech.tv.launcher.vo.ParseResultVo;
import com.gotech.tv.launcher.vo.UserInfoVo;
import org.json.JSONObject;

    public static class TokenUpdateParser extends BaseJsonParser<String> {
        @Override
        public String parse(JSONObject data) throws DataParseException {
            return data.optString("newUserToken");
        }
    }

    public static class HeartRunParser extends BaseJsonParser<Integer> {
        @Override
        public Integer parse(JSONObject data) throws DataParseException {
            return data.optInt("status");
        }
    }

    public static class FindUserIdParser extends BaseJsonParser<String> {
        @Override
        public String parse(JSONObject data) throws DataParseException {
            return data.optString("userid");
        }
    }

    public static class HistoryParser extends BaseJsonParser<ParseResultVo> {

        private static final String KEY_DES = "description";

        @Override
        public ParseResultVo parse(JSONObject data) throws DataParseException {
            ParseResultVo vo = new ParseResultVo();
            if (data.has(StateParser.KEY_STATE)) {
// Path: src/com/gotech/tv/launcher/util/Constant.java
// public class Constant {
// 
//     public static final int VIEW_PAGER_DURATION = 500;
//     public static final int MENU_HOME = 0;
//     public static final int MENU_APP = 1;
//     public static final int MENU_SETTING = 2;
//     public static final int TRAN_DUR_ANIM = 500;
//     public static final float APP_PAGE_SIZE = 12.0f;
//     public static final int APP_PAGE_COLUMNS = 4;
//     public static final int MOVE = 1;
//     public static final int PAGE_ITEM_NUM = 6;
//     public static final int DIALOG_AUTO_DISMISS = 0;
//     public static final int TIME_OUT = 5000;
// 
//     /**
//      * 加（解）密钥匙
//      */
//     public static final String DesEncryptKey = "TvLauncher";
// 
//     /**
//      * 存取用户IP和软件类型
//      **/
//     public static final String UserServerConfigTxt = "serverconfig.txt";
// 
//     /**
//      * 存用户名和密码文件
//      **/
//     public static final String UserDataTxt = "userpwd.txt";
// 
//     /**
//      * 软件类型
//      */
//     public static String SOFTWARE_TYPE = "TvLauncher";
// 
//     /**
//      * 默认分组号
//      * 默认：创维 999
//      */
//     public static String MAC_REGISTER_DEFAULT_CODE = "009";
// 
//     /**
//      * JSON数据格式错误
//      **/
//     public static int ParseData_FormatWrong = 2;
// 
//     /**
//      * 解析成功
//      **/
//     public static int ParseData_Success = 0;
// 
//     /**
//      * 用户访问超时 或 未登录
//      **/
//     public static int ParseData_TimeOut = 1;
// 
// }
// 
// Path: src/com/gotech/tv/launcher/vo/ParseResultVo.java
// public class ParseResultVo {
// 
//     /**
//      * 返回结果 类型
//      */
//     public int result;
//     /**
//      * 返回结果 字串 （可选 ）
//      */
//     public String reMsg;
//     /**
//      * 返回结果集合 (可选)
//      */
//     public List<?> list;
//     /**
//      * 返回结果 总记录
//      */
//     public int total;
// 
//     /**
//      * 对象属性
//      */
//     public Object obj;
// 
//     @Override
//     public String toString() {
//         return buildString();
//     }
// 
//     private String buildString() {
//         StringBuilder builder = new StringBuilder();
//         builder.append("[result: " + result);
//         if (!TextUtils.isEmpty(reMsg)) {
//             builder.append(", msg: " + reMsg);
//         }
//         builder.append("]@");
//         builder.append(getClass().getSimpleName());
//         builder.append("@");
//         builder.append(Integer.toHexString(hashCode()));
//         return builder.toString();
//     }
// }
// 
// Path: src/com/gotech/tv/launcher/vo/UserInfoVo.java
// public class UserInfoVo {
//     public String mUserName;
//     public String mPassword;
// 
//     public UserInfoVo() {
// 
//     }
// 
//     public UserInfoVo(String mUserName, String mPassword) {
//         this.mUserName = mUserName;
//         this.mPassword = mPassword;
//     }
// 
//     @Override
//     public String toString() {
//         return mUserName;
//     }
// }


// Path: src/com/gotech/tv/launcher/parser/ParserSet.java
import com.gotech.tv.launcher.util.Constant;
import com.gotech.tv.launcher.vo.ParseResultVo;
import com.gotech.tv.launcher.vo.UserInfoVo;
import org.json.JSONObject;


    public static class TokenUpdateParser extends BaseJsonParser<String> {
        @Override
        public String parse(JSONObject data) throws DataParseException {
            return data.optString("newUserToken");
        }
    }

    public static class HeartRunParser extends BaseJsonParser<Integer> {
        @Override
        public Integer parse(JSONObject data) throws DataParseException {
            return data.optInt("status");
        }
    }

    public static class FindUserIdParser extends BaseJsonParser<String> {
        @Override
        public String parse(JSONObject data) throws DataParseException {
            return data.optString("userid");
        }
    }

    public static class HistoryParser extends BaseJsonParser<ParseResultVo> {

        private static final String KEY_DES = "description";

        @Override
        public ParseResultVo parse(JSONObject data) throws DataParseException {
            ParseResultVo vo = new ParseResultVo();
            if (data.has(StateParser.KEY_STATE)) {
                vo.result = Constant.ParseData_TimeOut;