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

📄 vcalparser.java

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

    private int parseTodoentity(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseString(offset, "BEGIN", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, ":", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "VTODO", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.startRecord("VTODO");
        ret = parseCrlf(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        for(sum += ret; -1 != (ret = parseCrlf(offset)); sum += ret)
            offset += ret;

        ret = parseEntprops(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        for(sum += ret; -1 != (ret = parseCrlf(offset)); sum += ret)
            offset += ret;

        ret = parseString(offset, "END", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, ":", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseString(offset, "VTODO", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.endRecord();
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseCrlf(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        for(sum += ret; -1 != (ret = parseCrlf(offset)); sum += ret)
            offset += ret;

        return sum;
    }

    private int parseEntprops(int offset)
    {
        int ret = 0;
        int sum = 0;
        if(mBuilder != null)
            mBuilder.startProperty();
        ret = parseEntprop(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.endProperty();
        do
        {
            while(-1 != (ret = parseCrlf(offset))) 
            {
                offset += ret;
                sum += ret;
            }
            if(mBuilder != null)
                mBuilder.startProperty();
            ret = parseEntprop(offset);
            if(-1 == ret)
                break;
            offset += ret;
            sum += ret;
            if(mBuilder != null)
                mBuilder.endProperty();
        } while(true);
        return sum;
    }

    private int parseEntprop(int offset)
    {
        int ret = 0;
        ret = parseEntprop0(offset);
        if(-1 != ret)
            return ret;
        ret = parseEntprop1(offset);
        if(-1 != ret)
            return ret;
        else
            return -1;
    }

    private int parseParams(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseString(offset, ";", true);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        ret = parseParamlist(offset);
        if(-1 == ret)
        {
            return -1;
        } else
        {
            sum += ret;
            return sum;
        }
    }

    private int parseParamlist(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseParam(offset);
        if(-1 == ret)
            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(-1 == ret)
                return sum;
            offsetTemp += ret;
            sumTemp += ret;
            ret = removeWs(offsetTemp);
            offsetTemp += ret;
            sumTemp += ret;
            ret = parseParam(offsetTemp);
            if(-1 != ret)
            {
                offsetTemp += ret;
                sumTemp += ret;
                sum = sumTemp;
            } else
            {
                return sum;
            }
        } while(true);
    }

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

    private int parseEntprop0(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = 0;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        String propName = getWord(offset).toUpperCase();
        if(!mEvtPropNameGroup1.contains(propName) && -1 == parseXWord(offset))
            return -1;
        ret = propName.length();
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyName(propName);
        ret = parseParams(offset);
        if(-1 != ret)
        {
            offset += ret;
            sum += ret;
        }
        ret = parseString(offset, ":", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        start = offset;
        ret = parseValue(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
        {
            ArrayList v = new ArrayList();
            v.add(exportEntpropValue(propName, mBuffer.substring(start, offset)));
            mBuilder.propertyValues(v);
            if(-1 == valueFilter(propName, v))
                return -1;
        }
        ret = parseCrlf(offset);
        if(-1 == ret)
        {
            return -1;
        } else
        {
            sum += ret;
            return sum;
        }
    }

    private int parseEntprop1(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        String propName = getWord(offset).toUpperCase();
        if(!mEvtPropNameGroup2.contains(propName))
            return -1;
        ret = propName.length();
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyName(propName);
        ret = parseParams(offset);
        if(-1 != ret)
        {
            offset += ret;
            sum += ret;
        }
        ret = parseString(offset, ":", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        int start = offset;
        ret = parseValue(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
        {
            int end = 0;
            ArrayList v = new ArrayList();
            Pattern p = Pattern.compile("([^;\\\\]*(\\\\[\\\\;:,])*[^;\\\\]*)(;?)");
            Matcher m = p.matcher(mBuffer.substring(start, offset));
            do
            {
                if(!m.find())
                    break;
                String s = exportEntpropValue(propName, m.group(1));
                v.add(s);
                end = m.end();
                if(offset != start + end)
                    continue;
                String endValue = m.group(3);
                if(";".equals(endValue))
                    v.add("");
                break;
            } while(true);
            mBuilder.propertyValues(v);
            if(-1 == valueFilter(propName, v))
                return -1;
        }
        ret = parseCrlf(offset);
        if(-1 == ret)
        {
            return -1;
        } else
        {
            sum += ret;
            return sum;
        }
    }

    private int parseParam0(int offset)
    {
        int ret = 0;
        int sum = 0;
        int start = offset;
        ret = parseString(offset, "TYPE", true);
        if(-1 == ret)
            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(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = removeWs(offset);
        offset += ret;
        sum += ret;
        start = offset;
        ret = parsePtypeval(offset);
        if(-1 == ret)
            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;
        boolean flag = false;
        ret = parseString(offset, "VALUE", true);
        if(-1 != ret)
        {
            offset += ret;
            sum += ret;
            flag = true;
        }
        if(flag && mBuilder != null)
            mBuilder.propertyParamType(mBuffer.substring(start, offset));
        ret = removeWs(offset);
        offset += ret;
        sum += ret;

⌨️ 快捷键说明

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