<!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>EventingClientBean xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../../../../../apidocs/org/apache/savan/eventing/client/EventingClientBean.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.client;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong>import</strong> java.util.Date;
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.axis2.addressing.EndpointReference;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.axis2.databinding.types.Duration;
<a name="23" href="#23">23</a>  
<a name="24" href="#24">24</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/savan/eventing/client/EventingClientBean.html">EventingClientBean</a> {
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  	EndpointReference deliveryEPR;
<a name="27" href="#27">27</a>  	EndpointReference endToEPR;
<a name="28" href="#28">28</a>  	String filterDialect;
<a name="29" href="#29">29</a>  	String filter;
<a name="30" href="#30">30</a>  	Date expirationTime;
<a name="31" href="#31">31</a>  	Duration expirationDuration;
<a name="32" href="#32">32</a>  	
<a name="33" href="#33">33</a>  	<strong>public</strong> Duration getExpirationDuration() {
<a name="34" href="#34">34</a>  		<strong>return</strong> expirationDuration;
<a name="35" href="#35">35</a>  	}
<a name="36" href="#36">36</a>  
<a name="37" href="#37">37</a>  	<strong>public</strong> <strong>void</strong> setExpirationDuration(Duration expirationDuration) {
<a name="38" href="#38">38</a>  		<strong>this</strong>.expirationDuration = expirationDuration;
<a name="39" href="#39">39</a>  	}
<a name="40" href="#40">40</a>  
<a name="41" href="#41">41</a>  	<strong>public</strong> EndpointReference getDeliveryEPR() {
<a name="42" href="#42">42</a>  		<strong>return</strong> deliveryEPR;
<a name="43" href="#43">43</a>  	}
<a name="44" href="#44">44</a>  	
<a name="45" href="#45">45</a>  	<strong>public</strong> EndpointReference getEndToEPR() {
<a name="46" href="#46">46</a>  		<strong>return</strong> endToEPR;
<a name="47" href="#47">47</a>  	}
<a name="48" href="#48">48</a>  	
<a name="49" href="#49">49</a>  	<strong>public</strong> Date getExpirationTime() {
<a name="50" href="#50">50</a>  		<strong>return</strong> expirationTime;
<a name="51" href="#51">51</a>  	}
<a name="52" href="#52">52</a>  	
<a name="53" href="#53">53</a>  	<strong>public</strong> String getFilter() {
<a name="54" href="#54">54</a>  		<strong>return</strong> filter;
<a name="55" href="#55">55</a>  	}
<a name="56" href="#56">56</a>  	
<a name="57" href="#57">57</a>  	<strong>public</strong> String getFilterDialect() {
<a name="58" href="#58">58</a>  		<strong>return</strong> filterDialect;
<a name="59" href="#59">59</a>  	}
<a name="60" href="#60">60</a>  	
<a name="61" href="#61">61</a>  	<strong>public</strong> <strong>void</strong> setDeliveryEPR(EndpointReference deliveryEPR) {
<a name="62" href="#62">62</a>  		<strong>this</strong>.deliveryEPR = deliveryEPR;
<a name="63" href="#63">63</a>  	}
<a name="64" href="#64">64</a>  	
<a name="65" href="#65">65</a>  	<strong>public</strong> <strong>void</strong> setEndToEPR(EndpointReference endToEPR) {
<a name="66" href="#66">66</a>  		<strong>this</strong>.endToEPR = endToEPR;
<a name="67" href="#67">67</a>  	}
<a name="68" href="#68">68</a>  	
<a name="69" href="#69">69</a>  	<strong>public</strong> <strong>void</strong> setExpirationTime(Date expirationTime) {
<a name="70" href="#70">70</a>  		<strong>this</strong>.expirationTime = expirationTime;
<a name="71" href="#71">71</a>  	}
<a name="72" href="#72">72</a>  	
<a name="73" href="#73">73</a>  	<strong>public</strong> <strong>void</strong> setFilter(String filter) {
<a name="74" href="#74">74</a>  		<strong>this</strong>.filter = filter;
<a name="75" href="#75">75</a>  	}
<a name="76" href="#76">76</a>  	
<a name="77" href="#77">77</a>  	<strong>public</strong> <strong>void</strong> setFilterDialect(String filterDialect) {
<a name="78" href="#78">78</a>  		<strong>this</strong>.filterDialect = filterDialect;
<a name="79" href="#79">79</a>  	}
<a name="80" href="#80">80</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

