pagedavitem.java

来自「JSP 的一个wiki 系统」· Java 代码 · 共 110 行

JAVA
110
字号
/* * (C) Janne Jalkanen 2005 *  */package com.ecyrd.jspwiki.dav.items;import java.io.ByteArrayInputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.Collection;import org.apache.commons.lang.time.DateFormatUtils;import org.jdom.Element;import org.jdom.Namespace;import com.ecyrd.jspwiki.WikiContext;import com.ecyrd.jspwiki.WikiEngine;import com.ecyrd.jspwiki.WikiPage;import com.ecyrd.jspwiki.dav.DavPath;import com.ecyrd.jspwiki.dav.DavProvider;import com.ecyrd.jspwiki.dav.WikiDavProvider;/** *  @author jalkanen * *  @since  */public class PageDavItem extends DavItem{    protected WikiPage  m_page;    protected Namespace m_dcns = Namespace.getNamespace( "dc", "http://purl.org/dc/elements/1.1/" );    protected Namespace m_davns = Namespace.getNamespace( "DAV:" );        /**     *      */    public PageDavItem( DavProvider provider, WikiPage page )    {        super( provider, new DavPath(page.getName()) );        m_page = page;    }    protected Collection getCommonProperties()    {        ArrayList set = new ArrayList();                set.add( new Element("resourcetype",m_davns) );        set.add( new Element("creator",m_dcns).setText(m_page.getAuthor()) );        set.add( new Element("getlastmodified",m_davns).setText(DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.format(m_page.getLastModified())));        set.add( new Element("displayname",m_davns).setText(m_page.getName()) );                return set;            }        /* (non-Javadoc)     * @see com.ecyrd.jspwiki.dav.DavItem#getPropertySet(int)     */    public Collection getPropertySet()    {        Collection set = getCommonProperties();                set.add( new Element("getcontentlength",m_davns).setText( Long.toString(getLength())) );        set.add( new Element("getcontenttype",m_davns).setText("text/plain; charset=\"UTF-8\""));        return set;    }    public String getHref()    {        return m_provider.getURL( "dav/raw/"+m_page.getName()+".txt" );    }    /* (non-Javadoc)     * @see com.ecyrd.jspwiki.dav.items.DavItem#getContentType()     */    public String getContentType()    {        // TODO Auto-generated method stub        return "text/plain; charset=UTF-8";    }    /* (non-Javadoc)     * @see com.ecyrd.jspwiki.dav.items.DavItem#getInputStream()     */    public InputStream getInputStream()    {        String text = ((WikiDavProvider)m_provider).getEngine().getPureText( m_page );                try        {            ByteArrayInputStream in = new ByteArrayInputStream( text.getBytes("UTF-8") );                        return in;        }        catch( UnsupportedEncodingException e ) {}                return null;    }    public long getLength()    {        // FIXME: Use getBytes()        String text = ((WikiDavProvider)m_provider).getEngine().getPureText( m_page );        return (long)text.length();    }}

⌨️ 快捷键说明

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