Package io.vertx.ext.stomp
Class Frame
- java.lang.Object
-
- io.vertx.ext.stomp.Frame
-
public class Frame extends Object
Represents a STOMP frame. STOMP frames are structured as follows. It starts by acommand
, followed by a set of headers. Then the frame may have a body and is finished by a0
byte. This class represents this structure and provide access to the different parts. This class is NOT thread-safe.- Author:
- Clement Escoffier
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Frame.Heartbeat
Represents the heartbeat configuration.
-
Field Summary
Fields Modifier and Type Field Description static String
ACCEPT_VERSION
static String
ACK
static String
CONTENT_LENGTH
static String
CONTENT_TYPE
static String
DESTINATION
static String
HEARTBEAT
static String
HOST
static String
ID
static String
LOGIN
static String
MESSAGE
static String
MESSAGE_ID
static String
PASSCODE
static String
RECEIPT
static String
RECEIPT_ID
static String
SERVER
static String
SESSION
static String
STOMP_FRAME_COMMAND
Header used when a frame using an unknown command is received.static String
SUBSCRIPTION
static String
TRANSACTION
static String
VERSION
-
Constructor Summary
Constructors Constructor Description Frame()
Creates an un-configured frame.Frame(JsonObject json)
Creates a new instance ofFrame
from its JSON representation.Frame(Command command, Map<String,String> headers, Buffer body)
Creates a new instance ofFrame
.Frame(Frame other)
Creates a new instance ofFrame
by copying the values from theother
frame.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Frame
addHeader(String key, String value)
Adds a header to the frame.String
encoding()
Read the frame encoding.String
getAck()
Gets the value of theack
header.Buffer
getBody()
byte[]
getBodyAsByteArray()
String
getBodyAsString()
Gets the body of the frames as a String encoded in the frame encoding.String
getBodyAsString(String encoding)
Gets the body of the frames as a String encoded in the given encoding.Command
getCommand()
String
getDestination()
String
getHeader(String name)
Gets the value of the header with the given name.Map<String,String>
getHeaders()
Gets the frame headers.String
getId()
String
getReceipt()
String
getTransaction()
boolean
hasEmptyBody()
Frame
setBody(Buffer body)
Sets the body of the frame.Frame
setCommand(Command command)
Sets the frame command.Frame
setDestination(String destination)
Frame
setHeaders(Map<String,String> headers)
Sets the headers of the frames.Frame
setId(String id)
Frame
setTransaction(String id)
Buffer
toBuffer()
This method does not enforce the trailing line option.Buffer
toBuffer(boolean trailingLine)
Creates a buffer for the current frame.JsonObject
toJson()
String
toString()
void
validate()
Checks the validity of the frame.
-
-
-
Field Detail
-
CONTENT_LENGTH
public static final String CONTENT_LENGTH
- See Also:
- Constant Field Values
-
CONTENT_TYPE
public static final String CONTENT_TYPE
- See Also:
- Constant Field Values
-
HOST
public static final String HOST
- See Also:
- Constant Field Values
-
VERSION
public static final String VERSION
- See Also:
- Constant Field Values
-
ACCEPT_VERSION
public static final String ACCEPT_VERSION
- See Also:
- Constant Field Values
-
SESSION
public static final String SESSION
- See Also:
- Constant Field Values
-
SERVER
public static final String SERVER
- See Also:
- Constant Field Values
-
LOGIN
public static final String LOGIN
- See Also:
- Constant Field Values
-
PASSCODE
public static final String PASSCODE
- See Also:
- Constant Field Values
-
HEARTBEAT
public static final String HEARTBEAT
- See Also:
- Constant Field Values
-
DESTINATION
public static final String DESTINATION
- See Also:
- Constant Field Values
-
RECEIPT
public static final String RECEIPT
- See Also:
- Constant Field Values
-
RECEIPT_ID
public static final String RECEIPT_ID
- See Also:
- Constant Field Values
-
ACK
public static final String ACK
- See Also:
- Constant Field Values
-
ID
public static final String ID
- See Also:
- Constant Field Values
-
SUBSCRIPTION
public static final String SUBSCRIPTION
- See Also:
- Constant Field Values
-
MESSAGE_ID
public static final String MESSAGE_ID
- See Also:
- Constant Field Values
-
TRANSACTION
public static final String TRANSACTION
- See Also:
- Constant Field Values
-
MESSAGE
public static final String MESSAGE
- See Also:
- Constant Field Values
-
STOMP_FRAME_COMMAND
public static final String STOMP_FRAME_COMMAND
Header used when a frame using an unknown command is received. The createdFrame
object uses theCommand.UNKNOWN
command and gives the original command in this header.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Frame
public Frame()
Creates an un-configured frame. Should only be used by converters.
-
Frame
public Frame(Frame other)
Creates a new instance ofFrame
by copying the values from theother
frame. The body of the frame is copied.- Parameters:
other
- the frame to copy.
-
Frame
public Frame(JsonObject json)
Creates a new instance ofFrame
from its JSON representation.- Parameters:
json
- the json form of the frame
-
-
Method Detail
-
addHeader
public Frame addHeader(String key, String value)
Adds a header to the frame.- Parameters:
key
- the header namevalue
- the header value- Returns:
- the current
Frame
-
getAck
public String getAck()
Gets the value of theack
header.- Returns:
- the
ack
header value,null
if not set
-
getHeaders
public Map<String,String> getHeaders()
Gets the frame headers. Modifications to the returnedMap
modifies the headers of the frame.- Returns:
- the headers
-
setHeaders
public Frame setHeaders(Map<String,String> headers)
Sets the headers of the frames.- Parameters:
headers
- the header, may benull
. In thenull
case, an empty map is used to store the frame headers.- Returns:
- the current
Frame
-
setCommand
public Frame setCommand(Command command)
Sets the frame command.- Parameters:
command
- the command, must not benull
- Returns:
- the current
Frame
-
setBody
public Frame setBody(Buffer body)
Sets the body of the frame.- Parameters:
body
- the body- Returns:
- the current
Frame
-
toJson
public JsonObject toJson()
- Returns:
- the JSON representation of the current frame.
-
validate
public void validate()
Checks the validity of the frame. Frames must have a valid command, and not all frames can have a body.
-
hasEmptyBody
public boolean hasEmptyBody()
- Returns:
- whether or not the frame has a body.
-
getCommand
public Command getCommand()
-
getHeader
public String getHeader(String name)
Gets the value of the header with the given name.- Parameters:
name
- the header name- Returns:
- the value,
null
if not set
-
getBody
public Buffer getBody()
-
getBodyAsString
public String getBodyAsString(String encoding)
Gets the body of the frames as a String encoded in the given encoding.- Parameters:
encoding
- the encoding- Returns:
- the body,
null
if none
-
getBodyAsString
public String getBodyAsString()
Gets the body of the frames as a String encoded in the frame encoding.- Returns:
- the body,
null
if none
-
encoding
public String encoding()
Read the frame encoding. If not set defaults to utf-8.- Returns:
- the encoding
-
getBodyAsByteArray
public byte[] getBodyAsByteArray()
- Returns:
- the body of the frame as a byte array,
null
if none.
-
toBuffer
public Buffer toBuffer(boolean trailingLine)
Creates a buffer for the current frame. This buffer may contain an empty line if thetrailingLine
is set totrue
- Parameters:
trailingLine
- whether or not a trailing line should be added to the buffer- Returns:
- a
Buffer
containing the STOMP frame. It follows strictly the STOMP specification (including header encoding).
-
toBuffer
public Buffer toBuffer()
This method does not enforce the trailing line option. It should not be used directly, except for the PING frame.- Returns:
- a
Buffer
containing the STOMP frame. It follows strictly the STOMP specification (including header encoding).
-
getId
public String getId()
-
getReceipt
public String getReceipt()
-
getTransaction
public String getTransaction()
-
getDestination
public String getDestination()
-
-