package de.thedevstack.conversationsplus.xmpp.filetransfer.http.upload; import de.thedevstack.conversationsplus.xml.Element; import de.thedevstack.conversationsplus.xmpp.filetransfer.http.FileTransferHttp; import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket; /** * */ public class FileTransferHttpUploadSlotRequestPacket extends IqPacket { public static final String ELEMENT_NAME = "request"; public static final String FILENAME_ELEMENT_NAME = "filename"; public static final String FILESIZE_ELEMENT_NAME = "size"; public static final String MIME_ELEMENT_NAME = "content-type"; private static final String RECIPIENT_ATTRIBUTE_NAME = "recipient"; private Element requestElement; private String filename; private long filesize; private String mime; public FileTransferHttpUploadSlotRequestPacket(String recipient, String filename, long filesize, String mime) { super(TYPE.GET); this.requestElement = super.addChild(FileTransferHttpUploadSlotRequestPacket.ELEMENT_NAME, FileTransferHttp.NAMESPACE); this.requestElement.setAttribute(RECIPIENT_ATTRIBUTE_NAME, recipient); this.setFilename(filename); this.setFilesize(filesize); this.setMime(mime); } public void setFilename(String filename) { if (null == filename || filename.isEmpty()) { throw new IllegalArgumentException("filename must not be null or empty."); } this.filename = filename; this.requestElement.addChild(FILENAME_ELEMENT_NAME).setContent(filename); } public void setFilesize(long filesize) { if (0 >= filesize) { throw new IllegalArgumentException("filesize must not be null or empty."); } this.filesize = filesize; this.requestElement.addChild(FILESIZE_ELEMENT_NAME).setContent(String.valueOf(filesize)); } public void setMime(String mime) { if (null == mime || mime.isEmpty()) { mime = FileTransferHttp.DEFAULT_MIME_TYPE; } this.mime = mime; this.requestElement.addChild(MIME_ELEMENT_NAME).setContent(mime); } }