导航菜单

页面标题

页面副标题

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

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

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


package org.jivesoftware.smackx.workgroup.packet;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smack.provider.PacketExtensionProvider;
import org.jivesoftware.smackx.workgroup.QueueUser;
import org.xmlpull.v1.XmlPullParser;

public class QueueDetails implements PacketExtension {
    private static final String DATE_FORMAT = "yyyyMMdd'T'HH:mm:ss";
    public static final String ELEMENT_NAME = "notify-queue-details";
    public static final String NAMESPACE = "http://jabber.org/protocol/workgroup";
    private SimpleDateFormat dateFormat;
    private Set<QueueUser> users;

    public static class Provider implements PacketExtensionProvider {
        public PacketExtension parseExtension(XmlPullParser xmlPullParser) throws Exception {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(QueueDetails.DATE_FORMAT);
            QueueDetails queueDetails = new QueueDetails(null);
            int eventType = xmlPullParser.getEventType();
            while (eventType != 3 && QueueDetails.ELEMENT_NAME.equals(xmlPullParser.getName())) {
                eventType = xmlPullParser.next();
                while (eventType == 2 && UserID.ELEMENT_NAME.equals(xmlPullParser.getName())) {
                    String attributeValue = xmlPullParser.getAttributeValue("", "jid");
                    int next = xmlPullParser.next();
                    int i = -1;
                    Date date = null;
                    int i2 = -1;
                    while (true) {
                        if (next != 3 || !UserID.ELEMENT_NAME.equals(xmlPullParser.getName())) {
                            if ("position".equals(xmlPullParser.getName())) {
                                i = Integer.parseInt(xmlPullParser.nextText());
                            } else if ("time".equals(xmlPullParser.getName())) {
                                i2 = Integer.parseInt(xmlPullParser.nextText());
                            } else if ("join-time".equals(xmlPullParser.getName())) {
                                date = simpleDateFormat.parse(xmlPullParser.nextText());
                            } else if (xmlPullParser.getName().equals("waitTime")) {
                                System.out.println(simpleDateFormat.parse(xmlPullParser.nextText()));
                            }
                            next = xmlPullParser.next();
                        }
                    }
                    queueDetails.addUser(new QueueUser(attributeValue, i, i2, date));
                    eventType = xmlPullParser.next();
                }
            }
            return queueDetails;
        }
    }

    private QueueDetails() {
        this.dateFormat = new SimpleDateFormat(DATE_FORMAT);
        this.users = new HashSet();
    }

    public void addUser(QueueUser queueUser) {
        synchronized (this.users) {
            this.users.add(queueUser);
        }
    }

    public String getElementName() {
        return ELEMENT_NAME;
    }

    public String getNamespace() {
        return "http://jabber.org/protocol/workgroup";
    }

    public int getUserCount() {
        return this.users.size();
    }

    public Set<QueueUser> getUsers() {
        Set<QueueUser> set;
        synchronized (this.users) {
            set = this.users;
        }
        return set;
    }

    public String toXML() {
        StringBuilder sb = new StringBuilder();
        sb.append("<");
        sb.append(ELEMENT_NAME);
        sb.append(" xmlns=\"");
        sb.append("http://jabber.org/protocol/workgroup");
        sb.append("\">");
        synchronized (this.users) {
            for (QueueUser queueUser : this.users) {
                int queuePosition = queueUser.getQueuePosition();
                int estimatedRemainingTime = queueUser.getEstimatedRemainingTime();
                Date queueJoinTimestamp = queueUser.getQueueJoinTimestamp();
                sb.append("<user jid=\"");
                sb.append(queueUser.getUserID());
                sb.append("\">");
                if (queuePosition != -1) {
                    sb.append("<position>");
                    sb.append(queuePosition);
                    sb.append("</position>");
                }
                if (estimatedRemainingTime != -1) {
                    sb.append("<time>");
                    sb.append(estimatedRemainingTime);
                    sb.append("</time>");
                }
                if (queueJoinTimestamp != null) {
                    sb.append("<join-time>");
                    sb.append(this.dateFormat.format(queueJoinTimestamp));
                    sb.append("</join-time>");
                }
                sb.append("</user>");
            }
        }
        sb.append("</");
        sb.append(ELEMENT_NAME);
        sb.append(">");
        return sb.toString();
    }

    QueueDetails(QueueDetails queueDetails) {
        this();
    }
}