<!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>MappingRules xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../../../apidocs/org/apache/savan/configuration/MappingRules.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.configuration;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong>import</strong> java.util.ArrayList;
<a name="21" href="#21">21</a>  
<a name="22" href="#22">22</a>  <em>/**<em>*</em></em>
<a name="23" href="#23">23</a>  <em> *Encapsulates a date of a set of Mapping-Rules as defined by Savan configurations. </em>
<a name="24" href="#24">24</a>  <em> *(probably from a savan-config.xml file).</em>
<a name="25" href="#25">25</a>  <em> */</em>
<a name="26" href="#26">26</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/savan/configuration/MappingRules.html">MappingRules</a> {
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  	<strong>private</strong> ArrayList actionMap = <strong>null</strong>;
<a name="29" href="#29">29</a>  	<strong>private</strong> ArrayList SOAPActionMap = <strong>null</strong>;
<a name="30" href="#30">30</a>  	
<a name="31" href="#31">31</a>  	<strong>public</strong> <a href="../../../../org/apache/savan/configuration/MappingRules.html">MappingRules</a> () {
<a name="32" href="#32">32</a>  		actionMap = <strong>new</strong> ArrayList ();
<a name="33" href="#33">33</a>  		SOAPActionMap = <strong>new</strong> ArrayList ();
<a name="34" href="#34">34</a>  	}
<a name="35" href="#35">35</a>  	
<a name="36" href="#36">36</a>  	<strong>public</strong> <strong>void</strong> addAction (String action) {
<a name="37" href="#37">37</a>  		actionMap.add(action);
<a name="38" href="#38">38</a>  	}
<a name="39" href="#39">39</a>  	
<a name="40" href="#40">40</a>  	<strong>public</strong> <strong>boolean</strong> isActionPresent (String action) {
<a name="41" href="#41">41</a>  		<strong>return</strong> actionMap.contains(action);
<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>void</strong> addSOAPAction (String SOAPAction) {
<a name="45" href="#45">45</a>  		SOAPActionMap.add(SOAPAction);
<a name="46" href="#46">46</a>  	}
<a name="47" href="#47">47</a>  	
<a name="48" href="#48">48</a>  	<strong>public</strong> <strong>boolean</strong> isSOAPActionPresent (String SOAPAction) {
<a name="49" href="#49">49</a>  		<strong>return</strong> SOAPActionMap.contains(SOAPAction);
<a name="50" href="#50">50</a>  	}
<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>

