导航菜单

页面标题

页面副标题

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

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

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


package org.jivesoftware.smackx.packet;

import java.util.Date;
import java.util.Objects;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smack.util.StringUtils;

public class StreamInitiation extends IQ {
    private Feature featureNegotiation;
    private File file;
    private String id;
    private String mimeType;

    public class Feature implements PacketExtension {
        private final DataForm data;

        public Feature(DataForm dataForm) {
            this.data = dataForm;
        }

        public DataForm getData() {
            return this.data;
        }

        public String getElementName() {
            return "feature";
        }

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

        public String toXML() {
            return "<feature xmlns=\"http://jabber.org/protocol/feature-neg\">" + this.data.toXML() + "</feature>";
        }
    }

    public static class File implements PacketExtension {
        private Date date;
        private String desc;
        private String hash;
        private boolean isRanged;
        private final String name;
        private final long size;

        public File(String str, long j) {
            Objects.requireNonNull(str, "name cannot be null");
            this.name = str;
            this.size = j;
        }

        public Date getDate() {
            return this.date;
        }

        public String getDesc() {
            return this.desc;
        }

        public String getElementName() {
            return "file";
        }

        public String getHash() {
            return this.hash;
        }

        public String getName() {
            return this.name;
        }

        public String getNamespace() {
            return "http://jabber.org/protocol/si/profile/file-transfer";
        }

        public long getSize() {
            return this.size;
        }

        public boolean isRanged() {
            return this.isRanged;
        }

        public void setDate(Date date) {
            this.date = date;
        }

        public void setDesc(String str) {
            this.desc = str;
        }

        public void setHash(String str) {
            this.hash = str;
        }

        public void setRanged(boolean z) {
            this.isRanged = z;
        }

        public String toXML() {
            StringBuilder sb = new StringBuilder();
            sb.append("<");
            sb.append(getElementName());
            sb.append(" xmlns=\"");
            sb.append(getNamespace());
            sb.append("\" ");
            if (getName() != null) {
                sb.append("name=\"");
                sb.append(StringUtils.escapeForXML(getName()));
                sb.append("\" ");
            }
            if (getSize() > 0) {
                sb.append("size=\"");
                sb.append(getSize());
                sb.append("\" ");
            }
            if (getDate() != null) {
                sb.append("date=\"");
                sb.append(StringUtils.formatXEP0082Date(this.date));
                sb.append("\" ");
            }
            if (getHash() != null) {
                sb.append("hash=\"");
                sb.append(getHash());
                sb.append("\" ");
            }
            String str = this.desc;
            if ((str == null || str.length() <= 0) && !this.isRanged) {
                sb.append("/>");
            } else {
                sb.append(">");
                if (getDesc() != null && this.desc.length() > 0) {
                    sb.append("<desc>");
                    sb.append(StringUtils.escapeForXML(getDesc()));
                    sb.append("</desc>");
                }
                if (isRanged()) {
                    sb.append("<range/>");
                }
                sb.append("</");
                sb.append(getElementName());
                sb.append(">");
            }
            return sb.toString();
        }
    }

    public String getChildElementXML() {
        StringBuilder sb = new StringBuilder();
        if (getType().equals(IQ.Type.SET)) {
            sb.append("<si xmlns=\"http://jabber.org/protocol/si\" ");
            if (getSessionID() != null) {
                sb.append("id=\"");
                sb.append(getSessionID());
                sb.append("\" ");
            }
            if (getMimeType() != null) {
                sb.append("mime-type=\"");
                sb.append(getMimeType());
                sb.append("\" ");
            }
            sb.append("profile=\"http://jabber.org/protocol/si/profile/file-transfer\">");
            String xml = this.file.toXML();
            if (xml != null) {
                sb.append(xml);
            }
        } else {
            if (!getType().equals(IQ.Type.RESULT)) {
                throw new IllegalArgumentException("IQ Type not understood");
            }
            sb.append("<si xmlns=\"http://jabber.org/protocol/si\">");
        }
        Feature feature = this.featureNegotiation;
        if (feature != null) {
            sb.append(feature.toXML());
        }
        sb.append("</si>");
        return sb.toString();
    }

    public DataForm getFeatureNegotiationForm() {
        return this.featureNegotiation.getData();
    }

    public File getFile() {
        return this.file;
    }

    public String getMimeType() {
        return this.mimeType;
    }

    public String getSessionID() {
        return this.id;
    }

    public void setFeatureNegotiationForm(DataForm dataForm) {
        this.featureNegotiation = new Feature(dataForm);
    }

    public void setFile(File file) {
        this.file = file;
    }

    public void setMimeType(String str) {
        this.mimeType = str;
    }

    public void setSesssionID(String str) {
        this.id = str;
    }
}