导航菜单

页面标题

页面副标题

95爱播免登录版 v3.1.9 - OccupantsInfo.java 源代码

正在查看: 95爱播免登录版 v3.1.9 应用的 OccupantsInfo.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package org.jivesoftware.smackx.workgroup.packet;

import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.TimeZone;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.provider.IQProvider;
import org.xmlpull.v1.XmlPullParser;

public class OccupantsInfo extends IQ {
    public static final String ELEMENT_NAME = "occupants-info";
    public static final String NAMESPACE = "http://jivesoftware.com/protocol/workgroup";
    private static final SimpleDateFormat UTC_FORMAT;
    private final Set<OccupantInfo> occupants = new HashSet();
    private String roomID;

    public static class OccupantInfo {
        private String jid;
        private Date joined;
        private String nickname;

        public OccupantInfo(String str, String str2, Date date) {
            this.jid = str;
            this.nickname = str2;
            this.joined = date;
        }

        public String getJID() {
            return this.jid;
        }

        public Date getJoined() {
            return this.joined;
        }

        public String getNickname() {
            return this.nickname;
        }
    }

    public static class Provider implements IQProvider {
        private OccupantInfo parseOccupantInfo(XmlPullParser xmlPullParser) throws Exception {
            String str = null;
            String str2 = null;
            Date date = null;
            boolean z = false;
            while (!z) {
                int next = xmlPullParser.next();
                if (next == 2 && "jid".equals(xmlPullParser.getName())) {
                    str = xmlPullParser.nextText();
                } else if (next == 2 && "nickname".equals(xmlPullParser.getName())) {
                    str2 = xmlPullParser.nextText();
                } else if (next == 2 && "joined".equals(xmlPullParser.getName())) {
                    date = OccupantsInfo.UTC_FORMAT.parse(xmlPullParser.nextText());
                } else if (next == 3 && "occupant".equals(xmlPullParser.getName())) {
                    z = true;
                }
            }
            return new OccupantInfo(str, str2, date);
        }

        public IQ parseIQ(XmlPullParser xmlPullParser) throws Exception {
            if (xmlPullParser.getEventType() != 2) {
                throw new IllegalStateException("Parser not in proper position, or bad XML.");
            }
            OccupantsInfo occupantsInfo = new OccupantsInfo(xmlPullParser.getAttributeValue("", "roomID"));
            boolean z = false;
            while (!z) {
                int next = xmlPullParser.next();
                if (next == 2 && "occupant".equals(xmlPullParser.getName())) {
                    occupantsInfo.occupants.add(parseOccupantInfo(xmlPullParser));
                } else if (next == 3 && OccupantsInfo.ELEMENT_NAME.equals(xmlPullParser.getName())) {
                    z = true;
                }
            }
            return occupantsInfo;
        }
    }

    static {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss");
        UTC_FORMAT = simpleDateFormat;
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT+0"));
    }

    public OccupantsInfo(String str) {
        this.roomID = str;
    }

    public String getChildElementXML() {
        StringBuilder sb = new StringBuilder();
        sb.append("<");
        sb.append(ELEMENT_NAME);
        sb.append(" xmlns=\"");
        sb.append("http://jivesoftware.com/protocol/workgroup");
        sb.append("\" roomID=\"");
        sb.append(this.roomID);
        sb.append("\">");
        synchronized (this.occupants) {
            for (OccupantInfo occupantInfo : this.occupants) {
                sb.append("<occupant>");
                sb.append("<jid>");
                sb.append(occupantInfo.getJID());
                sb.append("</jid>");
                sb.append("<name>");
                sb.append(occupantInfo.getNickname());
                sb.append("</name>");
                sb.append("<joined>");
                sb.append(UTC_FORMAT.format(occupantInfo.getJoined()));
                sb.append("</joined>");
                sb.append("</occupant>");
            }
        }
        sb.append("</");
        sb.append(ELEMENT_NAME);
        sb.append("> ");
        return sb.toString();
    }

    public Set<OccupantInfo> getOccupants() {
        return Collections.unmodifiableSet(this.occupants);
    }

    public int getOccupantsCount() {
        return this.occupants.size();
    }

    public String getRoomID() {
        return this.roomID;
    }
}