Developing Apama Applications > EPL Reference > Types > Reference types > Channel
Channel
Values of Channel type are objects that hold either a string, which is a channel name, or a context object depending on how you construct it.
Usage
The Channel type is defined in the com.apama namespace. Typically, to easily refer to Channel objects, you specify
using com.apama.Channel
The Channel type lets you send an event to a channel or context. If the Channel object contains a string then the event is sent to the channel with that name. If the Channel object contains a context then the event is sent to that context.
A Channel object has three constructors:
Channel(string)
Channel(context)
new Channel
The third constructor creates a Channel object that contains an empty context object. The contained empty context is the same result you would get from new context. It is a runtime error to send an event to an empty context. Likewise, it is a runtime error to send an event to a Channel object that contains an empty context.
For example, the following two lines have the same result:
send e to "MyChannel";
send e to Channel("MyChannel");
Similarly, the following two lines have the same result when c is a variable of the context type:
send e to c;
send e to Channel(c);
The benefit of using a Channel object rather than a string or context object is that the Channel object is polymorphic. For example, by using a Channel object to represent the source of a request, you could write a service monitor so that the same code sends a response to a service request. You would not need to have code for sending responses to channels and separate code for sending responses to contexts.
You cannot send an event to a sequence of Channel objects. You cannot route a Channel object but a routable object can have a Channel object as a member.
Methods
The following methods may be called on values of Channel type:
ChannelMethods
*canParse() — returns true if the string argument can be successfully parsed to create a Channel object. You cannot parse a string representation of a Channel object that contains a context. For more information about the parseable type property, see the table in Type properties summary.
*clone() — returns a new Channel that is an exact copy of the Channel the clone() method is called on. The original Channel’s content is copied into the new Channel.
*empty() – returns true if the Channel object contains an empty context. This lets you distinguish between an object that contains a default initialization value and an object that has been explicitly populated.
*parse() – returns the Channel instance represented by the string argument. You can call this method on the Channel type or on an instance of a Channel type. The more typical use is to call parse() directly on the Channel type.
The parse() method takes a single string as its argument. This string must be the string form of a Channel object. The string must adhere to the format described in Event file format. For example:
Channel a;
a := Channel.parse(com.apama.Channel("channelName");
Channel b;
b := Channel.parse(com.apama.Channel(context(3, "contextName", true) );
You can specify the parse() method after an expression or type name. If the correlator is unable to parse the string, it is a runtime error and the monitor instance that the EPL is running in terminates.
*toString() — returns a string that contains the channel name or the name of the contained context.
Copyright © 2013-2015 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.
Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Software AG.