features.java

来自「开源项目openfire的完整源程序」· Java 代码 · 共 85 行

JAVA
85
字号
/** * $Revision: $ * $Date: $ * * Copyright (C) 2006 Jive Software. All rights reserved. * * This software is published under the terms of the GNU Lesser Public License (LGPL), * a copy of which is included in this distribution. */package org.jivesoftware.sparkimpl.plugin.manager;import org.jivesoftware.smack.packet.PacketExtension;import org.jivesoftware.smack.provider.PacketExtensionProvider;import org.xmlpull.v1.XmlPullParser;import java.util.ArrayList;import java.util.List;public class Features implements PacketExtension {    private List availableFeatures = new ArrayList();    public List getAvailableFeatures() {        return availableFeatures;    }    public void addFeature(String feature) {        availableFeatures.add(feature);    }    /**     * Element name of the packet extension.     */    public static final String ELEMENT_NAME = "event";    /**     * Namespace of the packet extension.     */    public static final String NAMESPACE = "http://jabber.org/protocol/disco#info";    public String getElementName() {        return ELEMENT_NAME;    }    public String getNamespace() {        return NAMESPACE;    }    public String toXML() {        StringBuffer buf = new StringBuffer();        buf.append("<event xmlns=\"" + NAMESPACE + "\"").append("</event>");        return buf.toString();    }    public static class Provider implements PacketExtensionProvider {        public PacketExtension parseExtension(XmlPullParser parser) throws Exception {            Features features = new Features();            boolean done = false;            while (!done) {                int eventType = parser.next();                if (eventType == XmlPullParser.START_TAG && "event".equals(parser.getName())) {                    parser.nextText();                }                if (eventType == XmlPullParser.START_TAG && "feature".equals(parser.getName())) {                    String feature = parser.getAttributeValue("", "var");                    features.addFeature(feature);                }                else if (eventType == XmlPullParser.END_TAG) {                    if ("event".equals(parser.getName())) {                        done = true;                    }                }            }            return features;        }    }}

⌨️ 快捷键说明

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