/**
  * 函数名:getFieldsIndexAllValues 功能描述:在当前指针的位置,获取fields字段下visitType类型的所有版本值.
  *
  * @param result
  * @param fields
  * @param visitorType
  * @return
  */
 private static List<String> getFieldsIndexAllValues(
     HbaseResult result, INDEX_FIELDS fields, Integer visitorType) {
   if (result == null || result.size() == 0) return null;
   List<String> retVal = new ArrayList<String>();
   retVal.addAll(
       result.getAllData(
           result.getCurPos(),
           UserVisitLogFields.Index_Family,
           fields.toString() + "_" + visitorType));
   return retVal;
 }
 /**
  * 函数名:getFieldsIndexValue 功能描述:在当前指针位置,获取fields字段的最近值,当不指定visitType时且fields=keyList时,那么
  * visitType将是最近一次访问类型.
  *
  * @param result
  * @param family
  * @param fields
  * @param visitType
  * @return
  */
 private static Object getFieldsIndexValue(
     HbaseResult result, String family, INDEX_FIELDS fields, Integer visitType) {
   if (result == null || result.size() == 0) return null;
   String retVal = null;
   byte[] tmp = null;
   String quality = fields.toString();
   switch (fields) {
       // add get visitTime operation
     case visitTime:
       tmp = result.getRawValue(result.getCurPos(), family, quality);
       if (tmp == null) return null;
       return Bytes.toLong(tmp);
     case count:
       if (visitType != null && visitType > 0) quality = fields + "_" + visitType;
       tmp = result.getRawValue(result.getCurPos(), family, quality);
       if (tmp == null) return null;
       return Bytes.toLong(tmp);
     case keyList:
       Integer type = null;
       if (visitType == null || visitType == 0) {
         byte tmpArray[] =
             result.getRawValue(
                 result.getCurPos(),
                 UserVisitLogFields.Index_InfoFam,
                 INDEX_FIELDS.visitType.toString());
         if (tmpArray != null) {
           type = Integer.parseInt(Bytes.toString(tmpArray));
         }
       } else {
         type = visitType;
       }
       if (type == null) return null;
       tmp = result.getRawValue(result.getCurPos(), family, fields.toString() + "_" + type);
       if (tmp == null) return null;
       retVal = Bytes.toString(tmp);
       break;
     default:
       return null;
   }
   return retVal;
 }