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

📄 vtodo.java

📁 Java p2p程序设计2002年版
💻 JAVA
字号:
/* * ToDo.java * * Created on November 26, 2001, 11:38 PM */package com.sams.jxta.xcal;import org.jdom.*;import org.jdom.output.*;import org.jdom.input.*;import java.lang.reflect.*;import java.util.Date;import java.text.SimpleDateFormat;import javax.xml.parsers.*;import org.xml.sax.*;import org.w3c.dom.*;import org.xml.sax.SAXException;import java.io.*;import java.net.*;import java.util.*;import net.jxta.endpoint.Message;import net.jxta.endpoint.MessageElement;import net.jxta.peer.*;import org.apache.log4j.Category;import net.jxta.impl.id.UUID.UUIDFactory;/** * * @author  Administrator */public class VToDo {    private static final Category LOG =  Category.getInstance(VToDo.class.getName());    protected SimpleDateFormat format   = new SimpleDateFormat("yyyyMMdd'T'kkmmss'Z'");    public static final String iCalTag = "iCalendar";    public static final String vCalTag = "vCalendar";        public static final String vtodoTag = "vtodo";    public static final String dtstampTag = "dtstamp";    public static final String dtstartTag = "dtstart";    public static final String dueTag = "due";    public static final String summaryTag = "summary";    public static final String priorityTag = "priority";    public static final String completedTag = "completed";    public static final String statusTag = "status";    public static final String commentTag = "comment";    public static final String categoriesTag = "categories";       // Custom tags    public static final String idTag = "x-jxta-id";    public static final String groupIDTag = "x-jxta-group-id";    public static final String groupNameTag = "x-jxta-group-name";    public static final String groupDescTag = "x-jxta-group-desc";    public static final String peerNameTag = "x-jxta-peer-name";    public static final String peerIDTag = "x-jxta-peer-id";            public static final String statusTypes[] ={ "NEEDS-ACTION", "ACCEPTED","DECLINED", "TENTATIVE", "DELEGATED", "COMPLETED","IN-PROGRESS"};            protected boolean changed = true;    protected String valueOfXML = null;            protected String dtstamp=format.format( new Date(System.currentTimeMillis()));// Date    static final String supporedVersion="2.0";    String method ="PUBLISH";    protected String id=UUIDFactory.newUUID().toString();// Custom tag to specify ID of item    protected String dtstart=dtstamp;// Date    protected String completed = "";// Date    protected String due="";    protected String status="";    protected String summary="test To-Do";    protected String priority = "";    protected String comment = "";    protected String category[] = {""};    protected String groupName = "";    protected String groupID = "";    protected String groupDesc = "";    protected String peerID = "";    protected String peerName = "";    /** Creates new ToDo */    public VToDo() {    }    /** Creates new ToDo */    public VToDo(String message) {        processMessage(message);    }                public String toXML(){        if (changed){            // Note that many compilers convert this into a series of appends            // to a StringBuffer, thus making this effiecient when written this way.            valueOfXML =  "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n"            //+"<!DOCTYPE iCalendar PUBLIC \"-//IETF//DTD XCAL//iCalendar XML//EN\" \"http:////www.ietf.org//internet-drafts//draft-ietf-calsch-many-xcal-00.txt \" > \n"            +"<icalendar> \n"            +"<vcalendar method=\""+method+"\" version=\""+supporedVersion+"\" prodid=\"-//HandGen//NONSGML vGen v1.0//EN\"> \n"            +"<vtodo> \n"            +"  <"+dtstampTag+">"+dtstamp+"</"+dtstampTag+"> \n"            +"  <"+peerIDTag+">"+peerID+"</"+peerIDTag+">\n"            +"  <"+peerNameTag+">"+peerName+"</"+peerNameTag+">\n"            +"  <"+idTag+">"+id+"</"+idTag+">\n"            +"  <"+groupIDTag+">"+groupID+"</"+groupIDTag+">\n"            +"  <"+groupNameTag+">"+groupName+"</"+groupNameTag+">\n"            +"  <"+groupDescTag+">"+groupDesc+"</"+groupDescTag+">\n"            +"  <summary>"+summary+"</summary> \n"            +"  <comment>"+comment+"</comment> \n"            +"  <dtstart>"+dtstart+"</dtstart> \n"            +"  <due>"+due+"</due> \n"            +"  <priority>"+priority+"</priority> \n"            +"  <categories> \n"            +"    <item>"+category[0]+"</item> \n"            +"  </categories> \n"            +"</vtodo> \n"            +"</vcalendar> \n"            +"</icalendar> \n";        }        return valueOfXML;    }    public org.jdom.Document toJDOM(){        try{            ByteArrayInputStream in = new ByteArrayInputStream(toXML().getBytes());            SAXBuilder builder = new SAXBuilder();            org.jdom.Document doc = builder.build(in);            return doc;        }catch(JDOMException je){            je.printStackTrace();            return null;        }    }    public void processMessage(String msg) {        try{            id = "error";            dtstamp = "error";            ByteArrayInputStream in = new ByteArrayInputStream(msg.getBytes());            org.jdom.input.SAXBuilder builder = new org.jdom.input.SAXBuilder();                        org.jdom.Document doc = builder.build(in);                        org.jdom.Element element = doc.getRootElement();            if (element.getName().equals("icalendar")){                element = element.getChild("vcalendar").getChild("vtodo");            }else if (element.getName().equals("vcalendar")){                element = element.getChild("vtodo");            }            processMessage(element);                    }catch(org.jdom.JDOMException ioe){            LOG.error("Error parsing to do item",ioe);        }    }        public void processMessage(org.jdom.Element   element) {        org.jdom.Document doc = element.getDocument();        XMLOutputter outputter = new XMLOutputter("   ",true);        id  = getText(element.getChild(idTag));        dtstamp = getText(element.getChild(dtstampTag));        summary = getText(element.getChild(summaryTag));        comment = getText(element.getChild(commentTag));        due =  getText(element.getChild(dueTag));        completed = getText(element.getChild(completedTag));        dtstart =  getText(element.getChild(dtstartTag));        status =  getText(element.getChild(statusTag));        category[0] = getText(element.getChild(categoriesTag));        groupID =  getText(element.getChild(groupIDTag));        groupName =  getText(element.getChild(groupNameTag));        groupDesc =  getText(element.getChild(groupDescTag));        peerID =  getText(element.getChild(peerIDTag));        peerName =  getText(element.getChild(peerNameTag));            }// end of processMessage()    public String toString(){        return summary+" "+status+" due:"+due+" TimeStamp:"+dtstamp;    }    protected String getText(org.jdom.Element element) {        if (element == null){            return "";        }else{            return element.getText();        }    }        /** Getter for property dtstamp.     * @return Value of property dtstamp.     */    public String getDtstamp() {        return dtstamp;    }        /** Setter for property dtstamp.     * @param dtstamp New value of property dtstamp.     */    public void setDtstamp(String dtstamp) {        this.dtstamp = dtstamp;    }        /** Getter for property dtstart.     * @return Value of property dtstart.     */    public String getDtstart() {        return dtstart;    }        /** Setter for property dtstart.     * @param dtstart New value of property dtstart.     */    public void setDtstart(String dtstart) {        this.dtstart = dtstart;    }        /** Getter for property completed.     * @return Value of property completed.     */    public String getCompleted() {        return completed;    }        /** Setter for property completed.     * @param completed New value of property completed.     */    public void setCompleted(String completed) {        this.completed = completed;    }        /** Getter for property due.     * @return Value of property due.     */    public String getDue() {        return due;    }        /** Setter for property due.     * @param due New value of property due.     */    public void setDue(String due) {        this.due = due;    }        /** Getter for property status.     * @return Value of property status.     */    public String getStatus() {        return status;    }        /** Setter for property status.     * @param status New value of property status.     */    public void setStatus(String status) {        this.status = status;    }        /** Getter for property summary.     * @return Value of property summary.     */    public String getSummary() {        return summary;    }        /** Setter for property summary.     * @param summary New value of property summary.     */    public void setSummary(String summary) {        this.summary = summary;    }        /** Getter for property priority.     * @return Value of property priority.     */    public String getPriority() {        return priority;    }        /** Setter for property priority.     * @param priority New value of property priority.     */    public void setPriority(String priority) {        this.priority = priority;    }            /** Getter for property changed.     * @return Value of property changed.     */    public boolean isChanged() {        return changed;    }        /** Setter for property changed.     * @param changed New value of property changed.     */    public void setChanged(boolean changed) {        this.changed = changed;    }            /** Getter for property comment.     * @return Value of property comment.     */    public java.lang.String getComment() {        return comment;    }        /** Setter for property comment.     * @param comment New value of property comment.     */    public void setComment(java.lang.String comment) {        this.comment = comment;    }        /** Getter for property groupName.     * @return Value of property groupName.     */    public java.lang.String getGroupName() {        return groupName;    }        /** Setter for property groupName.     * @param groupName New value of property groupName.     */    public void setGroupName(java.lang.String groupName) {        this.groupName = groupName;    }        /** Getter for property groupID.     * @return Value of property groupID.     */    public java.lang.String getGroupID() {        return groupID;    }        /** Setter for property groupID.     * @param groupID New value of property groupID.     */    public void setGroupID(String groupID) {        this.groupID = groupID;    }        /** Getter for property groupDesc.     * @return Value of property groupDesc.     */    public java.lang.String getGroupDesc() {        return groupDesc;    }        /** Setter for property groupDesc.     * @param groupDesc New value of property groupDesc.     */    public void setGroupDesc(java.lang.String groupDesc) {        this.groupDesc = groupDesc;    }        /** Getter for property peerID.     * @return Value of property peerID.     */    public String getPeerID() {        return peerID;    }        /** Setter for property peerID.     * @param peerID New value of property peerID.     */    public void setPeerID(String peerID) {        this.peerID = peerID;    }        /** Getter for property peerName.     * @return Value of property peerName.     */    public String getPeerName() {        return peerName;    }        /** Setter for property peerName.     * @param peerName New value of property peerName.     */    public void setPeerName(String peerName) {        this.peerName = peerName;    }        /** Getter for property id.     * @return Value of property id.     */    public java.lang.String getID() {        return id;    }        /** Setter for property id.     * @param id New value of property id.     */    public void setID(java.lang.String id) {        this.id = id;    }    /*   <!ELEMENT x-foo-cust-code (#PCDATA)><!ATTLIST x-foo-cust-code value NOTATION (X-NAME) #IMPLIED>]> <iCalendar><vcalendar method="PUBLISH"            version="2.0"            prodid="-//HandGen//NONSGML vGen v1.0//EN"><vtodo><uid>19981104T130000@cal1.host.com </uid><dtstamp>19981104T125957Z</dtstamp><dtstart>19981105T133000Z</dtstart><due>19981106T133000Z</due><summary>Draft a test plan</summary><x-foo-cust-code>1998-ABC Corp-1234</x-foo-cust-code><priority>1</priority></vtodo></vcalendar></iCalendar>  */}

⌨️ 快捷键说明

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