pubsubsubscribe.java

来自「一款即时通讯软件」· Java 代码 · 共 100 行

JAVA
100
字号
package edu.ou.kmi.buddyspace.plugins.pubsub.xml;

/*
 * PubsubSubscribe.java
 *
 * Project: BuddySpace
 * (C) Copyright Knowledge Media Institute 2003
 *
 *
 * Created on 9 October 2003, 17:53
 */

import java.util.*;
import org.jabber.jabberbeans.util.*;
import org.jabber.jabberbeans.*;
import org.jabber.jabberbeans.Extension.*;

/**
 * <code>PubsubSubscribe</code> contains &lt;subscribe&gt or &lt;unsubscribe&gt tag
 * from pubsub.
 *
 * @author  Jiri Komzak, Knowledge Media Institute, Open University, United Kingdom
 */
public class PubsubSubscribe
    extends XMLData
{
    /** Node name */
    private String node;
    /** JID */
    private JID jid;
    /** Vector of items */
    private Vector items;
    /** Is this subscribe or unsubscribe */
    private boolean isUnsubscribe;
    
    /**
     * Creates a new <code>PubsubSubscribe</code> instance, based on the builder
     * state.
     *
     * @param builder an <code>PubsubSubscribeBuilder</code> value
     * @exception InstantiationException if malformed or insufficient data is
     * in the builder.
     */
    public PubsubSubscribe(PubsubSubscribeBuilder builder)
        throws InstantiationException
    {
        isUnsubscribe = builder.isUnsubscribe();
        node = builder.getNode();
        items = (Vector) builder.getItems().clone();
        jid = builder.getJID();
    }
    
    
    public String getNode() {
        return node;
    }
    
    public JID getJID() {
        return jid;
    }
    
    public boolean isUnsubscribe() {
        return isUnsubscribe;
    }
    
    public Enumeration items() {
        return (items != null)? items.elements() : null;
    }
    
    
    /**
     * <code>appendItem</code> appends the XML representation of the
     * current packet data to the specified <code>StringBuffer</code>.
     *
     * @param retval The <code>StringBuffer</code> to append to
     */
    public void appendItem(StringBuffer retval)
    {
	retval.append(isUnsubscribe? "<unsubscribe" : "<subscribe");
        
        if (node != null)
            retval.append(" node='" + node + "'");
        if (jid != null)
            retval.append(" jid='" + jid.toString() + "'");
        
        if (items != null && items.size() != 0) {
            retval.append(">");
            Enumeration chEnum = items.elements();
            while (chEnum.hasMoreElements()) {
                Object o = chEnum.nextElement();
                if (o instanceof XMLData)
                    ((XMLData)o).appendItem(retval);
            }
            retval.append(isUnsubscribe? "</unsubscribe>" : "</subscribe>");
        }
        else
            retval.append("/>");
    }
}

⌨️ 快捷键说明

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