<!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>EventingSubscriber xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../../../../../apidocs/org/apache/savan/eventing/subscribers/EventingSubscriber.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 2004,2005 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>  
<a name="17" href="#17">17</a>  <strong>package</strong> org.apache.savan.eventing.subscribers;
<a name="18" href="#18">18</a>  
<a name="19" href="#19">19</a>  <strong>import</strong> org.apache.axis2.addressing.EndpointReference;
<a name="20" href="#20">20</a>  <strong>import</strong> org.apache.savan.eventing.Delivery;
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.savan.subscribers.Subscriber;
<a name="22" href="#22">22</a>  
<a name="23" href="#23">23</a>  <em>/**<em>*</em></em>
<a name="24" href="#24">24</a>  <em> * Defines methods common to all eventing subscribers.</em>
<a name="25" href="#25">25</a>  <em> */</em>
<a name="26" href="#26">26</a>  <strong>public</strong> <strong>interface</strong> <a href="../../../../../org/apache/savan/eventing/subscribers/EventingSubscriber.html">EventingSubscriber</a> <strong>extends</strong> <a href="../../../../../org/apache/savan/subscribers/Subscriber.html">Subscriber</a> {
<a name="27" href="#27">27</a>  	
<a name="28" href="#28">28</a>  	<em>/**<em>*</em></em>
<a name="29" href="#29">29</a>  <em>	 * To get the EndTo EPR</em>
<a name="30" href="#30">30</a>  <em>	 * @return</em>
<a name="31" href="#31">31</a>  <em>	 */</em>
<a name="32" href="#32">32</a>  	EndpointReference getEndToEPr();
<a name="33" href="#33">33</a>  	
<a name="34" href="#34">34</a>  	<em>/**<em>*</em></em>
<a name="35" href="#35">35</a>  <em>	 * To get the Delivery object</em>
<a name="36" href="#36">36</a>  <em>	 * @return</em>
<a name="37" href="#37">37</a>  <em>	 */</em>
<a name="38" href="#38">38</a>  	Delivery getDelivery();
<a name="39" href="#39">39</a>  	
<a name="40" href="#40">40</a>  	<em>/**<em>*</em></em>
<a name="41" href="#41">41</a>  <em>	 * To se the Delivery object</em>
<a name="42" href="#42">42</a>  <em>	 * @param delivery</em>
<a name="43" href="#43">43</a>  <em>	 */</em>
<a name="44" href="#44">44</a>  	<strong>void</strong> setDelivery(<a href="../../../../../org/apache/savan/eventing/Delivery.html">Delivery</a> delivery);
<a name="45" href="#45">45</a>  	
<a name="46" href="#46">46</a>  	<em>/**<em>*</em></em>
<a name="47" href="#47">47</a>  <em>	 * To set the EndTo EPR</em>
<a name="48" href="#48">48</a>  <em>	 * @param errorReportingEPR</em>
<a name="49" href="#49">49</a>  <em>	 */</em>
<a name="50" href="#50">50</a>  	<strong>void</strong> setEndToEPr(EndpointReference errorReportingEPR);
<a name="51" href="#51">51</a>  	
<a name="52" href="#52">52</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

