<!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>Service xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/mina/registry/Service.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"> *   @(#) $Id: Service.java 210062 2005-07-11 03:52:38Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../org/apache/mina/registry/package-summary.html">org.apache.mina.registry</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> java.io.Serializable;
<a name="22" href="#22">22</a>  <strong>import</strong> java.net.InetSocketAddress;
<a name="23" href="#23">23</a>  <strong>import</strong> java.net.SocketAddress;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.protocol.vmpipe.VmPipeAddress;
<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> * Represents a service that is registered to {@link ServiceRegistry}.</em>
<a name="30" href="#30">30</a>  <em> * </em>
<a name="31" href="#31">31</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="32" href="#32">32</a>  <em> * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $</em>
<a name="33" href="#33">33</a>  <em> */</em>
<a name="34" href="#34">34</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../org/apache/mina/registry/Service.html">Service</a> implements Serializable, Cloneable
<a name="35" href="#35">35</a>  {
<a name="36" href="#36">36</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> <strong>long</strong> serialVersionUID = 3258407344110383155L;
<a name="37" href="#37">37</a>  
<a name="38" href="#38">38</a>      <strong>private</strong> <strong>final</strong> String name;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>      <strong>private</strong> <strong>final</strong> <a href="../../../../org/apache/mina/common/TransportType.html">TransportType</a> transportType;
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>      <strong>private</strong> <strong>final</strong> SocketAddress address;
<a name="43" href="#43">43</a>  
<a name="44" href="#44">44</a>      <em>/**<em>*</em></em>
<a name="45" href="#45">45</a>  <em>     * Creates a new instance with the specified protocol name, transport type,</em>
<a name="46" href="#46">46</a>  <em>     * and port number to be bound.</em>
<a name="47" href="#47">47</a>  <em>     */</em>
<a name="48" href="#48">48</a>      <strong>public</strong> <a href="../../../../org/apache/mina/registry/Service.html">Service</a>( String name, TransportType transportType, <strong>int</strong> port )
<a name="49" href="#49">49</a>      {
<a name="50" href="#50">50</a>          <strong>this</strong>( name, transportType, <strong>new</strong> InetSocketAddress( port ) );
<a name="51" href="#51">51</a>      }
<a name="52" href="#52">52</a>  
<a name="53" href="#53">53</a>      <em>/**<em>*</em></em>
<a name="54" href="#54">54</a>  <em>     * Creates a new instance with the specified protocol name, transport type,</em>
<a name="55" href="#55">55</a>  <em>     * and socket address to be bound.</em>
<a name="56" href="#56">56</a>  <em>     */</em>
<a name="57" href="#57">57</a>      <strong>public</strong> <a href="../../../../org/apache/mina/registry/Service.html">Service</a>( String name, TransportType transportType, SocketAddress address )
<a name="58" href="#58">58</a>      {
<a name="59" href="#59">59</a>          <strong>if</strong>( name == <strong>null</strong> )
<a name="60" href="#60">60</a>              <strong>throw</strong> <strong>new</strong> NullPointerException( <span class="string">"name"</span> );
<a name="61" href="#61">61</a>          <strong>if</strong>( transportType == <strong>null</strong> )
<a name="62" href="#62">62</a>              <strong>throw</strong> <strong>new</strong> NullPointerException( <span class="string">"transportType"</span> );
<a name="63" href="#63">63</a>          <strong>if</strong>( address == <strong>null</strong> )
<a name="64" href="#64">64</a>              <strong>throw</strong> <strong>new</strong> NullPointerException( <span class="string">"address"</span> );
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>          <strong>if</strong>( transportType == TransportType.VM_PIPE &amp;&amp;
<a name="67" href="#67">67</a>              !( address instanceof VmPipeAddress ) )
<a name="68" href="#68">68</a>          {
<a name="69" href="#69">69</a>              <strong>throw</strong> <strong>new</strong> IllegalArgumentException(
<a name="70" href="#70">70</a>                      <span class="string">"VM_PIPE transport type accepts only VmPipeAddress: "</span> + address.getClass() );
<a name="71" href="#71">71</a>          }
<a name="72" href="#72">72</a>  
<a name="73" href="#73">73</a>          <strong>this</strong>.name = name;
<a name="74" href="#74">74</a>          <strong>this</strong>.transportType = transportType;
<a name="75" href="#75">75</a>          <strong>this</strong>.address = address;
<a name="76" href="#76">76</a>      }
<a name="77" href="#77">77</a>  
<a name="78" href="#78">78</a>      <em>/**<em>*</em></em>
<a name="79" href="#79">79</a>  <em>     * Returns the name of this service (protocol).</em>
<a name="80" href="#80">80</a>  <em>     */</em>
<a name="81" href="#81">81</a>      <strong>public</strong> String getName()
<a name="82" href="#82">82</a>      {
<a name="83" href="#83">83</a>          <strong>return</strong> name;
<a name="84" href="#84">84</a>      }
<a name="85" href="#85">85</a>  
<a name="86" href="#86">86</a>      <em>/**<em>*</em></em>
<a name="87" href="#87">87</a>  <em>     * Returns the transport type this service uses.</em>
<a name="88" href="#88">88</a>  <em>     */</em>
<a name="89" href="#89">89</a>      <strong>public</strong> <a href="../../../../org/apache/mina/common/TransportType.html">TransportType</a> getTransportType()
<a name="90" href="#90">90</a>      {
<a name="91" href="#91">91</a>          <strong>return</strong> transportType;
<a name="92" href="#92">92</a>      }
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>      <em>/**<em>*</em></em>
<a name="95" href="#95">95</a>  <em>     * Returns the socket address this service is bound on.</em>
<a name="96" href="#96">96</a>  <em>     */</em>
<a name="97" href="#97">97</a>      <strong>public</strong> SocketAddress getAddress()
<a name="98" href="#98">98</a>      {
<a name="99" href="#99">99</a>          <strong>return</strong> address;
<a name="100" href="#100">100</a>     }
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>     <strong>public</strong> <strong>int</strong> hashCode()
<a name="103" href="#103">103</a>     {
<a name="104" href="#104">104</a>         <strong>return</strong> ( ( name.hashCode() * 37 ) ^ transportType.hashCode() * 37 )
<a name="105" href="#105">105</a>                 ^ address.hashCode();
<a name="106" href="#106">106</a>     }
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <strong>public</strong> <strong>boolean</strong> equals( Object o )
<a name="109" href="#109">109</a>     {
<a name="110" href="#110">110</a>         <strong>if</strong>( o == <strong>null</strong> )
<a name="111" href="#111">111</a>             <strong>return</strong> false;
<a name="112" href="#112">112</a>         <strong>if</strong>( <strong>this</strong> == o )
<a name="113" href="#113">113</a>             <strong>return</strong> <strong>true</strong>;
<a name="114" href="#114">114</a>         <strong>if</strong>( !( o instanceof Service ) )
<a name="115" href="#115">115</a>             <strong>return</strong> false;
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>         <a href="../../../../org/apache/mina/registry/Service.html">Service</a> that = ( Service ) o;
<a name="118" href="#118">118</a>         <strong>return</strong> <strong>this</strong>.name.equals( that.name )
<a name="119" href="#119">119</a>                 &amp;&amp; <strong>this</strong>.transportType == that.transportType
<a name="120" href="#120">120</a>                 &amp;&amp; <strong>this</strong>.address.equals( that.address );
<a name="121" href="#121">121</a>     }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     <strong>public</strong> Object clone()
<a name="124" href="#124">124</a>     {
<a name="125" href="#125">125</a>         <strong>try</strong>
<a name="126" href="#126">126</a>         {
<a name="127" href="#127">127</a>             <strong>return</strong> <strong>super</strong>.clone();
<a name="128" href="#128">128</a>         }
<a name="129" href="#129">129</a>         <strong>catch</strong>( CloneNotSupportedException e )
<a name="130" href="#130">130</a>         {
<a name="131" href="#131">131</a>             <strong>throw</strong> <strong>new</strong> InternalError();
<a name="132" href="#132">132</a>         }
<a name="133" href="#133">133</a>     }
<a name="134" href="#134">134</a>     
<a name="135" href="#135">135</a>     <strong>public</strong> String toString() {
<a name="136" href="#136">136</a>         <strong>return</strong> <span class="string">"("</span> + transportType + <span class="string">", "</span> + name + <span class="string">", "</span> + address + ')';
<a name="137" href="#137">137</a>     }
<a name="138" href="#138">138</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

