<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>EventingMessageReceiverDeligater xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../../../apidocs/org/apache/savan/eventing/EventingMessageReceiverDeligater.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> * Copyright  1999-2004 The Apache Software Foundation.</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *  Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="5" href="#5">5</a>   <em class="comment"> *  you may not use this file except in compliance with the License.</em>
<a name="6" href="#6">6</a>   <em class="comment"> *  You may obtain a copy of the License at</em>
<a name="7" href="#7">7</a>   <em class="comment"> *</em>
<a name="8" href="#8">8</a>   <em class="comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="comment"> *  Unless required by applicable law or agreed to in writing, software</em>
<a name="11" href="#11">11</a>  <em class="comment"> *  distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="12" href="#12">12</a>  <em class="comment"> *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="13" href="#13">13</a>  <em class="comment"> *  See the License for the specific language governing permissions and</em>
<a name="14" href="#14">14</a>  <em class="comment"> *  limitations under the License.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *</em>
<a name="16" href="#16">16</a>  <em class="comment"> */</em>
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <strong>package</strong> org.apache.savan.eventing;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong>import</strong> java.util.Calendar;
<a name="21" href="#21">21</a>  <strong>import</strong> java.util.Date;
<a name="22" href="#22">22</a>  <strong>import</strong> javax.xml.namespace.QName;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.axiom.om.OMElement;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.axiom.om.OMNamespace;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.axiom.soap.SOAPEnvelope;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.axiom.soap.SOAPFactory;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.axis2.AxisFault;
<a name="28" href="#28">28</a>  <strong>import</strong> org.apache.axis2.addressing.AddressingConstants;
<a name="29" href="#29">29</a>  <strong>import</strong> org.apache.axis2.addressing.EndpointReferenceHelper;
<a name="30" href="#30">30</a>  <strong>import</strong> org.apache.axis2.addressing.EndpointReference;
<a name="31" href="#31">31</a>  <strong>import</strong> org.apache.axis2.context.MessageContext;
<a name="32" href="#32">32</a>  <strong>import</strong> org.apache.axis2.databinding.utils.ConverterUtil;
<a name="33" href="#33">33</a>  <strong>import</strong> org.apache.savan.SavanConstants;
<a name="34" href="#34">34</a>  <strong>import</strong> org.apache.savan.SavanException;
<a name="35" href="#35">35</a>  <strong>import</strong> org.apache.savan.SavanMessageContext;
<a name="36" href="#36">36</a>  <strong>import</strong> org.apache.savan.eventing.subscribers.EventingLeafSubscriber;
<a name="37" href="#37">37</a>  <strong>import</strong> org.apache.savan.messagereceiver.MessageReceiverDeligater;
<a name="38" href="#38">38</a>  <strong>import</strong> org.apache.savan.storage.SubscriberStore;
<a name="39" href="#39">39</a>  <strong>import</strong> org.apache.savan.subscribers.AbstractSubscriber;
<a name="40" href="#40">40</a>  <strong>import</strong> org.apache.savan.subscribers.Subscriber;
<a name="41" href="#41">41</a>  <strong>import</strong> org.apache.savan.util.CommonUtil;
<a name="42" href="#42">42</a>  
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/savan/eventing/EventingMessageReceiverDeligater.html">EventingMessageReceiverDeligater</a> implements <a href="../../../../org/apache/savan/messagereceiver/MessageReceiverDeligater.html">MessageReceiverDeligater</a> {
<a name="45" href="#45">45</a>  
<a name="46" href="#46">46</a>  	<strong>public</strong> <strong>void</strong> handleSubscriptionRequest(<a href="../../../../org/apache/savan/SavanMessageContext.html">SavanMessageContext</a> subscriptionMessage, MessageContext outMessage) throws SavanException {
<a name="47" href="#47">47</a>  		
<a name="48" href="#48">48</a>  		<strong>if</strong> (outMessage==<strong>null</strong>)
<a name="49" href="#49">49</a>  			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Eventing protocol need to sent the SubscriptionResponseMessage. But the outMessage is null"</span>);
<a name="50" href="#50">50</a>  		
<a name="51" href="#51">51</a>  		MessageContext subscriptionMsgCtx = subscriptionMessage.getMessageContext();
<a name="52" href="#52">52</a>  		
<a name="53" href="#53">53</a>  		SOAPEnvelope outMessageEnvelope = outMessage.getEnvelope();
<a name="54" href="#54">54</a>  		SOAPFactory factory = <strong>null</strong>;
<a name="55" href="#55">55</a>  		
<a name="56" href="#56">56</a>  		<strong>if</strong> (outMessageEnvelope!=<strong>null</strong>) {
<a name="57" href="#57">57</a>  			factory = (SOAPFactory) outMessageEnvelope.getOMFactory();
<a name="58" href="#58">58</a>  		} <strong>else</strong> {
<a name="59" href="#59">59</a>  			factory = (SOAPFactory) subscriptionMsgCtx.getEnvelope().getOMFactory();
<a name="60" href="#60">60</a>  			outMessageEnvelope = factory.getDefaultEnvelope();
<a name="61" href="#61">61</a>  			
<a name="62" href="#62">62</a>  			<strong>try</strong> {
<a name="63" href="#63">63</a>  				outMessage.setEnvelope(outMessageEnvelope);
<a name="64" href="#64">64</a>  			} <strong>catch</strong> (AxisFault e) {
<a name="65" href="#65">65</a>  				<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (e);
<a name="66" href="#66">66</a>  			}
<a name="67" href="#67">67</a>  		}
<a name="68" href="#68">68</a>  		
<a name="69" href="#69">69</a>  		<em class="comment">//setting the action</em>
<a name="70" href="#70">70</a>  		outMessage.getOptions().setAction(EventingConstants.Actions.SubscribeResponse);
<a name="71" href="#71">71</a>  			
<a name="72" href="#72">72</a>  		<em class="comment">//sending the subscription response message.</em>
<a name="73" href="#73">73</a>  		String address = subscriptionMsgCtx.getOptions().getTo().getAddress();
<a name="74" href="#74">74</a>  		EndpointReference subscriptionManagerEPR = <strong>new</strong> EndpointReference (address);
<a name="75" href="#75">75</a>  
<a name="76" href="#76">76</a>  		String id = (String) subscriptionMessage.getProperty(EventingConstants.TransferedProperties.SUBSCRIBER_UUID);
<a name="77" href="#77">77</a>  		<strong>if</strong> (id==<strong>null</strong>)
<a name="78" href="#78">78</a>  			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Subscription UUID is not set"</span>);
<a name="79" href="#79">79</a>  		
<a name="80" href="#80">80</a>  		subscriptionManagerEPR.addReferenceParameter(<strong>new</strong> QName (EventingConstants.EVENTING_NAMESPACE,EventingConstants.ElementNames.Identifier,EventingConstants.EVENTING_PREFIX),id);
<a name="81" href="#81">81</a>  		
<a name="82" href="#82">82</a>  		OMNamespace ens = factory.createOMNamespace(EventingConstants.EVENTING_NAMESPACE,EventingConstants.EVENTING_PREFIX);
<a name="83" href="#83">83</a>  		OMElement subscribeResponseElement = factory.createOMElement(EventingConstants.ElementNames.SubscribeResponse,ens);
<a name="84" href="#84">84</a>  		OMElement subscriptionManagerElement = <strong>null</strong>;
<a name="85" href="#85">85</a>  		<strong>try</strong> {
<a name="86" href="#86">86</a>  			subscriptionManagerElement = EndpointReferenceHelper.toOM(subscribeResponseElement.getOMFactory(), subscriptionManagerEPR, <strong>new</strong> QName(EventingConstants.EVENTING_NAMESPACE,EventingConstants.ElementNames.SubscriptionManager,EventingConstants.EVENTING_PREFIX), AddressingConstants.Submission.WSA_NAMESPACE);
<a name="87" href="#87">87</a>  		} <strong>catch</strong> (AxisFault e) {
<a name="88" href="#88">88</a>  			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (e);
<a name="89" href="#89">89</a>  		}
<a name="90" href="#90">90</a>  		
<a name="91" href="#91">91</a>  		<em class="comment">//TODO set expires</em>
<a name="92" href="#92">92</a>  		
<a name="93" href="#93">93</a>  		subscribeResponseElement.addChild(subscriptionManagerElement);
<a name="94" href="#94">94</a>  		outMessageEnvelope.getBody().addChild(subscribeResponseElement);
<a name="95" href="#95">95</a>  		
<a name="96" href="#96">96</a>  		<em class="comment">//setting the message type</em>
<a name="97" href="#97">97</a>  		outMessage.setProperty(SavanConstants.MESSAGE_TYPE,<strong>new</strong> Integer (SavanConstants.MessageTypes.SUBSCRIPTION_RESPONSE_MESSAGE));
<a name="98" href="#98">98</a>  	
<a name="99" href="#99">99</a>  	}
<a name="100" href="#100">100</a> 	
<a name="101" href="#101">101</a> 	<strong>public</strong> <strong>void</strong> handleRenewRequest(<a href="../../../../org/apache/savan/SavanMessageContext.html">SavanMessageContext</a> renewMessage, MessageContext outMessage) throws SavanException {
<a name="102" href="#102">102</a> 		
<a name="103" href="#103">103</a> 		<strong>if</strong> (outMessage==<strong>null</strong>)
<a name="104" href="#104">104</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Eventing protocol need to sent the SubscriptionResponseMessage. But the outMessage is null"</span>);
<a name="105" href="#105">105</a> 		
<a name="106" href="#106">106</a> 		MessageContext subscriptionMsgCtx = renewMessage.getMessageContext();
<a name="107" href="#107">107</a> 		
<a name="108" href="#108">108</a> 		SOAPEnvelope outMessageEnvelope = outMessage.getEnvelope();
<a name="109" href="#109">109</a> 		SOAPFactory factory = <strong>null</strong>;
<a name="110" href="#110">110</a> 		
<a name="111" href="#111">111</a> 		<strong>if</strong> (outMessageEnvelope!=<strong>null</strong>) {
<a name="112" href="#112">112</a> 			factory = (SOAPFactory) outMessageEnvelope.getOMFactory();
<a name="113" href="#113">113</a> 		} <strong>else</strong> {
<a name="114" href="#114">114</a> 			factory = (SOAPFactory) subscriptionMsgCtx.getEnvelope().getOMFactory();
<a name="115" href="#115">115</a> 			outMessageEnvelope = factory.getDefaultEnvelope();
<a name="116" href="#116">116</a> 			
<a name="117" href="#117">117</a> 			<strong>try</strong> {
<a name="118" href="#118">118</a> 				outMessage.setEnvelope(outMessageEnvelope);
<a name="119" href="#119">119</a> 			} <strong>catch</strong> (AxisFault e) {
<a name="120" href="#120">120</a> 				<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (e);
<a name="121" href="#121">121</a> 			}
<a name="122" href="#122">122</a> 		}
<a name="123" href="#123">123</a> 		
<a name="124" href="#124">124</a> 		<em class="comment">//setting the action</em>
<a name="125" href="#125">125</a> 		outMessage.getOptions().setAction(EventingConstants.Actions.RenewResponse);
<a name="126" href="#126">126</a> 		
<a name="127" href="#127">127</a> 		OMNamespace ens = factory.createOMNamespace(EventingConstants.EVENTING_NAMESPACE,EventingConstants.EVENTING_PREFIX);
<a name="128" href="#128">128</a> 			
<a name="129" href="#129">129</a> 		<em class="comment">//sending the Renew Response message.</em>
<a name="130" href="#130">130</a> 		OMElement renewResponseElement = factory.createOMElement(EventingConstants.ElementNames.RenewResponse,ens);
<a name="131" href="#131">131</a> 		String subscriberID = (String) renewMessage.getProperty(EventingConstants.TransferedProperties.SUBSCRIBER_UUID);
<a name="132" href="#132">132</a> 		<strong>if</strong> (subscriberID==<strong>null</strong>) {
<a name="133" href="#133">133</a> 			String message = <span class="string">"SubscriberID TransferedProperty is not set"</span>;
<a name="134" href="#134">134</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (message);
<a name="135" href="#135">135</a> 		}
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a> 		SubscriberStore store = CommonUtil.getSubscriberStore(renewMessage.getMessageContext().getAxisService());
<a name="138" href="#138">138</a> 		Subscriber subscriber = store.retrieve(subscriberID);
<a name="139" href="#139">139</a> 		EventingLeafSubscriber eventingSubscriber = (EventingLeafSubscriber) subscriber;
<a name="140" href="#140">140</a> 		<strong>if</strong> (eventingSubscriber==<strong>null</strong>) {
<a name="141" href="#141">141</a> 			String message = <span class="string">"Cannot find the AbstractSubscriber with the given ID"</span>;
<a name="142" href="#142">142</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (message);
<a name="143" href="#143">143</a> 		}
<a name="144" href="#144">144</a> 		
<a name="145" href="#145">145</a> 		Date expiration = eventingSubscriber.getSubscriptionEndingTime();
<a name="146" href="#146">146</a> 		Calendar calendar = Calendar.getInstance();
<a name="147" href="#147">147</a> 		calendar.setTime(expiration);
<a name="148" href="#148">148</a> 		
<a name="149" href="#149">149</a> 		String expiresValue = ConverterUtil.convertToString(calendar);
<a name="150" href="#150">150</a> 		
<a name="151" href="#151">151</a> 		<strong>if</strong> (expiresValue!=<strong>null</strong>) {
<a name="152" href="#152">152</a> 			OMElement expiresElement = factory.createOMElement(EventingConstants.ElementNames.Expires,ens);
<a name="153" href="#153">153</a> 			renewResponseElement.addChild(expiresElement);
<a name="154" href="#154">154</a> 		}
<a name="155" href="#155">155</a> 		
<a name="156" href="#156">156</a> 		outMessageEnvelope.getBody().addChild(renewResponseElement);
<a name="157" href="#157">157</a> 		
<a name="158" href="#158">158</a> 		<em class="comment">//setting the message type</em>
<a name="159" href="#159">159</a> 		outMessage.setProperty(SavanConstants.MESSAGE_TYPE,<strong>new</strong> Integer (SavanConstants.MessageTypes.RENEW_RESPONSE_MESSAGE));
<a name="160" href="#160">160</a> 	}
<a name="161" href="#161">161</a> 
<a name="162" href="#162">162</a> 	<strong>public</strong> <strong>void</strong> handleEndSubscriptionRequest(<a href="../../../../org/apache/savan/SavanMessageContext.html">SavanMessageContext</a> renewMessage, MessageContext outMessage) throws SavanException {
<a name="163" href="#163">163</a> 		
<a name="164" href="#164">164</a> 		<strong>if</strong> (outMessage==<strong>null</strong>)
<a name="165" href="#165">165</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Eventing protocol need to sent the SubscriptionResponseMessage. But the outMessage is null"</span>);
<a name="166" href="#166">166</a> 		
<a name="167" href="#167">167</a> 		MessageContext subscriptionMsgCtx = renewMessage.getMessageContext();
<a name="168" href="#168">168</a> 		
<a name="169" href="#169">169</a> 		<em class="comment">//setting the action</em>
<a name="170" href="#170">170</a> 		outMessage.getOptions().setAction(EventingConstants.Actions.UnsubscribeResponse);
<a name="171" href="#171">171</a> 		
<a name="172" href="#172">172</a> 		SOAPEnvelope outMessageEnvelope = outMessage.getEnvelope();
<a name="173" href="#173">173</a> 		SOAPFactory factory = <strong>null</strong>;
<a name="174" href="#174">174</a> 		
<a name="175" href="#175">175</a> 		<strong>if</strong> (outMessageEnvelope!=<strong>null</strong>) {
<a name="176" href="#176">176</a> 			factory = (SOAPFactory) outMessageEnvelope.getOMFactory();
<a name="177" href="#177">177</a> 		} <strong>else</strong> {
<a name="178" href="#178">178</a> 			factory = (SOAPFactory) subscriptionMsgCtx.getEnvelope().getOMFactory();
<a name="179" href="#179">179</a> 			outMessageEnvelope = factory.getDefaultEnvelope();
<a name="180" href="#180">180</a> 			
<a name="181" href="#181">181</a> 			<strong>try</strong> {
<a name="182" href="#182">182</a> 				outMessage.setEnvelope(outMessageEnvelope);
<a name="183" href="#183">183</a> 			} <strong>catch</strong> (AxisFault e) {
<a name="184" href="#184">184</a> 				<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (e);
<a name="185" href="#185">185</a> 			}
<a name="186" href="#186">186</a> 		}	
<a name="187" href="#187">187</a> 		
<a name="188" href="#188">188</a> 		<em class="comment">//setting the message type</em>
<a name="189" href="#189">189</a> 		outMessage.setProperty(SavanConstants.MESSAGE_TYPE,<strong>new</strong> Integer (SavanConstants.MessageTypes.UNSUBSCRIPTION_RESPONSE_MESSAGE));
<a name="190" href="#190">190</a> 	}
<a name="191" href="#191">191</a> 
<a name="192" href="#192">192</a> 	<strong>public</strong> <strong>void</strong> handleGetStatusRequest(<a href="../../../../org/apache/savan/SavanMessageContext.html">SavanMessageContext</a> getStatusMessage, MessageContext outMessage) throws SavanException {
<a name="193" href="#193">193</a> 
<a name="194" href="#194">194</a> 		<strong>if</strong> (outMessage==<strong>null</strong>)
<a name="195" href="#195">195</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Eventing protocol need to sent the SubscriptionResponseMessage. But the outMessage is null"</span>);
<a name="196" href="#196">196</a> 		
<a name="197" href="#197">197</a> 		MessageContext subscriptionMsgCtx = getStatusMessage.getMessageContext();
<a name="198" href="#198">198</a> 		
<a name="199" href="#199">199</a> 		String id = (String) getStatusMessage.getProperty(EventingConstants.TransferedProperties.SUBSCRIBER_UUID);
<a name="200" href="#200">200</a> 		<strong>if</strong> (id==<strong>null</strong>)
<a name="201" href="#201">201</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Cannot fulfil request. AbstractSubscriber ID not found"</span>);
<a name="202" href="#202">202</a> 		
<a name="203" href="#203">203</a> 		<em class="comment">//setting the action</em>
<a name="204" href="#204">204</a> 		outMessage.getOptions().setAction(EventingConstants.Actions.UnsubscribeResponse);
<a name="205" href="#205">205</a> 		
<a name="206" href="#206">206</a> 		SOAPEnvelope outMessageEnvelope = outMessage.getEnvelope();
<a name="207" href="#207">207</a> 		SOAPFactory factory = <strong>null</strong>;
<a name="208" href="#208">208</a> 		
<a name="209" href="#209">209</a> 		<strong>if</strong> (outMessageEnvelope!=<strong>null</strong>) {
<a name="210" href="#210">210</a> 			factory = (SOAPFactory) outMessageEnvelope.getOMFactory();
<a name="211" href="#211">211</a> 		} <strong>else</strong> {
<a name="212" href="#212">212</a> 			factory = (SOAPFactory) subscriptionMsgCtx.getEnvelope().getOMFactory();
<a name="213" href="#213">213</a> 			outMessageEnvelope = factory.getDefaultEnvelope();
<a name="214" href="#214">214</a> 			
<a name="215" href="#215">215</a> 			<strong>try</strong> {
<a name="216" href="#216">216</a> 				outMessage.setEnvelope(outMessageEnvelope);
<a name="217" href="#217">217</a> 			} <strong>catch</strong> (AxisFault e) {
<a name="218" href="#218">218</a> 				<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (e);
<a name="219" href="#219">219</a> 			}
<a name="220" href="#220">220</a> 		}
<a name="221" href="#221">221</a> 		
<a name="222" href="#222">222</a> 		SubscriberStore store = CommonUtil.getSubscriberStore(getStatusMessage.getMessageContext().getAxisService());
<a name="223" href="#223">223</a> 		
<a name="224" href="#224">224</a> 		
<a name="225" href="#225">225</a> 		<strong>if</strong> (store==<strong>null</strong>) {
<a name="226" href="#226">226</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"AbstractSubscriber Store was not found"</span>);
<a name="227" href="#227">227</a> 		}
<a name="228" href="#228">228</a> 		
<a name="229" href="#229">229</a> 		EventingLeafSubscriber subscriber = (EventingLeafSubscriber) store.retrieve(id);
<a name="230" href="#230">230</a> 		<strong>if</strong> (subscriber==<strong>null</strong>) {
<a name="231" href="#231">231</a> 			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"AbstractSubscriber not found"</span>);
<a name="232" href="#232">232</a> 		}
<a name="233" href="#233">233</a> 		
<a name="234" href="#234">234</a> 		OMNamespace ens = factory.createOMNamespace(EventingConstants.EVENTING_NAMESPACE,EventingConstants.EVENTING_PREFIX);
<a name="235" href="#235">235</a> 		OMElement getStatusResponseElement = factory.createOMElement(EventingConstants.ElementNames.GetStatusResponse,ens);
<a name="236" href="#236">236</a> 		
<a name="237" href="#237">237</a> 		Date expires = subscriber.getSubscriptionEndingTime();
<a name="238" href="#238">238</a> 		<strong>if</strong> (expires!=<strong>null</strong>) {
<a name="239" href="#239">239</a> 			OMElement expiresElement = factory.createOMElement(EventingConstants.ElementNames.Expires,ens);
<a name="240" href="#240">240</a> 			Calendar calendar = Calendar.getInstance();
<a name="241" href="#241">241</a> 			calendar.setTime(expires);
<a name="242" href="#242">242</a> 			String expirationString = ConverterUtil.convertToString(calendar);
<a name="243" href="#243">243</a> 			expiresElement.setText(expirationString);
<a name="244" href="#244">244</a> 			getStatusResponseElement.addChild(expiresElement);
<a name="245" href="#245">245</a> 		}
<a name="246" href="#246">246</a> 		
<a name="247" href="#247">247</a> 		outMessageEnvelope.getBody().addChild(getStatusResponseElement);
<a name="248" href="#248">248</a> 		
<a name="249" href="#249">249</a> 		<em class="comment">//setting the message type</em>
<a name="250" href="#250">250</a> 		outMessage.setProperty(SavanConstants.MESSAGE_TYPE,<strong>new</strong> Integer (SavanConstants.MessageTypes.GET_STATUS_RESPONSE_MESSAGE));
<a name="251" href="#251">251</a> 	}
<a name="252" href="#252">252</a> 	
<a name="253" href="#253">253</a> 	
<a name="254" href="#254">254</a> 
<a name="255" href="#255">255</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

