<!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>ProtocolManager xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../../../apidocs/org/apache/savan/util/ProtocolManager.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.util;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong>import</strong> org.apache.savan.SavanConstants;
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.savan.SavanException;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.savan.SavanMessageContext;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.savan.configuration.ConfigurationManager;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.savan.configuration.Protocol;
<a name="25" href="#25">25</a>  
<a name="26" href="#26">26</a>  <em>/**<em>*</em></em>
<a name="27" href="#27">27</a>  <em> * Utility class to extract the Protocol type from a MessageContext</em>
<a name="28" href="#28">28</a>  <em> */</em>
<a name="29" href="#29">29</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/savan/util/ProtocolManager.html">ProtocolManager</a> {
<a name="30" href="#30">30</a>  
<a name="31" href="#31">31</a>  	<strong>public</strong> <strong>static</strong> <a href="../../../../org/apache/savan/configuration/Protocol.html">Protocol</a> getMessageProtocol (SavanMessageContext smc) throws SavanException {
<a name="32" href="#32">32</a>  		<em class="comment">//TODO to this depending on Protocol rules. //TODO make this algorithm efficient</em>
<a name="33" href="#33">33</a>  		
<a name="34" href="#34">34</a>  		ConfigurationManager configurationManager = (ConfigurationManager) smc.getConfigurationContext().getProperty(SavanConstants.CONFIGURATION_MANAGER);
<a name="35" href="#35">35</a>  		<strong>if</strong> (configurationManager==<strong>null</strong>)
<a name="36" href="#36">36</a>  			<strong>throw</strong> <strong>new</strong> <a href="../../../../org/apache/savan/SavanException.html">SavanException</a> (<span class="string">"Cant find the Configuration Manager"</span>);
<a name="37" href="#37">37</a>  		
<a name="38" href="#38">38</a>  		<strong>return</strong> (Protocol) configurationManager.getProtocolMap().get(<span class="string">"eventing"</span>);
<a name="39" href="#39">39</a>  		
<a name="40" href="#40">40</a>  	}
<a name="41" href="#41">41</a>  	
<a name="42" href="#42">42</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

