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

📄 vcalparser.java

📁 goolge phone 目前没有开放的android 平台的源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   VCalParser.java

package android.syncml.pim.vcalendar;

import android.syncml.pim.VBuilder;
import android.syncml.pim.VParser;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class VCalParser extends VParser
{

    public VCalParser()
    {
    }

    protected int parseVFile(int offset)
    {
        return parseVCalFile(offset);
    }

    private int parseVCalFile(int offset)
    {
        int ret = 0;
        int sum;
        for(sum = 0; -1 != (ret = parseWsls(offset)); sum += ret)
            offset += ret;

        ret = parseVCal(offset);
        if(-1 != ret)
        {
            offset += ret;
            sum += ret;
        } else
        {
            return -1;
        }
        while(-1 != (ret = parseWsls(offset))) 
        {
            offset += ret;
            sum += ret;
        }
        return sum;
    }

    private int parseVCal(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, "VCALENDAR", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.startRecord("VCALENDAR");
        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;

        ret = parseCalprops(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = parseCalentities(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, "VCALENDAR", 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 parseCalprops(int offset)
    {
        int ret = 0;
        int sum = 0;
        if(mBuilder != null)
            mBuilder.startProperty();
        ret = parseCalprop(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 = parseCalprop(offset);
            if(-1 == ret)
                break;
            offset += ret;
            sum += ret;
            if(mBuilder != null)
                mBuilder.endProperty();
        } while(true);
        return sum;
    }

    private int parseCalentities(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseCalentity(offset);
        if(-1 == ret)
            return -1;
        offset += ret;
        do
        {
            for(sum += ret; -1 != (ret = parseCrlf(offset)); sum += ret)
                offset += ret;

            ret = parseCalentity(offset);
            if(-1 != ret)
            {
                offset += ret;
                sum += ret;
            } else
            {
                return sum;
            }
        } while(true);
    }

    private int parseCalprop(int offset)
    {
        int ret = 0;
        ret = parseCalprop0(offset, "DAYLIGHT");
        if(-1 != ret)
            return ret;
        ret = parseCalprop0(offset, "GEO");
        if(-1 != ret)
            return ret;
        ret = parseCalprop0(offset, "PRODID");
        if(-1 != ret)
            return ret;
        ret = parseCalprop0(offset, "TZ");
        if(-1 != ret)
            return ret;
        ret = parseCalprop1(offset);
        if(-1 != ret)
            return ret;
        else
            return -1;
    }

    private int parseCalentity(int offset)
    {
        int ret = 0;
        ret = parseEvententity(offset);
        if(-1 != ret)
            return ret;
        ret = parseTodoentity(offset);
        if(-1 != ret)
            return ret;
        else
            return -1;
    }

    private int parseCalprop0(int offset, String propName)
    {
        int ret = 0;
        int sum = 0;
        int start = 0;
        ret = parseString(offset, propName, true);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyName(propName);
        ret = parseParams(offset);
        if(-1 != ret)
        {
            offset += ret;
            sum += ret;
        }
        ret = parseString(offset, ":", true);
        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(mBuffer.substring(start, offset));
            mBuilder.propertyValues(v);
        }
        ret = parseCrlf(offset);
        if(-1 == ret)
        {
            return -1;
        } else
        {
            sum += ret;
            return sum;
        }
    }

    private int parseCalprop1(int offset)
    {
        int ret = 0;
        int sum = 0;
        ret = parseString(offset, "VERSION", true);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.propertyName("VERSION");
        ret = parseParams(offset);
        if(-1 != ret)
        {
            offset += ret;
            sum += ret;
        }
        ret = parseString(offset, ":", true);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        ret = parseString(offset, "1.0", true);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
        {
            ArrayList v = new ArrayList();
            v.add("1.0");
            mBuilder.propertyValues(v);
        }
        ret = parseCrlf(offset);
        if(-1 == ret)
        {
            return -1;
        } else
        {
            sum += ret;
            return sum;
        }
    }

    private int parseEvententity(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, "VEVENT", false);
        if(-1 == ret)
            return -1;
        offset += ret;
        sum += ret;
        if(mBuilder != null)
            mBuilder.startRecord("VEVENT");
        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;

        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, "VEVENT", 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;

⌨️ 快捷键说明

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