Class StreamInitiation
- java.lang.Object
-
- org.jivesoftware.smack.packet.Stanza
-
- org.jivesoftware.smack.packet.IQ
-
- org.jivesoftware.smackx.si.packet.StreamInitiation
-
- All Implemented Interfaces:
Element
,FullyQualifiedElement
,IqView
,NamedElement
,StanzaView
,TopLevelStreamElement
,XmlLangElement
public class StreamInitiation extends IQ
The process by which two entities initiate a stream.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StreamInitiation.Feature
The feature negotiation portion of the StreamInitiation packet.static class
StreamInitiation.File
size: The size, in bytes, of the data to be sent. name: The name of the file that the Sender wishes to send. date: The last modification time of the file.-
Nested classes/interfaces inherited from class org.jivesoftware.smack.packet.IQ
IQ.IQChildElementXmlStringBuilder, IQ.ResponseType, IQ.Type
-
-
Field Summary
Fields Modifier and Type Field Description static String
ELEMENT
static String
NAMESPACE
-
Fields inherited from class org.jivesoftware.smack.packet.IQ
IQ_ELEMENT, QUERY_ELEMENT
-
Fields inherited from class org.jivesoftware.smack.packet.Stanza
DEFAULT_LANGUAGE, ITEM, language, TEXT
-
-
Constructor Summary
Constructors Constructor Description StreamInitiation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DataForm
getFeatureNegotiationForm()
Returns the data form which contains the valid methods of stream negotiation and transfer.StreamInitiation.File
getFile()
Returns the file containing the information about the request.protected IQ.IQChildElementXmlStringBuilder
getIQChildElementBuilder(IQ.IQChildElementXmlStringBuilder buf)
This method must be overwritten by IQ subclasses to create their child content.String
getMimeType()
Identifies the type of file that is desired to be transferred.String
getSessionID()
Uniquely identifies a stream initiation to the recipient.void
setFeatureNegotiationForm(DataForm form)
Sets the data form which contains the valid methods of stream negotiation and transfer.void
setFile(StreamInitiation.File file)
Sets the file which contains the information pertaining to the file to be transferred.void
setMimeType(String mimeType)
The "mime-type" attribute identifies the MIME-type for the data across the stream.void
setSessionID(String id)
The "id" attribute is an opaque identifier.-
Methods inherited from class org.jivesoftware.smack.packet.IQ
createErrorResponse, createErrorResponse, createErrorResponse, createResultIQ, getChildElementName, getChildElementNamespace, getChildElementQName, getChildElementXML, getElementName, getType, isRequestIQ, isResponseIQ, setType, toString, toXML
-
Methods inherited from class org.jivesoftware.smack.packet.Stanza
addCommonAttributes, addExtension, addExtensions, appendErrorIfExists, getDefaultLanguage, getError, getExtension, getExtension, getExtension, getExtensionElement, getExtensions, getExtensions, getExtensions, getExtensions, getExtensionsMap, getFrom, getLanguage, getNamespace, getStanzaId, getTo, hasExtension, hasExtension, hasStanzaIdSet, logCommonAttributes, overrideExtension, removeExtension, removeExtension, setError, setError, setFrom, setLanguage, setNewStanzaId, setStanzaId, setStanzaId, setTo, throwIfNoStanzaId
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jivesoftware.smack.packet.FullyQualifiedElement
getQName
-
Methods inherited from interface org.jivesoftware.smack.packet.StanzaView
getError, getExtension, getExtension, getExtensions, getExtensions, getExtensions, getFrom, getStanzaId, getTo, hasExtension, hasExtension, hasExtension
-
-
-
-
Field Detail
-
ELEMENT
public static final String ELEMENT
- See Also:
- Constant Field Values
-
NAMESPACE
public static final String NAMESPACE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
StreamInitiation
public StreamInitiation()
-
-
Method Detail
-
setSessionID
public void setSessionID(String id)
The "id" attribute is an opaque identifier. This attribute MUST be present on type='set', and MUST be a valid string. This SHOULD NOT be sent back on type='result', since the <iq/> "id" attribute provides the only context needed. This value is generated by the Sender, and the same value MUST be used throughout a session when talking to the Receiver.- Parameters:
id
- The "id" attribute.
-
getSessionID
public String getSessionID()
Uniquely identifies a stream initiation to the recipient.- Returns:
- The "id" attribute.
- See Also:
setSessionID(String)
-
setMimeType
public void setMimeType(String mimeType)
The "mime-type" attribute identifies the MIME-type for the data across the stream. This attribute MUST be a valid MIME-type as registered with the Internet Assigned Numbers Authority (IANA) [3] (specifically, as listed at <http://www.iana.org/assignments/media-types>). During negotiation, this attribute SHOULD be present, and is otherwise not required. If not included during negotiation, its value is assumed to be "binary/octet-stream".- Parameters:
mimeType
- The valid mime-type.
-
getMimeType
public String getMimeType()
Identifies the type of file that is desired to be transferred.- Returns:
- The mime-type.
- See Also:
setMimeType(String)
-
setFile
public void setFile(StreamInitiation.File file)
Sets the file which contains the information pertaining to the file to be transferred.- Parameters:
file
- The file identified by the stream initiator to be sent.
-
getFile
public StreamInitiation.File getFile()
Returns the file containing the information about the request.- Returns:
- Returns the file containing the information about the request.
-
setFeatureNegotiationForm
public void setFeatureNegotiationForm(DataForm form)
Sets the data form which contains the valid methods of stream negotiation and transfer.- Parameters:
form
- The dataform containing the methods.
-
getFeatureNegotiationForm
public DataForm getFeatureNegotiationForm()
Returns the data form which contains the valid methods of stream negotiation and transfer.- Returns:
- Returns the data form which contains the valid methods of stream negotiation and transfer.
-
getIQChildElementBuilder
protected IQ.IQChildElementXmlStringBuilder getIQChildElementBuilder(IQ.IQChildElementXmlStringBuilder buf)
Description copied from class:IQ
This method must be overwritten by IQ subclasses to create their child content. It is important you don't use the builder to add the final end tag. This will be done automatically byIQ.IQChildElementXmlStringBuilder
after eventual existingExtensionElement
s have been added.For example to create an IQ with a extra attribute and an additional child element
<iq to='foo@example.org' id='123'> <bar xmlns='example:bar' extraAttribute='blaz'> <extraElement>elementText</extraElement> </bar> </iq>
getIQChildElementBuilder
looks like// The builder 'xml' will already have the child element and the 'xmlns' attribute added // So the current builder state is "<bar xmlns='example:bar'" xml.attribute("extraAttribute", "blaz"); xml.rightAngleBracket(); xml.element("extraElement", "elementText"); // Do not close the 'bar' attribute by calling xml.closeElement('bar')
xml.attribute("myAttribute", "myAttributeValue"); xml.setEmptyElement();
If your IQ does not contain any attributes or child elements (besidesExtensionElement
s), consider sub-classingSimpleIQ
instead.- Specified by:
getIQChildElementBuilder
in classIQ
- Parameters:
buf
- a pre-created builder which already has the child element and the 'xmlns' attribute set.- Returns:
- the build to create the IQ child content.
-
-