⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vcardparser.java

📁 goolge phone 目前没有开放的android 平台的源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            sum += ret;
            return sum;
        }
    }

    private int parseParamList(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseParam(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        int offsetTemp = offset;
        int sumTemp = sum;
        do
        {
            ret = removeWs(offsetTemp);
            offsetTemp += ret;
            sumTemp += ret;
            ret = parseString(offsetTemp, ";", false);
            if(ret == -1)
                return sum;
            offsetTemp += ret;
            sumTemp += ret;
            ret = removeWs(offsetTemp);
            offsetTemp += ret;
            sumTemp += ret;
            ret = parseParam(offsetTemp);
            if(ret != -1)
            {
                offsetTemp += ret;
                sumTemp += ret;
                sum = sumTemp;
            } else
            {
                return sum;
            }
        } while(true);
    }

    private int parseParam(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseParam0(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        ret = parseParam1(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        ret = parseParam2(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        ret = parseParam3(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        ret = parseParam4(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        ret = parseParam5(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        int start = offset;
        ret = parseKnownType(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
        {
            mBuilder.propertyParamType(null);
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        }
        return sum;
    }

    private int parseParam0(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseString(offset, "TYPE", true);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "=", false);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parsePTypeVal(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        return sum;
    }

    private int parseParam1(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseString(offset, "VALUE", true);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "=", false);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parsePValueVal(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        return sum;
    }

    private int parseParam2(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseString(offset, "ENCODING", true);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "=", false);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parsePEncodingVal(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        return sum;
    }

    private int parseParam3(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseString(offset, "CHARSET", true);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "=", false);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parseCharsetVal(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        return sum;
    }

    private int parseParam4(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseString(offset, "LANGUAGE", true);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "=", false);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parseLangVal(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        return sum;
    }

    private int parseParam5(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseXWord(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "=", false);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parseWord(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyParamValue(mBuffer.substring(start, offset));
        return sum;
    }

    private int parseKnownType(int offset)
    {
        String word = getWord(offset);
        if(mKnownTypeSet.contains(word.toUpperCase()))
            return word.length();
        else
            return -1;
    }

    private int parsePTypeVal(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseKnownType(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        }
        ret = parseXWord(offset);
        if(ret != -1)
        {
            sum += ret;
            return sum;
        } else
        {
            sum += ret;
            return sum;
        }
    }

    private int parseName(int offset)
    {
        int ret = 0;
        ret = parseXWord(offset);
        if(ret != -1)
            return ret;
        String word = getWord(offset).toUpperCase();
        if(mName.contains(word))
            return word.length();
        else
            return -1;
    }

    private int parseGroups(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseWord(offset);
        if(ret == -1)
            return -1;
        offset += ret;
        sum += ret;
        do
        {
            ret = parseString(offset, ".", false);
            if(ret == -1)
                break;
            int ret1 = parseWord(offset);
            if(ret1 == -1)
                break;
            offset += ret + ret1;
            sum += ret + ret1;
        } while(true);
        return sum;
    }

    private String escapeTranslator(String str)
    {
        if(null == str)
        {
            return null;
        } else
        {
            String tmp = str.replace("\\\\", "\n\r\n");
            tmp = tmp.replace("\\;", ";");
            tmp = tmp.replace("\\:", ":");
            tmp = tmp.replace("\\,", ",");
            tmp = tmp.replace("\n\r\n", "\\");
            return tmp;
        }
    }

    private static final HashSet mKnownTypeSet = new HashSet(Arrays.asList(new String[] {
        "DOM", "INTL", "POSTAL", "PARCEL", "HOME", "WORK", "PREF", "VOICE", "FAX", "MSG", 
        "CELL", "PAGER", "BBS", "MODEM", "CAR", "ISDN", "VIDEO", "AOL", "APPLELINK", "ATTMAIL", 
        "CIS", "EWORLD", "INTERNET", "IBMMAIL", "MCIMAIL", "POWERSHARE", "PRODIGY", "TLX", "X400", "GIF", 
        "CGM", "WMF", "BMP", "MET", "PMB", "DIB", "PICT", "TIFF", "PDF", "PS", 
        "JPEG", "QTIME", "MPEG", "MPEG2", "AVI", "WAVE", "AIFF", "PCM", "X509", "PGP"
    }));
    private static final HashSet mName = new HashSet(Arrays.asList(new String[] {
        "LOGO", "PHOTO", "LABEL", "FN", "TITLE", "SOUND", "VERSION", "TEL", "EMAIL", "TZ", 
        "GEO", "NOTE", "URL", "BDAY", "ROLE", "REV", "UID", "KEY", "MAILER"
    }));

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -