<!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=UTF-8" />
<title>ObjectMBean xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/integration/jmx/ObjectMBean.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_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="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.integration.jmx;
<a name="18" href="#18">18</a>  
<a name="19" href="#19">19</a>  <strong class="jxr_keyword">import</strong> java.beans.IntrospectionException;
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.beans.Introspector;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.beans.PropertyDescriptor;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.beans.PropertyEditor;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.InvocationTargetException;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.lang.reflect.Method;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.net.SocketAddress;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Date;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.util.HashMap;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.util.Iterator;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashSet;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> java.util.Set;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ConcurrentHashMap;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.ThreadPoolExecutor;
<a name="38" href="#38">38</a>  
<a name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> javax.management.Attribute;
<a name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> javax.management.AttributeChangeNotification;
<a name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> javax.management.AttributeList;
<a name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> javax.management.AttributeNotFoundException;
<a name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> javax.management.InstanceNotFoundException;
<a name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> javax.management.ListenerNotFoundException;
<a name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanException;
<a name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanInfo;
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanNotificationInfo;
<a name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanParameterInfo;
<a name="49" href="#49">49</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanRegistration;
<a name="50" href="#50">50</a>  <strong class="jxr_keyword">import</strong> javax.management.MBeanServer;
<a name="51" href="#51">51</a>  <strong class="jxr_keyword">import</strong> javax.management.Notification;
<a name="52" href="#52">52</a>  <strong class="jxr_keyword">import</strong> javax.management.NotificationFilter;
<a name="53" href="#53">53</a>  <strong class="jxr_keyword">import</strong> javax.management.NotificationListener;
<a name="54" href="#54">54</a>  <strong class="jxr_keyword">import</strong> javax.management.ObjectName;
<a name="55" href="#55">55</a>  <strong class="jxr_keyword">import</strong> javax.management.ReflectionException;
<a name="56" href="#56">56</a>  <strong class="jxr_keyword">import</strong> javax.management.RuntimeOperationsException;
<a name="57" href="#57">57</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.InvalidTargetObjectTypeException;
<a name="58" href="#58">58</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBean;
<a name="59" href="#59">59</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBeanAttributeInfo;
<a name="60" href="#60">60</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBeanConstructorInfo;
<a name="61" href="#61">61</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBeanInfo;
<a name="62" href="#62">62</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBeanInfoSupport;
<a name="63" href="#63">63</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBeanNotificationInfo;
<a name="64" href="#64">64</a>  <strong class="jxr_keyword">import</strong> javax.management.modelmbean.ModelMBeanOperationInfo;
<a name="65" href="#65">65</a>  
<a name="66" href="#66">66</a>  <strong class="jxr_keyword">import</strong> ognl.ExpressionSyntaxException;
<a name="67" href="#67">67</a>  <strong class="jxr_keyword">import</strong> ognl.InappropriateExpressionException;
<a name="68" href="#68">68</a>  <strong class="jxr_keyword">import</strong> ognl.NoSuchPropertyException;
<a name="69" href="#69">69</a>  <strong class="jxr_keyword">import</strong> ognl.Ognl;
<a name="70" href="#70">70</a>  <strong class="jxr_keyword">import</strong> ognl.OgnlContext;
<a name="71" href="#71">71</a>  <strong class="jxr_keyword">import</strong> ognl.OgnlException;
<a name="72" href="#72">72</a>  <strong class="jxr_keyword">import</strong> ognl.OgnlRuntime;
<a name="73" href="#73">73</a>  <strong class="jxr_keyword">import</strong> ognl.TypeConverter;
<a name="74" href="#74">74</a>  
<a name="75" href="#75">75</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.DefaultIoFilterChainBuilder;
<a name="76" href="#76">76</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoAcceptor;
<a name="77" href="#77">77</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilter;
<a name="78" href="#78">78</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilterChain;
<a name="79" href="#79">79</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoFilterChainBuilder;
<a name="80" href="#80">80</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoHandler;
<a name="81" href="#81">81</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoService;
<a name="82" href="#82">82</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoSession;
<a name="83" href="#83">83</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.IoSessionDataStructureFactory;
<a name="84" href="#84">84</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.common.TransportMetadata;
<a name="85" href="#85">85</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.filter.executor.ExecutorFilter;
<a name="86" href="#86">86</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.beans.CollectionEditor;
<a name="87" href="#87">87</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.beans.ListEditor;
<a name="88" href="#88">88</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.beans.MapEditor;
<a name="89" href="#89">89</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.beans.PropertyEditorFactory;
<a name="90" href="#90">90</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.beans.SetEditor;
<a name="91" href="#91">91</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.ognl.IoFilterPropertyAccessor;
<a name="92" href="#92">92</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.ognl.IoServicePropertyAccessor;
<a name="93" href="#93">93</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.ognl.IoSessionPropertyAccessor;
<a name="94" href="#94">94</a>  <strong class="jxr_keyword">import</strong> org.apache.mina.integration.ognl.PropertyTypeConverter;
<a name="95" href="#95">95</a>  <strong class="jxr_keyword">import</strong> org.slf4j.Logger;
<a name="96" href="#96">96</a>  <strong class="jxr_keyword">import</strong> org.slf4j.LoggerFactory;
<a name="97" href="#97">97</a>  
<a name="98" href="#98">98</a>  <em class="jxr_javadoccomment">/**</em>
<a name="99" href="#99">99</a>  <em class="jxr_javadoccomment"> * A {@link ModelMBean} wrapper implementation for a POJO.</em>
<a name="100" href="#100">100</a> <em class="jxr_javadoccomment"> * </em>
<a name="101" href="#101">101</a> <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="102" href="#102">102</a> <em class="jxr_javadoccomment"> * @version $Rev: 601236 $, $Date: 2007-12-05 00:53:03 -0700 (Wed, 05 Dec 2007) $</em>
<a name="103" href="#103">103</a> <em class="jxr_javadoccomment"> * </em>
<a name="104" href="#104">104</a> <em class="jxr_javadoccomment"> * @param &lt;T&gt; the type of the managed object</em>
<a name="105" href="#105">105</a> <em class="jxr_javadoccomment"> */</em>
<a name="106" href="#106">106</a> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> ObjectMBean&lt;T&gt; implements ModelMBean, MBeanRegistration {
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Map&lt;ObjectName, Object&gt; sources =
<a name="109" href="#109">109</a>         <strong class="jxr_keyword">new</strong> ConcurrentHashMap&lt;ObjectName, Object&gt;();
<a name="110" href="#110">110</a>     
<a name="111" href="#111">111</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Object getSource(ObjectName oname) {
<a name="112" href="#112">112</a>         <strong class="jxr_keyword">return</strong> sources.get(oname);
<a name="113" href="#113">113</a>     }
<a name="114" href="#114">114</a>     
<a name="115" href="#115">115</a>     <strong class="jxr_keyword">static</strong> {
<a name="116" href="#116">116</a>         OgnlRuntime.setPropertyAccessor(IoService.<strong class="jxr_keyword">class</strong>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/ognl/IoServicePropertyAccessor.html">IoServicePropertyAccessor</a>());
<a name="117" href="#117">117</a>         OgnlRuntime.setPropertyAccessor(IoSession.<strong class="jxr_keyword">class</strong>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/ognl/IoSessionPropertyAccessor.html">IoSessionPropertyAccessor</a>());
<a name="118" href="#118">118</a>         OgnlRuntime.setPropertyAccessor(IoFilter.<strong class="jxr_keyword">class</strong>, <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/ognl/IoFilterPropertyAccessor.html">IoFilterPropertyAccessor</a>());
<a name="119" href="#119">119</a>     }
<a name="120" href="#120">120</a>     
<a name="121" href="#121">121</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> Logger logger = LoggerFactory.getLogger(getClass());
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> T source;
<a name="124" href="#124">124</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../org/apache/mina/common/TransportMetadata.html">TransportMetadata</a> transportMetadata;
<a name="125" href="#125">125</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> MBeanInfo info;
<a name="126" href="#126">126</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Map&lt;String, PropertyDescriptor&gt; propertyDescriptors =
<a name="127" href="#127">127</a>         <strong class="jxr_keyword">new</strong> HashMap&lt;String, PropertyDescriptor&gt;();
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> TypeConverter typeConverter = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/jmx/ObjectMBean.html">OgnlTypeConverter</a>();
<a name="129" href="#129">129</a> 
<a name="130" href="#130">130</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> MBeanServer server;
<a name="131" href="#131">131</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">volatile</strong> ObjectName name;
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>     <em class="jxr_javadoccomment">/**</em>
<a name="134" href="#134">134</a> <em class="jxr_javadoccomment">     * Creates a new instance with the specified POJO.</em>
<a name="135" href="#135">135</a> <em class="jxr_javadoccomment">     */</em>
<a name="136" href="#136">136</a>     <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/integration/jmx/ObjectMBean.html">ObjectMBean</a>(T source) {
<a name="137" href="#137">137</a>         <strong class="jxr_keyword">if</strong> (source == <strong class="jxr_keyword">null</strong>) {
<a name="138" href="#138">138</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"source"</span>);
<a name="139" href="#139">139</a>         }
<a name="140" href="#140">140</a>         
<a name="141" href="#141">141</a>         <strong class="jxr_keyword">this</strong>.source = source;
<a name="142" href="#142">142</a>         
<a name="143" href="#143">143</a>         <strong class="jxr_keyword">if</strong> (source instanceof IoService) {
<a name="144" href="#144">144</a>             transportMetadata = ((IoService) source).getTransportMetadata();
<a name="145" href="#145">145</a>         } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (source instanceof IoSession) {
<a name="146" href="#146">146</a>             transportMetadata = ((IoSession) source).getTransportMetadata();
<a name="147" href="#147">147</a>         } <strong class="jxr_keyword">else</strong> {
<a name="148" href="#148">148</a>             transportMetadata = <strong class="jxr_keyword">null</strong>;
<a name="149" href="#149">149</a>         }
<a name="150" href="#150">150</a>         
<a name="151" href="#151">151</a>         <strong class="jxr_keyword">this</strong>.info = createModelMBeanInfo(source);
<a name="152" href="#152">152</a>     }
<a name="153" href="#153">153</a>     
<a name="154" href="#154">154</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> Object getAttribute(String fqan) <strong class="jxr_keyword">throws</strong> AttributeNotFoundException,
<a name="155" href="#155">155</a>             MBeanException, ReflectionException {
<a name="156" href="#156">156</a>         <strong class="jxr_keyword">try</strong> {
<a name="157" href="#157">157</a>             <strong class="jxr_keyword">return</strong> convertValue(source.getClass(), fqan, getAttribute0(fqan), false);
<a name="158" href="#158">158</a>         } <strong class="jxr_keyword">catch</strong> (AttributeNotFoundException e) {
<a name="159" href="#159">159</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="160" href="#160">160</a>             throwMBeanException(e);
<a name="161" href="#161">161</a>         }
<a name="162" href="#162">162</a>         
<a name="163" href="#163">163</a>         <strong class="jxr_keyword">try</strong> {
<a name="164" href="#164">164</a>             PropertyDescriptor pdesc = propertyDescriptors.get(fqan);
<a name="165" href="#165">165</a>             Object parent = getParent(fqan);
<a name="166" href="#166">166</a>             <strong class="jxr_keyword">boolean</strong> writable = isWritable(source.getClass(), pdesc);
<a name="167" href="#167">167</a>             
<a name="168" href="#168">168</a>             <strong class="jxr_keyword">return</strong> convertValue(
<a name="169" href="#169">169</a>                     parent.getClass(), getLeafAttributeName(fqan),
<a name="170" href="#170">170</a>                     getAttribute(source, fqan, pdesc.getPropertyType()),
<a name="171" href="#171">171</a>                     writable);
<a name="172" href="#172">172</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="173" href="#173">173</a>             throwMBeanException(e);
<a name="174" href="#174">174</a>         }
<a name="175" href="#175">175</a>         
<a name="176" href="#176">176</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="177" href="#177">177</a>     }
<a name="178" href="#178">178</a>     
<a name="179" href="#179">179</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> setAttribute(Attribute attribute)
<a name="180" href="#180">180</a>             <strong class="jxr_keyword">throws</strong> AttributeNotFoundException, MBeanException,
<a name="181" href="#181">181</a>             ReflectionException {
<a name="182" href="#182">182</a>         String aname = attribute.getName();
<a name="183" href="#183">183</a>         Object avalue = attribute.getValue();
<a name="184" href="#184">184</a>         
<a name="185" href="#185">185</a>         <strong class="jxr_keyword">try</strong> {
<a name="186" href="#186">186</a>             setAttribute0(aname, avalue);
<a name="187" href="#187">187</a>         } <strong class="jxr_keyword">catch</strong> (AttributeNotFoundException e) {
<a name="188" href="#188">188</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="189" href="#189">189</a>             throwMBeanException(e);
<a name="190" href="#190">190</a>         }
<a name="191" href="#191">191</a>         
<a name="192" href="#192">192</a>         PropertyDescriptor pdesc = propertyDescriptors.get(aname);
<a name="193" href="#193">193</a>         <strong class="jxr_keyword">if</strong> (pdesc == <strong class="jxr_keyword">null</strong>) {
<a name="194" href="#194">194</a>             throwMBeanException(<strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="195" href="#195">195</a>                     <span class="jxr_string">"Unknown attribute: "</span> + aname));
<a name="196" href="#196">196</a>         }
<a name="197" href="#197">197</a>         
<a name="198" href="#198">198</a>         <strong class="jxr_keyword">try</strong> {
<a name="199" href="#199">199</a>             PropertyEditor e = getPropertyEditor(
<a name="200" href="#200">200</a>                     getParent(aname).getClass(),
<a name="201" href="#201">201</a>                     pdesc.getName(), pdesc.getPropertyType());
<a name="202" href="#202">202</a>             e.setAsText((String) avalue);
<a name="203" href="#203">203</a>             OgnlContext ctx = (OgnlContext) Ognl.createDefaultContext(source);
<a name="204" href="#204">204</a>             ctx.setTypeConverter(typeConverter);
<a name="205" href="#205">205</a>             Ognl.setValue(aname, ctx, source, e.getValue());
<a name="206" href="#206">206</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="207" href="#207">207</a>             throwMBeanException(e);
<a name="208" href="#208">208</a>         }
<a name="209" href="#209">209</a>     }
<a name="210" href="#210">210</a>     
<a name="211" href="#211">211</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> Object invoke(String name, Object params[], String signature[])
<a name="212" href="#212">212</a>             <strong class="jxr_keyword">throws</strong> MBeanException, ReflectionException {
<a name="213" href="#213">213</a>     
<a name="214" href="#214">214</a>         <em class="jxr_comment">// Handle synthetic operations first.</em>
<a name="215" href="#215">215</a>         <strong class="jxr_keyword">if</strong> (name.equals(<span class="jxr_string">"unregisterMBean"</span>)) {
<a name="216" href="#216">216</a>             <strong class="jxr_keyword">try</strong> {
<a name="217" href="#217">217</a>                 server.unregisterMBean(<strong class="jxr_keyword">this</strong>.name);
<a name="218" href="#218">218</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="219" href="#219">219</a>             } <strong class="jxr_keyword">catch</strong> (InstanceNotFoundException e) {
<a name="220" href="#220">220</a>                 throwMBeanException(e);
<a name="221" href="#221">221</a>             }
<a name="222" href="#222">222</a>         }
<a name="223" href="#223">223</a>         
<a name="224" href="#224">224</a>         <strong class="jxr_keyword">try</strong> {
<a name="225" href="#225">225</a>             <strong class="jxr_keyword">return</strong> convertValue(
<a name="226" href="#226">226</a>                     <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, invoke0(name, params, signature), false);
<a name="227" href="#227">227</a>         } <strong class="jxr_keyword">catch</strong> (NoSuchMethodException e) {
<a name="228" href="#228">228</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="229" href="#229">229</a>             throwMBeanException(e);
<a name="230" href="#230">230</a>         }
<a name="231" href="#231">231</a>         
<a name="232" href="#232">232</a>         <em class="jxr_comment">// And then try reflection.</em>
<a name="233" href="#233">233</a>         Class&lt;?&gt;[] paramTypes = <strong class="jxr_keyword">new</strong> Class[signature.length];
<a name="234" href="#234">234</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; paramTypes.length; i ++) {
<a name="235" href="#235">235</a>             <strong class="jxr_keyword">try</strong> {
<a name="236" href="#236">236</a>                 paramTypes[i] = getAttributeClass(signature[i]);
<a name="237" href="#237">237</a>             } <strong class="jxr_keyword">catch</strong> (ClassNotFoundException e) {
<a name="238" href="#238">238</a>                 throwMBeanException(e);
<a name="239" href="#239">239</a>             }
<a name="240" href="#240">240</a>             
<a name="241" href="#241">241</a>             PropertyEditor e = getPropertyEditor(
<a name="242" href="#242">242</a>                     source.getClass(), <span class="jxr_string">"p"</span> + i, paramTypes[i]);
<a name="243" href="#243">243</a>             <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="244" href="#244">244</a>                 throwMBeanException(<strong class="jxr_keyword">new</strong> RuntimeException(<span class="jxr_string">"Conversion failure: "</span> + params[i]));
<a name="245" href="#245">245</a>             }
<a name="246" href="#246">246</a>             
<a name="247" href="#247">247</a>             e.setValue(params[i]);
<a name="248" href="#248">248</a>             params[i] = e.getAsText();
<a name="249" href="#249">249</a>         }
<a name="250" href="#250">250</a>         
<a name="251" href="#251">251</a>         <strong class="jxr_keyword">try</strong> {
<a name="252" href="#252">252</a>             <em class="jxr_comment">// Find the right method.</em>
<a name="253" href="#253">253</a>             <strong class="jxr_keyword">for</strong> (Method m: source.getClass().getMethods()) {
<a name="254" href="#254">254</a>                 <strong class="jxr_keyword">if</strong> (!m.getName().equalsIgnoreCase(name)) {
<a name="255" href="#255">255</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="256" href="#256">256</a>                 }
<a name="257" href="#257">257</a>                 Class&lt;?&gt;[] methodParamTypes = m.getParameterTypes();
<a name="258" href="#258">258</a>                 <strong class="jxr_keyword">if</strong> (methodParamTypes.length != params.length) {
<a name="259" href="#259">259</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="260" href="#260">260</a>                 }
<a name="261" href="#261">261</a>                 
<a name="262" href="#262">262</a>                 Object[] convertedParams = <strong class="jxr_keyword">new</strong> Object[params.length];
<a name="263" href="#263">263</a>                 <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; params.length; i ++) {
<a name="264" href="#264">264</a>                     <strong class="jxr_keyword">if</strong> (Iterable.<strong class="jxr_keyword">class</strong>.isAssignableFrom(methodParamTypes[i])) {
<a name="265" href="#265">265</a>                         <em class="jxr_comment">// Generics are not supported.</em>
<a name="266" href="#266">266</a>                         convertedParams = <strong class="jxr_keyword">null</strong>;
<a name="267" href="#267">267</a>                         <strong class="jxr_keyword">break</strong>;
<a name="268" href="#268">268</a>                     }
<a name="269" href="#269">269</a>                     PropertyEditor e = getPropertyEditor(source.getClass(), <span class="jxr_string">"p"</span> + i, methodParamTypes[i]);
<a name="270" href="#270">270</a>                     <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="271" href="#271">271</a>                         convertedParams = <strong class="jxr_keyword">null</strong>;
<a name="272" href="#272">272</a>                         <strong class="jxr_keyword">break</strong>;
<a name="273" href="#273">273</a>                     }
<a name="274" href="#274">274</a> 
<a name="275" href="#275">275</a>                     e.setAsText((String) params[i]);
<a name="276" href="#276">276</a>                     convertedParams[i] = e.getValue();
<a name="277" href="#277">277</a>                 }
<a name="278" href="#278">278</a>                 <strong class="jxr_keyword">if</strong> (convertedParams == <strong class="jxr_keyword">null</strong>) {
<a name="279" href="#279">279</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="280" href="#280">280</a>                 }
<a name="281" href="#281">281</a>                 
<a name="282" href="#282">282</a>                 <strong class="jxr_keyword">return</strong> convertValue(
<a name="283" href="#283">283</a>                         <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, m.invoke(source, convertedParams), false);
<a name="284" href="#284">284</a>             }
<a name="285" href="#285">285</a>             
<a name="286" href="#286">286</a>             <em class="jxr_comment">// No methods matched.</em>
<a name="287" href="#287">287</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"Failed to find a matching operation: "</span> + name);
<a name="288" href="#288">288</a>         } <strong class="jxr_keyword">catch</strong> (Throwable e) {
<a name="289" href="#289">289</a>             throwMBeanException(e);
<a name="290" href="#290">290</a>         }
<a name="291" href="#291">291</a>         
<a name="292" href="#292">292</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalStateException();
<a name="293" href="#293">293</a>     }
<a name="294" href="#294">294</a> 
<a name="295" href="#295">295</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> T getSource() {
<a name="296" href="#296">296</a>         <strong class="jxr_keyword">return</strong> source;
<a name="297" href="#297">297</a>     }
<a name="298" href="#298">298</a>     
<a name="299" href="#299">299</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> MBeanServer getServer() {
<a name="300" href="#300">300</a>         <strong class="jxr_keyword">return</strong> server;
<a name="301" href="#301">301</a>     }
<a name="302" href="#302">302</a>     
<a name="303" href="#303">303</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> ObjectName getName() {
<a name="304" href="#304">304</a>         <strong class="jxr_keyword">return</strong> name;
<a name="305" href="#305">305</a>     }
<a name="306" href="#306">306</a> 
<a name="307" href="#307">307</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> MBeanInfo getMBeanInfo() {
<a name="308" href="#308">308</a>         <strong class="jxr_keyword">return</strong> info;
<a name="309" href="#309">309</a>     }
<a name="310" href="#310">310</a> 
<a name="311" href="#311">311</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> AttributeList getAttributes(String names[]) {
<a name="312" href="#312">312</a>         AttributeList answer = <strong class="jxr_keyword">new</strong> AttributeList();
<a name="313" href="#313">313</a>         <strong class="jxr_keyword">for</strong> (<strong class="jxr_keyword">int</strong> i = 0; i &lt; names.length; i++) {
<a name="314" href="#314">314</a>             <strong class="jxr_keyword">try</strong> {
<a name="315" href="#315">315</a>                 answer.add(<strong class="jxr_keyword">new</strong> Attribute(names[i], getAttribute(names[i])));
<a name="316" href="#316">316</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="317" href="#317">317</a>                 <em class="jxr_comment">// Ignore.</em>
<a name="318" href="#318">318</a>             }
<a name="319" href="#319">319</a>         }
<a name="320" href="#320">320</a>         <strong class="jxr_keyword">return</strong> answer;
<a name="321" href="#321">321</a>     }
<a name="322" href="#322">322</a> 
<a name="323" href="#323">323</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> AttributeList setAttributes(AttributeList attributes) {
<a name="324" href="#324">324</a>         <em class="jxr_comment">// Prepare and return our response, eating all exceptions</em>
<a name="325" href="#325">325</a>         String names[] = <strong class="jxr_keyword">new</strong> String[attributes.size()];
<a name="326" href="#326">326</a>         <strong class="jxr_keyword">int</strong> n = 0;
<a name="327" href="#327">327</a>         Iterator&lt;Object&gt; items = attributes.iterator();
<a name="328" href="#328">328</a>         <strong class="jxr_keyword">while</strong> (items.hasNext()) {
<a name="329" href="#329">329</a>             Attribute item = (Attribute) items.next();
<a name="330" href="#330">330</a>             names[n++] = item.getName();
<a name="331" href="#331">331</a>             <strong class="jxr_keyword">try</strong> {
<a name="332" href="#332">332</a>                 setAttribute(item);
<a name="333" href="#333">333</a>             } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="334" href="#334">334</a>                 ; <em class="jxr_comment">// Ignore all exceptions</em>
<a name="335" href="#335">335</a>             }
<a name="336" href="#336">336</a>         }
<a name="337" href="#337">337</a>     
<a name="338" href="#338">338</a>         <strong class="jxr_keyword">return</strong> getAttributes(names);
<a name="339" href="#339">339</a>     }
<a name="340" href="#340">340</a> 
<a name="341" href="#341">341</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> setManagedResource(Object resource, String type)
<a name="342" href="#342">342</a>             <strong class="jxr_keyword">throws</strong> InstanceNotFoundException, InvalidTargetObjectTypeException,
<a name="343" href="#343">343</a>             MBeanException {
<a name="344" href="#344">344</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="345" href="#345">345</a> 
<a name="346" href="#346">346</a>     }
<a name="347" href="#347">347</a> 
<a name="348" href="#348">348</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> setModelMBeanInfo(ModelMBeanInfo info) <strong class="jxr_keyword">throws</strong> MBeanException {
<a name="349" href="#349">349</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="350" href="#350">350</a>     }
<a name="351" href="#351">351</a> 
<a name="352" href="#352">352</a>     @Override
<a name="353" href="#353">353</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> String toString() {
<a name="354" href="#354">354</a>         <strong class="jxr_keyword">return</strong> source.toString();
<a name="355" href="#355">355</a>     }
<a name="356" href="#356">356</a> 
<a name="357" href="#357">357</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addAttributeChangeNotificationListener(
<a name="358" href="#358">358</a>             NotificationListener listener, String name, Object handback) {
<a name="359" href="#359">359</a>     }
<a name="360" href="#360">360</a> 
<a name="361" href="#361">361</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeAttributeChangeNotificationListener(
<a name="362" href="#362">362</a>             NotificationListener listener, String name)
<a name="363" href="#363">363</a>             <strong class="jxr_keyword">throws</strong> ListenerNotFoundException {
<a name="364" href="#364">364</a>     }
<a name="365" href="#365">365</a> 
<a name="366" href="#366">366</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendAttributeChangeNotification(
<a name="367" href="#367">367</a>             AttributeChangeNotification notification) <strong class="jxr_keyword">throws</strong> MBeanException {
<a name="368" href="#368">368</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="369" href="#369">369</a>     }
<a name="370" href="#370">370</a> 
<a name="371" href="#371">371</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendAttributeChangeNotification(Attribute oldValue,
<a name="372" href="#372">372</a>             Attribute newValue) <strong class="jxr_keyword">throws</strong> MBeanException {
<a name="373" href="#373">373</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="374" href="#374">374</a>     }
<a name="375" href="#375">375</a> 
<a name="376" href="#376">376</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendNotification(Notification notification)
<a name="377" href="#377">377</a>             <strong class="jxr_keyword">throws</strong> MBeanException {
<a name="378" href="#378">378</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="379" href="#379">379</a>     }
<a name="380" href="#380">380</a> 
<a name="381" href="#381">381</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> sendNotification(String message) <strong class="jxr_keyword">throws</strong> MBeanException {
<a name="382" href="#382">382</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="383" href="#383">383</a> 
<a name="384" href="#384">384</a>     }
<a name="385" href="#385">385</a> 
<a name="386" href="#386">386</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> addNotificationListener(NotificationListener listener,
<a name="387" href="#387">387</a>             NotificationFilter filter, Object handback)
<a name="388" href="#388">388</a>             <strong class="jxr_keyword">throws</strong> IllegalArgumentException {
<a name="389" href="#389">389</a>     }
<a name="390" href="#390">390</a> 
<a name="391" href="#391">391</a>     <strong class="jxr_keyword">public</strong> MBeanNotificationInfo[] getNotificationInfo() {
<a name="392" href="#392">392</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> MBeanNotificationInfo[0];
<a name="393" href="#393">393</a>     }
<a name="394" href="#394">394</a> 
<a name="395" href="#395">395</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> removeNotificationListener(NotificationListener listener)
<a name="396" href="#396">396</a>             <strong class="jxr_keyword">throws</strong> ListenerNotFoundException {
<a name="397" href="#397">397</a>     }
<a name="398" href="#398">398</a> 
<a name="399" href="#399">399</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> load() <strong class="jxr_keyword">throws</strong> InstanceNotFoundException, MBeanException,
<a name="400" href="#400">400</a>             RuntimeOperationsException {
<a name="401" href="#401">401</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="402" href="#402">402</a>     }
<a name="403" href="#403">403</a> 
<a name="404" href="#404">404</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> store() <strong class="jxr_keyword">throws</strong> InstanceNotFoundException, MBeanException,
<a name="405" href="#405">405</a>             RuntimeOperationsException {
<a name="406" href="#406">406</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> RuntimeOperationsException(<strong class="jxr_keyword">new</strong> UnsupportedOperationException());
<a name="407" href="#407">407</a>     }
<a name="408" href="#408">408</a> 
<a name="409" href="#409">409</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> ObjectName preRegister(MBeanServer server, ObjectName name)
<a name="410" href="#410">410</a>             <strong class="jxr_keyword">throws</strong> Exception {
<a name="411" href="#411">411</a>         <strong class="jxr_keyword">this</strong>.server = server;
<a name="412" href="#412">412</a>         <strong class="jxr_keyword">this</strong>.name = name;
<a name="413" href="#413">413</a>         <strong class="jxr_keyword">return</strong> name;
<a name="414" href="#414">414</a>     }
<a name="415" href="#415">415</a> 
<a name="416" href="#416">416</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> postRegister(Boolean registrationDone) {
<a name="417" href="#417">417</a>         <strong class="jxr_keyword">if</strong> (registrationDone) {
<a name="418" href="#418">418</a>             sources.put(name, source);
<a name="419" href="#419">419</a>         }
<a name="420" href="#420">420</a>     }
<a name="421" href="#421">421</a> 
<a name="422" href="#422">422</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> preDeregister() <strong class="jxr_keyword">throws</strong> Exception {
<a name="423" href="#423">423</a>     }
<a name="424" href="#424">424</a> 
<a name="425" href="#425">425</a>     <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">void</strong> postDeregister() {
<a name="426" href="#426">426</a>         sources.remove(name);
<a name="427" href="#427">427</a>         <strong class="jxr_keyword">this</strong>.server = <strong class="jxr_keyword">null</strong>;
<a name="428" href="#428">428</a>         <strong class="jxr_keyword">this</strong>.name = <strong class="jxr_keyword">null</strong>;
<a name="429" href="#429">429</a>     }
<a name="430" href="#430">430</a> 
<a name="431" href="#431">431</a>     <strong class="jxr_keyword">private</strong> MBeanInfo createModelMBeanInfo(T source) {
<a name="432" href="#432">432</a>         String className = source.getClass().getName();
<a name="433" href="#433">433</a>         String description = <span class="jxr_string">""</span>;
<a name="434" href="#434">434</a>         
<a name="435" href="#435">435</a>         ModelMBeanConstructorInfo[] constructors = <strong class="jxr_keyword">new</strong> ModelMBeanConstructorInfo[0];
<a name="436" href="#436">436</a>         ModelMBeanNotificationInfo[] notifications = <strong class="jxr_keyword">new</strong> ModelMBeanNotificationInfo[0];
<a name="437" href="#437">437</a>         
<a name="438" href="#438">438</a>         List&lt;ModelMBeanAttributeInfo&gt; attributes = <strong class="jxr_keyword">new</strong> ArrayList&lt;ModelMBeanAttributeInfo&gt;();
<a name="439" href="#439">439</a>         List&lt;ModelMBeanOperationInfo&gt; operations = <strong class="jxr_keyword">new</strong> ArrayList&lt;ModelMBeanOperationInfo&gt;();
<a name="440" href="#440">440</a>         
<a name="441" href="#441">441</a>         addAttributes(attributes, source);
<a name="442" href="#442">442</a>         addExtraAttributes(attributes);
<a name="443" href="#443">443</a>         
<a name="444" href="#444">444</a>         addOperations(operations, source);
<a name="445" href="#445">445</a>         addExtraOperations(operations);
<a name="446" href="#446">446</a>         operations.add(<strong class="jxr_keyword">new</strong> ModelMBeanOperationInfo(
<a name="447" href="#447">447</a>                 <span class="jxr_string">"unregisterMBean"</span>, <span class="jxr_string">"unregisterMBean"</span>,
<a name="448" href="#448">448</a>                 <strong class="jxr_keyword">new</strong> MBeanParameterInfo[0], <strong class="jxr_keyword">void</strong>.<strong class="jxr_keyword">class</strong>.getName(), 
<a name="449" href="#449">449</a>                 ModelMBeanOperationInfo.ACTION));
<a name="450" href="#450">450</a> 
<a name="451" href="#451">451</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ModelMBeanInfoSupport(
<a name="452" href="#452">452</a>                 className, description,
<a name="453" href="#453">453</a>                 attributes.toArray(<strong class="jxr_keyword">new</strong> ModelMBeanAttributeInfo[attributes.size()]),
<a name="454" href="#454">454</a>                 constructors,
<a name="455" href="#455">455</a>                 operations.toArray(<strong class="jxr_keyword">new</strong> ModelMBeanOperationInfo[operations.size()]),
<a name="456" href="#456">456</a>                 notifications);
<a name="457" href="#457">457</a>     }
<a name="458" href="#458">458</a>     
<a name="459" href="#459">459</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addAttributes(
<a name="460" href="#460">460</a>             List&lt;ModelMBeanAttributeInfo&gt; attributes, Object object) {
<a name="461" href="#461">461</a>         addAttributes(attributes, object, object.getClass(), <span class="jxr_string">""</span>);
<a name="462" href="#462">462</a>     }
<a name="463" href="#463">463</a> 
<a name="464" href="#464">464</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addAttributes(
<a name="465" href="#465">465</a>             List&lt;ModelMBeanAttributeInfo&gt; attributes,
<a name="466" href="#466">466</a>             Object object, Class&lt;?&gt; type, String prefix) {
<a name="467" href="#467">467</a>         
<a name="468" href="#468">468</a>         PropertyDescriptor[] pdescs;
<a name="469" href="#469">469</a>         <strong class="jxr_keyword">try</strong> {
<a name="470" href="#470">470</a>             pdescs = Introspector.getBeanInfo(type).getPropertyDescriptors();
<a name="471" href="#471">471</a>         } <strong class="jxr_keyword">catch</strong> (IntrospectionException e) {
<a name="472" href="#472">472</a>             <strong class="jxr_keyword">return</strong>;
<a name="473" href="#473">473</a>         }
<a name="474" href="#474">474</a> 
<a name="475" href="#475">475</a>         <strong class="jxr_keyword">for</strong> (PropertyDescriptor pdesc: pdescs) {
<a name="476" href="#476">476</a>             <em class="jxr_comment">// Ignore a write-only property.</em>
<a name="477" href="#477">477</a>             <strong class="jxr_keyword">if</strong> (pdesc.getReadMethod() == <strong class="jxr_keyword">null</strong>) {
<a name="478" href="#478">478</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="479" href="#479">479</a>             }
<a name="480" href="#480">480</a>             
<a name="481" href="#481">481</a>             <em class="jxr_comment">// Ignore unmanageable property.</em>
<a name="482" href="#482">482</a>             String attrName = pdesc.getName();
<a name="483" href="#483">483</a>             Class&lt;?&gt; attrType = pdesc.getPropertyType();
<a name="484" href="#484">484</a>             <strong class="jxr_keyword">if</strong> (attrName.equals(<span class="jxr_string">"class"</span>)) {
<a name="485" href="#485">485</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="486" href="#486">486</a>             }
<a name="487" href="#487">487</a>             <strong class="jxr_keyword">if</strong> (!isReadable(type, attrName)) {
<a name="488" href="#488">488</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="489" href="#489">489</a>             }
<a name="490" href="#490">490</a>             
<a name="491" href="#491">491</a>             <em class="jxr_comment">// Expand if possible.</em>
<a name="492" href="#492">492</a>             <strong class="jxr_keyword">if</strong> (isExpandable(type, attrName)) {
<a name="493" href="#493">493</a>                 expandAttribute(attributes, object, prefix, pdesc);
<a name="494" href="#494">494</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="495" href="#495">495</a>             }
<a name="496" href="#496">496</a>     
<a name="497" href="#497">497</a>             <em class="jxr_comment">// Ordinary property.</em>
<a name="498" href="#498">498</a>             String fqan = prefix + attrName;
<a name="499" href="#499">499</a>             <strong class="jxr_keyword">boolean</strong> writable = isWritable(type, pdesc);
<a name="500" href="#500">500</a>             attributes.add(<strong class="jxr_keyword">new</strong> ModelMBeanAttributeInfo(
<a name="501" href="#501">501</a>                     fqan, convertType(
<a name="502" href="#502">502</a>                             object.getClass(), attrName, attrType, writable).getName(),
<a name="503" href="#503">503</a>                     pdesc.getShortDescription(), <strong class="jxr_keyword">true</strong>, writable, false));
<a name="504" href="#504">504</a>             
<a name="505" href="#505">505</a>             propertyDescriptors.put(fqan, pdesc);
<a name="506" href="#506">506</a>         }
<a name="507" href="#507">507</a>     }
<a name="508" href="#508">508</a> 
<a name="509" href="#509">509</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">boolean</strong> isWritable(Class&lt;?&gt; type, PropertyDescriptor pdesc) {
<a name="510" href="#510">510</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a name="511" href="#511">511</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"type"</span>);
<a name="512" href="#512">512</a>         }
<a name="513" href="#513">513</a>         <strong class="jxr_keyword">if</strong> (pdesc == <strong class="jxr_keyword">null</strong>) {
<a name="514" href="#514">514</a>             <strong class="jxr_keyword">return</strong> false;
<a name="515" href="#515">515</a>         }
<a name="516" href="#516">516</a>         String attrName = pdesc.getName();
<a name="517" href="#517">517</a>         Class&lt;?&gt; attrType = pdesc.getPropertyType();
<a name="518" href="#518">518</a>         <strong class="jxr_keyword">boolean</strong> writable = pdesc.getWriteMethod() != <strong class="jxr_keyword">null</strong> || isWritable(type, attrName);
<a name="519" href="#519">519</a>         <strong class="jxr_keyword">if</strong> (getPropertyEditor(type, attrName, attrType) == <strong class="jxr_keyword">null</strong>) {
<a name="520" href="#520">520</a>             writable = false;
<a name="521" href="#521">521</a>         }
<a name="522" href="#522">522</a>         <strong class="jxr_keyword">return</strong> writable;
<a name="523" href="#523">523</a>     }
<a name="524" href="#524">524</a> 
<a name="525" href="#525">525</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> expandAttribute(
<a name="526" href="#526">526</a>             List&lt;ModelMBeanAttributeInfo&gt; attributes,
<a name="527" href="#527">527</a>             Object object, String prefix, PropertyDescriptor pdesc) {
<a name="528" href="#528">528</a>         Object property;
<a name="529" href="#529">529</a>         String attrName = pdesc.getName();
<a name="530" href="#530">530</a>         <strong class="jxr_keyword">try</strong> {
<a name="531" href="#531">531</a>             property = getAttribute(object, attrName, pdesc.getPropertyType());
<a name="532" href="#532">532</a>         } <strong class="jxr_keyword">catch</strong> (Exception e) {
<a name="533" href="#533">533</a>             logger.debug(<span class="jxr_string">"Unexpected exception."</span>, e);
<a name="534" href="#534">534</a>             <strong class="jxr_keyword">return</strong>;
<a name="535" href="#535">535</a>         }
<a name="536" href="#536">536</a> 
<a name="537" href="#537">537</a>         <strong class="jxr_keyword">if</strong> (property == <strong class="jxr_keyword">null</strong>) {
<a name="538" href="#538">538</a>             <strong class="jxr_keyword">return</strong>;
<a name="539" href="#539">539</a>         }
<a name="540" href="#540">540</a> 
<a name="541" href="#541">541</a>         addAttributes(
<a name="542" href="#542">542</a>                 attributes,
<a name="543" href="#543">543</a>                 property, property.getClass(),
<a name="544" href="#544">544</a>                 prefix + attrName + '.');
<a name="545" href="#545">545</a>     }
<a name="546" href="#546">546</a> 
<a name="547" href="#547">547</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> addOperations(
<a name="548" href="#548">548</a>             List&lt;ModelMBeanOperationInfo&gt; operations, Object object) {
<a name="549" href="#549">549</a>     
<a name="550" href="#550">550</a>         <strong class="jxr_keyword">for</strong> (Method m: object.getClass().getMethods()) {
<a name="551" href="#551">551</a>             String mname = m.getName();
<a name="552" href="#552">552</a>             
<a name="553" href="#553">553</a>             <em class="jxr_comment">// Ignore getters and setters.</em>
<a name="554" href="#554">554</a>             <strong class="jxr_keyword">if</strong> (mname.startsWith(<span class="jxr_string">"is"</span>) || mname.startsWith(<span class="jxr_string">"get"</span>) ||
<a name="555" href="#555">555</a>                 mname.startsWith(<span class="jxr_string">"set"</span>)) {
<a name="556" href="#556">556</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="557" href="#557">557</a>             }
<a name="558" href="#558">558</a>             
<a name="559" href="#559">559</a>             <em class="jxr_comment">// Ignore Object methods.</em>
<a name="560" href="#560">560</a>             <strong class="jxr_keyword">if</strong> (mname.matches(
<a name="561" href="#561">561</a>                     <span class="jxr_string">"(wait|notify|notifyAll|toString|equals|compareTo|hashCode|clone)"</span>)) {
<a name="562" href="#562">562</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="563" href="#563">563</a>             }
<a name="564" href="#564">564</a>             
<a name="565" href="#565">565</a>             <em class="jxr_comment">// Ignore other user-defined non-operations.</em>
<a name="566" href="#566">566</a>             <strong class="jxr_keyword">if</strong> (!isOperation(mname, m.getParameterTypes())) {
<a name="567" href="#567">567</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="568" href="#568">568</a>             }
<a name="569" href="#569">569</a>             
<a name="570" href="#570">570</a>             List&lt;MBeanParameterInfo&gt; signature = <strong class="jxr_keyword">new</strong> ArrayList&lt;MBeanParameterInfo&gt;();
<a name="571" href="#571">571</a>             <strong class="jxr_keyword">int</strong> i = 1;
<a name="572" href="#572">572</a>             <strong class="jxr_keyword">for</strong> (Class&lt;?&gt; paramType: m.getParameterTypes()) {
<a name="573" href="#573">573</a>                 String paramName = <span class="jxr_string">"p"</span> + (i ++);
<a name="574" href="#574">574</a>                 <strong class="jxr_keyword">if</strong> (getPropertyEditor(source.getClass(), paramName, paramType) == <strong class="jxr_keyword">null</strong>) {
<a name="575" href="#575">575</a>                     <strong class="jxr_keyword">continue</strong>;
<a name="576" href="#576">576</a>                 }
<a name="577" href="#577">577</a>                 signature.add(<strong class="jxr_keyword">new</strong> MBeanParameterInfo(
<a name="578" href="#578">578</a>                         paramName, convertType(
<a name="579" href="#579">579</a>                                 <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, paramType, <strong class="jxr_keyword">true</strong>).getName(),
<a name="580" href="#580">580</a>                         paramName));
<a name="581" href="#581">581</a>             }
<a name="582" href="#582">582</a>     
<a name="583" href="#583">583</a>             Class&lt;?&gt; returnType = convertType(<strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>, m.getReturnType(), false);
<a name="584" href="#584">584</a>             operations.add(<strong class="jxr_keyword">new</strong> ModelMBeanOperationInfo(
<a name="585" href="#585">585</a>                     m.getName(), m.getName(),
<a name="586" href="#586">586</a>                     signature.toArray(<strong class="jxr_keyword">new</strong> MBeanParameterInfo[signature.size()]),
<a name="587" href="#587">587</a>                     returnType.getName(), ModelMBeanOperationInfo.ACTION));
<a name="588" href="#588">588</a>         }
<a name="589" href="#589">589</a>     }
<a name="590" href="#590">590</a> 
<a name="591" href="#591">591</a>     <strong class="jxr_keyword">private</strong> Object getParent(String fqan) <strong class="jxr_keyword">throws</strong> OgnlException {
<a name="592" href="#592">592</a>         Object parent;
<a name="593" href="#593">593</a>         <strong class="jxr_keyword">int</strong> dotIndex = fqan.lastIndexOf('.');
<a name="594" href="#594">594</a>         <strong class="jxr_keyword">if</strong> (dotIndex &lt; 0) {
<a name="595" href="#595">595</a>             parent = source;
<a name="596" href="#596">596</a>         } <strong class="jxr_keyword">else</strong> {
<a name="597" href="#597">597</a>             parent = getAttribute(source, fqan.substring(0, dotIndex), <strong class="jxr_keyword">null</strong>);
<a name="598" href="#598">598</a>         }
<a name="599" href="#599">599</a>         <strong class="jxr_keyword">return</strong> parent;
<a name="600" href="#600">600</a>     }
<a name="601" href="#601">601</a> 
<a name="602" href="#602">602</a>     <strong class="jxr_keyword">private</strong> String getLeafAttributeName(String fqan) {
<a name="603" href="#603">603</a>         <strong class="jxr_keyword">int</strong> dotIndex = fqan.lastIndexOf('.');
<a name="604" href="#604">604</a>         <strong class="jxr_keyword">if</strong> (dotIndex &lt; 0) {
<a name="605" href="#605">605</a>             <strong class="jxr_keyword">return</strong> fqan;
<a name="606" href="#606">606</a>         }
<a name="607" href="#607">607</a>         <strong class="jxr_keyword">return</strong> fqan.substring(dotIndex + 1);
<a name="608" href="#608">608</a>     }
<a name="609" href="#609">609</a> 
<a name="610" href="#610">610</a>     <strong class="jxr_keyword">private</strong> Class&lt;?&gt; getAttributeClass(String signature)
<a name="611" href="#611">611</a>             <strong class="jxr_keyword">throws</strong> ClassNotFoundException {
<a name="612" href="#612">612</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Boolean.TYPE.getName())) {
<a name="613" href="#613">613</a>             <strong class="jxr_keyword">return</strong> Boolean.TYPE;
<a name="614" href="#614">614</a>         }
<a name="615" href="#615">615</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Byte.TYPE.getName())) {
<a name="616" href="#616">616</a>             <strong class="jxr_keyword">return</strong> Byte.TYPE;
<a name="617" href="#617">617</a>         }
<a name="618" href="#618">618</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Character.TYPE.getName())) {
<a name="619" href="#619">619</a>             <strong class="jxr_keyword">return</strong> Character.TYPE;
<a name="620" href="#620">620</a>         }
<a name="621" href="#621">621</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Double.TYPE.getName())) {
<a name="622" href="#622">622</a>             <strong class="jxr_keyword">return</strong> Double.TYPE;
<a name="623" href="#623">623</a>         }
<a name="624" href="#624">624</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Float.TYPE.getName())) {
<a name="625" href="#625">625</a>             <strong class="jxr_keyword">return</strong> Float.TYPE;
<a name="626" href="#626">626</a>         }
<a name="627" href="#627">627</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Integer.TYPE.getName())) {
<a name="628" href="#628">628</a>             <strong class="jxr_keyword">return</strong> Integer.TYPE;
<a name="629" href="#629">629</a>         }
<a name="630" href="#630">630</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Long.TYPE.getName())) {
<a name="631" href="#631">631</a>             <strong class="jxr_keyword">return</strong> Long.TYPE;
<a name="632" href="#632">632</a>         }
<a name="633" href="#633">633</a>         <strong class="jxr_keyword">if</strong> (signature.equals(Short.TYPE.getName())) {
<a name="634" href="#634">634</a>             <strong class="jxr_keyword">return</strong> Short.TYPE;
<a name="635" href="#635">635</a>         }
<a name="636" href="#636">636</a>     
<a name="637" href="#637">637</a>         <strong class="jxr_keyword">try</strong> {
<a name="638" href="#638">638</a>             ClassLoader cl = Thread.currentThread().getContextClassLoader();
<a name="639" href="#639">639</a>             <strong class="jxr_keyword">if</strong> (cl != <strong class="jxr_keyword">null</strong>) {
<a name="640" href="#640">640</a>                 <strong class="jxr_keyword">return</strong> cl.loadClass(signature);
<a name="641" href="#641">641</a>             }
<a name="642" href="#642">642</a>         } <strong class="jxr_keyword">catch</strong> (ClassNotFoundException e) {
<a name="643" href="#643">643</a>         }
<a name="644" href="#644">644</a>         
<a name="645" href="#645">645</a>         <strong class="jxr_keyword">return</strong> Class.forName(signature);
<a name="646" href="#646">646</a>     }
<a name="647" href="#647">647</a> 
<a name="648" href="#648">648</a>     <strong class="jxr_keyword">private</strong> Object getAttribute(Object object, String fqan, Class&lt;?&gt; attrType) <strong class="jxr_keyword">throws</strong> OgnlException {
<a name="649" href="#649">649</a>         Object property;
<a name="650" href="#650">650</a>         OgnlContext ctx = (OgnlContext) Ognl.createDefaultContext(object);
<a name="651" href="#651">651</a>         ctx.setTypeConverter(<strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/jmx/ObjectMBean.html">OgnlTypeConverter</a>());
<a name="652" href="#652">652</a>         <strong class="jxr_keyword">if</strong> (attrType == <strong class="jxr_keyword">null</strong>) {
<a name="653" href="#653">653</a>             property = Ognl.getValue(fqan, ctx, object);
<a name="654" href="#654">654</a>         } <strong class="jxr_keyword">else</strong> {
<a name="655" href="#655">655</a>             property = Ognl.getValue(fqan, ctx, object, attrType);
<a name="656" href="#656">656</a>         }
<a name="657" href="#657">657</a>         <strong class="jxr_keyword">return</strong> property;
<a name="658" href="#658">658</a>     }
<a name="659" href="#659">659</a>     
<a name="660" href="#660">660</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="661" href="#661">661</a>     <strong class="jxr_keyword">private</strong> Class&lt;?&gt; convertType(Class&lt;?&gt; type, String attrName, Class&lt;?&gt; attrType, <strong class="jxr_keyword">boolean</strong> writable) {
<a name="662" href="#662">662</a>         <strong class="jxr_keyword">if</strong> (attrName != <strong class="jxr_keyword">null</strong> &amp;&amp; (attrType == Long.<strong class="jxr_keyword">class</strong> || attrType == <strong class="jxr_keyword">long</strong>.<strong class="jxr_keyword">class</strong>)) {
<a name="663" href="#663">663</a>             <strong class="jxr_keyword">if</strong> (attrName.endsWith(<span class="jxr_string">"Time"</span>) &amp;&amp;
<a name="664" href="#664">664</a>                     attrName.indexOf(<span class="jxr_string">"Total"</span>) &lt; 0 &amp;&amp;
<a name="665" href="#665">665</a>                     attrName.indexOf(<span class="jxr_string">"Min"</span>) &lt; 0 &amp;&amp;
<a name="666" href="#666">666</a>                     attrName.indexOf(<span class="jxr_string">"Max"</span>) &lt; 0 &amp;&amp;
<a name="667" href="#667">667</a>                     attrName.indexOf(<span class="jxr_string">"Avg"</span>) &lt; 0 &amp;&amp;
<a name="668" href="#668">668</a>                     attrName.indexOf(<span class="jxr_string">"Average"</span>) &lt; 0 &amp;&amp;
<a name="669" href="#669">669</a>                     !propertyDescriptors.containsKey(attrName + <span class="jxr_string">"InMillis"</span>)) {
<a name="670" href="#670">670</a>                 <strong class="jxr_keyword">return</strong> Date.<strong class="jxr_keyword">class</strong>;
<a name="671" href="#671">671</a>             }
<a name="672" href="#672">672</a>         }
<a name="673" href="#673">673</a> 
<a name="674" href="#674">674</a>         <strong class="jxr_keyword">if</strong> (IoFilterChain.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="675" href="#675">675</a>             <strong class="jxr_keyword">return</strong> Map.<strong class="jxr_keyword">class</strong>;
<a name="676" href="#676">676</a>         }
<a name="677" href="#677">677</a>         
<a name="678" href="#678">678</a>         <strong class="jxr_keyword">if</strong> (IoFilterChainBuilder.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="679" href="#679">679</a>             <strong class="jxr_keyword">return</strong> Map.<strong class="jxr_keyword">class</strong>;
<a name="680" href="#680">680</a>         }
<a name="681" href="#681">681</a>         
<a name="682" href="#682">682</a>         <strong class="jxr_keyword">if</strong> (!writable) {
<a name="683" href="#683">683</a>             <strong class="jxr_keyword">if</strong> (Collection.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType) ||
<a name="684" href="#684">684</a>                     Map.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="685" href="#685">685</a>                 <strong class="jxr_keyword">if</strong> (List.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="686" href="#686">686</a>                     <strong class="jxr_keyword">return</strong> List.<strong class="jxr_keyword">class</strong>;
<a name="687" href="#687">687</a>                 }
<a name="688" href="#688">688</a>                 <strong class="jxr_keyword">if</strong> (Set.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="689" href="#689">689</a>                     <strong class="jxr_keyword">return</strong> Set.<strong class="jxr_keyword">class</strong>;
<a name="690" href="#690">690</a>                 }
<a name="691" href="#691">691</a>                 <strong class="jxr_keyword">if</strong> (Map.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="692" href="#692">692</a>                     <strong class="jxr_keyword">return</strong> Map.<strong class="jxr_keyword">class</strong>;
<a name="693" href="#693">693</a>                 }
<a name="694" href="#694">694</a>                 <strong class="jxr_keyword">return</strong> Collection.<strong class="jxr_keyword">class</strong>;
<a name="695" href="#695">695</a>             }
<a name="696" href="#696">696</a>             
<a name="697" href="#697">697</a>             <strong class="jxr_keyword">if</strong> (attrType.isPrimitive() ||
<a name="698" href="#698">698</a>                     Date.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType) ||
<a name="699" href="#699">699</a>                     Boolean.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType) ||
<a name="700" href="#700">700</a>                     Character.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType) ||
<a name="701" href="#701">701</a>                     Number.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="702" href="#702">702</a>                 <strong class="jxr_keyword">if</strong> (attrName == <strong class="jxr_keyword">null</strong> || !attrName.endsWith(<span class="jxr_string">"InMillis"</span>) ||
<a name="703" href="#703">703</a>                         !propertyDescriptors.containsKey(
<a name="704" href="#704">704</a>                                 attrName.substring(0, attrName.length() - 8))) {
<a name="705" href="#705">705</a>                     <strong class="jxr_keyword">return</strong> attrType;
<a name="706" href="#706">706</a>                 }
<a name="707" href="#707">707</a>             }
<a name="708" href="#708">708</a>         }
<a name="709" href="#709">709</a>         
<a name="710" href="#710">710</a>         <strong class="jxr_keyword">return</strong> String.<strong class="jxr_keyword">class</strong>;
<a name="711" href="#711">711</a>     }
<a name="712" href="#712">712</a> 
<a name="713" href="#713">713</a>     <strong class="jxr_keyword">private</strong> Object convertValue(Class&lt;?&gt; type, String attrName, Object v, <strong class="jxr_keyword">boolean</strong> writable) {
<a name="714" href="#714">714</a>         <strong class="jxr_keyword">if</strong> (v == <strong class="jxr_keyword">null</strong>) {
<a name="715" href="#715">715</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="716" href="#716">716</a>         }
<a name="717" href="#717">717</a>         
<a name="718" href="#718">718</a>         <strong class="jxr_keyword">if</strong> (attrName != <strong class="jxr_keyword">null</strong> &amp;&amp; v instanceof Long) {
<a name="719" href="#719">719</a>             <strong class="jxr_keyword">if</strong> (attrName.endsWith(<span class="jxr_string">"Time"</span>) &amp;&amp;
<a name="720" href="#720">720</a>                     attrName.indexOf(<span class="jxr_string">"Total"</span>) &lt; 0 &amp;&amp;
<a name="721" href="#721">721</a>                     attrName.indexOf(<span class="jxr_string">"Min"</span>) &lt; 0 &amp;&amp;
<a name="722" href="#722">722</a>                     attrName.indexOf(<span class="jxr_string">"Max"</span>) &lt; 0 &amp;&amp;
<a name="723" href="#723">723</a>                     attrName.indexOf(<span class="jxr_string">"Avg"</span>) &lt; 0 &amp;&amp;
<a name="724" href="#724">724</a>                     attrName.indexOf(<span class="jxr_string">"Average"</span>) &lt; 0 &amp;&amp;
<a name="725" href="#725">725</a>                     !propertyDescriptors.containsKey(attrName + <span class="jxr_string">"InMillis"</span>)) {
<a name="726" href="#726">726</a>                 <strong class="jxr_keyword">long</strong> time = (Long) v;
<a name="727" href="#727">727</a>                 <strong class="jxr_keyword">if</strong> (time &lt;= 0) {
<a name="728" href="#728">728</a>                     <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="729" href="#729">729</a>                 }
<a name="730" href="#730">730</a>                 System.out.println(<span class="jxr_string">"Converted to date"</span>);
<a name="731" href="#731">731</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> Date((Long) v);
<a name="732" href="#732">732</a>             }
<a name="733" href="#733">733</a>         }
<a name="734" href="#734">734</a> 
<a name="735" href="#735">735</a>         <strong class="jxr_keyword">if</strong> (v instanceof IoSessionDataStructureFactory ||
<a name="736" href="#736">736</a>             v instanceof <a href="../../../../../org/apache/mina/common/IoHandler.html">IoHandler</a>) {
<a name="737" href="#737">737</a>             <strong class="jxr_keyword">return</strong> v.getClass().getName();
<a name="738" href="#738">738</a>         }
<a name="739" href="#739">739</a>         
<a name="740" href="#740">740</a>         <strong class="jxr_keyword">if</strong> (v instanceof IoFilterChainBuilder) {
<a name="741" href="#741">741</a>             Map&lt;String, String&gt; filterMapping = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a name="742" href="#742">742</a>             <strong class="jxr_keyword">if</strong> (v instanceof DefaultIoFilterChainBuilder) {
<a name="743" href="#743">743</a>                 <strong class="jxr_keyword">for</strong> (IoFilterChain.Entry e: ((DefaultIoFilterChainBuilder) v).getAll()) {
<a name="744" href="#744">744</a>                     filterMapping.put(e.getName(), e.getFilter().getClass().getName());
<a name="745" href="#745">745</a>                 }
<a name="746" href="#746">746</a>             } <strong class="jxr_keyword">else</strong> {
<a name="747" href="#747">747</a>                 filterMapping.put(<span class="jxr_string">"Unknown builder type"</span>, v.getClass().getName());
<a name="748" href="#748">748</a>             }
<a name="749" href="#749">749</a>             <strong class="jxr_keyword">return</strong> filterMapping;
<a name="750" href="#750">750</a>         }
<a name="751" href="#751">751</a>     
<a name="752" href="#752">752</a>         <strong class="jxr_keyword">if</strong> (v instanceof IoFilterChain) {
<a name="753" href="#753">753</a>             Map&lt;String, String&gt; filterMapping = <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;String, String&gt;();
<a name="754" href="#754">754</a>             <strong class="jxr_keyword">for</strong> (IoFilterChain.Entry e: ((IoFilterChain) v).getAll()) {
<a name="755" href="#755">755</a>                 filterMapping.put(e.getName(), e.getFilter().getClass().getName());
<a name="756" href="#756">756</a>             }
<a name="757" href="#757">757</a>             <strong class="jxr_keyword">return</strong> filterMapping;
<a name="758" href="#758">758</a>         }
<a name="759" href="#759">759</a>         
<a name="760" href="#760">760</a>         <strong class="jxr_keyword">if</strong> (!writable) {
<a name="761" href="#761">761</a>             <strong class="jxr_keyword">if</strong> (v instanceof Collection || v instanceof Map) {
<a name="762" href="#762">762</a>                 <strong class="jxr_keyword">if</strong> (v instanceof List) {
<a name="763" href="#763">763</a>                     <strong class="jxr_keyword">return</strong> convertCollection(v, <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;());
<a name="764" href="#764">764</a>                 }
<a name="765" href="#765">765</a>                 <strong class="jxr_keyword">if</strong> (v instanceof Set) {
<a name="766" href="#766">766</a>                     <strong class="jxr_keyword">return</strong> convertCollection(v, <strong class="jxr_keyword">new</strong> LinkedHashSet&lt;Object&gt;());
<a name="767" href="#767">767</a>                 }
<a name="768" href="#768">768</a>                 <strong class="jxr_keyword">if</strong> (v instanceof Map) {
<a name="769" href="#769">769</a>                     <strong class="jxr_keyword">return</strong> convertCollection(v, <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;Object, Object&gt;());
<a name="770" href="#770">770</a>                 }
<a name="771" href="#771">771</a>                 <strong class="jxr_keyword">return</strong> convertCollection(v, <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;());
<a name="772" href="#772">772</a>             }
<a name="773" href="#773">773</a>             
<a name="774" href="#774">774</a>             <strong class="jxr_keyword">if</strong> (v instanceof Date ||
<a name="775" href="#775">775</a>                     v instanceof Boolean ||
<a name="776" href="#776">776</a>                     v instanceof Character ||
<a name="777" href="#777">777</a>                     v instanceof Number) {
<a name="778" href="#778">778</a>                 <strong class="jxr_keyword">if</strong> (attrName == <strong class="jxr_keyword">null</strong> || !attrName.endsWith(<span class="jxr_string">"InMillis"</span>) ||
<a name="779" href="#779">779</a>                         !propertyDescriptors.containsKey(
<a name="780" href="#780">780</a>                                 attrName.substring(0, attrName.length() - 8))) {
<a name="781" href="#781">781</a>                     <strong class="jxr_keyword">return</strong> v;
<a name="782" href="#782">782</a>                 }
<a name="783" href="#783">783</a>             }
<a name="784" href="#784">784</a>         }
<a name="785" href="#785">785</a>         
<a name="786" href="#786">786</a>         PropertyEditor editor = getPropertyEditor(type, attrName, v.getClass());
<a name="787" href="#787">787</a>         <strong class="jxr_keyword">if</strong> (editor != <strong class="jxr_keyword">null</strong>) {
<a name="788" href="#788">788</a>             editor.setValue(v);
<a name="789" href="#789">789</a>             <strong class="jxr_keyword">return</strong> editor.getAsText();
<a name="790" href="#790">790</a>         }
<a name="791" href="#791">791</a>         
<a name="792" href="#792">792</a>         <strong class="jxr_keyword">return</strong> v.toString();
<a name="793" href="#793">793</a>     }
<a name="794" href="#794">794</a>     
<a name="795" href="#795">795</a>     <strong class="jxr_keyword">private</strong> Object convertCollection(Object src, Collection&lt;Object&gt; dst) {
<a name="796" href="#796">796</a>         Collection&lt;?&gt; srcCol = (Collection&lt;?&gt;) src;
<a name="797" href="#797">797</a>         <strong class="jxr_keyword">for</strong> (Object e: srcCol) {
<a name="798" href="#798">798</a>             Object convertedValue = convertValue(dst.getClass(), <span class="jxr_string">"element"</span>, e, false);
<a name="799" href="#799">799</a>             <strong class="jxr_keyword">if</strong> (e != <strong class="jxr_keyword">null</strong> &amp;&amp; convertedValue == <strong class="jxr_keyword">null</strong>) {
<a name="800" href="#800">800</a>                 convertedValue = e.toString();
<a name="801" href="#801">801</a>             }
<a name="802" href="#802">802</a>             dst.add(convertedValue);
<a name="803" href="#803">803</a>         }
<a name="804" href="#804">804</a>         <strong class="jxr_keyword">return</strong> dst;
<a name="805" href="#805">805</a>     }
<a name="806" href="#806">806</a> 
<a name="807" href="#807">807</a>     <strong class="jxr_keyword">private</strong> Object convertCollection(Object src, Map&lt;Object, Object&gt; dst) {
<a name="808" href="#808">808</a>         Map&lt;?, ?&gt; srcCol = (Map&lt;?, ?&gt;) src;
<a name="809" href="#809">809</a>         <strong class="jxr_keyword">for</strong> (Map.Entry&lt;?, ?&gt; e: srcCol.entrySet()) {
<a name="810" href="#810">810</a>             Object convertedKey = convertValue(dst.getClass(), <span class="jxr_string">"key"</span>, e.getKey(), false);
<a name="811" href="#811">811</a>             Object convertedValue = convertValue(dst.getClass(), <span class="jxr_string">"value"</span>, e.getValue(), false);
<a name="812" href="#812">812</a>             <strong class="jxr_keyword">if</strong> (e.getKey() != <strong class="jxr_keyword">null</strong> &amp;&amp; convertedKey == <strong class="jxr_keyword">null</strong>) {
<a name="813" href="#813">813</a>                 convertedKey = e.getKey().toString();
<a name="814" href="#814">814</a>             }
<a name="815" href="#815">815</a>             <strong class="jxr_keyword">if</strong> (e.getValue() != <strong class="jxr_keyword">null</strong> &amp;&amp; convertedValue == <strong class="jxr_keyword">null</strong>) {
<a name="816" href="#816">816</a>                 convertedKey = e.getValue().toString();
<a name="817" href="#817">817</a>             }
<a name="818" href="#818">818</a>             dst.put(convertedKey, convertedValue);
<a name="819" href="#819">819</a>         }
<a name="820" href="#820">820</a>         <strong class="jxr_keyword">return</strong> dst;
<a name="821" href="#821">821</a>     }
<a name="822" href="#822">822</a> 
<a name="823" href="#823">823</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">void</strong> throwMBeanException(Throwable e) <strong class="jxr_keyword">throws</strong> MBeanException {
<a name="824" href="#824">824</a>         <strong class="jxr_keyword">if</strong> (e instanceof OgnlException) {
<a name="825" href="#825">825</a>             OgnlException ognle = (OgnlException) e;
<a name="826" href="#826">826</a>             <strong class="jxr_keyword">if</strong> (ognle.getReason() != <strong class="jxr_keyword">null</strong>) {
<a name="827" href="#827">827</a>                 throwMBeanException(ognle.getReason());
<a name="828" href="#828">828</a>             } <strong class="jxr_keyword">else</strong> {
<a name="829" href="#829">829</a>                 String message = ognle.getMessage();
<a name="830" href="#830">830</a>                 <strong class="jxr_keyword">if</strong> (e instanceof NoSuchPropertyException) {
<a name="831" href="#831">831</a>                     message = <span class="jxr_string">"No such property: "</span> + message;
<a name="832" href="#832">832</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e instanceof ExpressionSyntaxException) {
<a name="833" href="#833">833</a>                     message = <span class="jxr_string">"Illegal expression syntax: "</span> + message;
<a name="834" href="#834">834</a>                 } <strong class="jxr_keyword">else</strong> <strong class="jxr_keyword">if</strong> (e instanceof InappropriateExpressionException) {
<a name="835" href="#835">835</a>                     message = <span class="jxr_string">"Inappropriate expression: "</span> + message;
<a name="836" href="#836">836</a>                 }
<a name="837" href="#837">837</a>                 e = <strong class="jxr_keyword">new</strong> IllegalArgumentException(ognle.getMessage());
<a name="838" href="#838">838</a>                 e.setStackTrace(ognle.getStackTrace());
<a name="839" href="#839">839</a>             }
<a name="840" href="#840">840</a>         }
<a name="841" href="#841">841</a>         <strong class="jxr_keyword">if</strong> (e instanceof InvocationTargetException) {
<a name="842" href="#842">842</a>             throwMBeanException(e.getCause());
<a name="843" href="#843">843</a>         }
<a name="844" href="#844">844</a>         
<a name="845" href="#845">845</a>         logger.warn(<span class="jxr_string">"Unexpected exception."</span>, e);
<a name="846" href="#846">846</a>         <strong class="jxr_keyword">if</strong> (e.getClass().getPackage().getName().matches(<span class="jxr_string">"javax?&#92;&#92;..+"</span>)) {
<a name="847" href="#847">847</a>             <strong class="jxr_keyword">if</strong> (e instanceof Exception) {
<a name="848" href="#848">848</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MBeanException((Exception) e, e.getMessage());
<a name="849" href="#849">849</a>             } <strong class="jxr_keyword">else</strong> {
<a name="850" href="#850">850</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MBeanException(
<a name="851" href="#851">851</a>                         <strong class="jxr_keyword">new</strong> RuntimeException(e), e.getMessage());
<a name="852" href="#852">852</a>             }
<a name="853" href="#853">853</a>         }
<a name="854" href="#854">854</a>         
<a name="855" href="#855">855</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> MBeanException(<strong class="jxr_keyword">new</strong> RuntimeException(
<a name="856" href="#856">856</a>                 e.getClass().getName() + <span class="jxr_string">": "</span> + e.getMessage()),
<a name="857" href="#857">857</a>                 e.getMessage());
<a name="858" href="#858">858</a>     }
<a name="859" href="#859">859</a> 
<a name="860" href="#860">860</a>     <strong class="jxr_keyword">protected</strong> Object getAttribute0(String fqan) <strong class="jxr_keyword">throws</strong> Exception {
<a name="861" href="#861">861</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> AttributeNotFoundException(fqan);
<a name="862" href="#862">862</a>     }
<a name="863" href="#863">863</a> 
<a name="864" href="#864">864</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="865" href="#865">865</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> setAttribute0(String attrName, Object attrValue) <strong class="jxr_keyword">throws</strong> Exception {
<a name="866" href="#866">866</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> AttributeNotFoundException(attrName);
<a name="867" href="#867">867</a>     }
<a name="868" href="#868">868</a> 
<a name="869" href="#869">869</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="870" href="#870">870</a>     <strong class="jxr_keyword">protected</strong> Object invoke0(String name, Object params[], String signature[]) <strong class="jxr_keyword">throws</strong> Exception {
<a name="871" href="#871">871</a>         <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NoSuchMethodException();
<a name="872" href="#872">872</a>     }
<a name="873" href="#873">873</a> 
<a name="874" href="#874">874</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isReadable(Class&lt;?&gt; type, String attrName) {
<a name="875" href="#875">875</a>         <strong class="jxr_keyword">if</strong> (IoService.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"filterChain"</span>)) {
<a name="876" href="#876">876</a>             <strong class="jxr_keyword">return</strong> false;
<a name="877" href="#877">877</a>         }
<a name="878" href="#878">878</a>         <strong class="jxr_keyword">if</strong> (IoService.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"localAddress"</span>)) {
<a name="879" href="#879">879</a>             <strong class="jxr_keyword">return</strong> false;
<a name="880" href="#880">880</a>         }
<a name="881" href="#881">881</a>         <strong class="jxr_keyword">if</strong> (IoService.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"defaultLocalAddress"</span>)) {
<a name="882" href="#882">882</a>             <strong class="jxr_keyword">return</strong> false;
<a name="883" href="#883">883</a>         }
<a name="884" href="#884">884</a>         <strong class="jxr_keyword">if</strong> (IoSession.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"attachment"</span>)) {
<a name="885" href="#885">885</a>             <strong class="jxr_keyword">return</strong> false;
<a name="886" href="#886">886</a>         }
<a name="887" href="#887">887</a>         <strong class="jxr_keyword">if</strong> (IoSession.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"attributeKeys"</span>)) {
<a name="888" href="#888">888</a>             <strong class="jxr_keyword">return</strong> false;
<a name="889" href="#889">889</a>         }
<a name="890" href="#890">890</a>         <strong class="jxr_keyword">if</strong> (IoSession.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"closeFuture"</span>)) {
<a name="891" href="#891">891</a>             <strong class="jxr_keyword">return</strong> false;
<a name="892" href="#892">892</a>         }
<a name="893" href="#893">893</a>         
<a name="894" href="#894">894</a>         <strong class="jxr_keyword">if</strong> (ThreadPoolExecutor.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"queue"</span>)) {
<a name="895" href="#895">895</a>             <strong class="jxr_keyword">return</strong> false;
<a name="896" href="#896">896</a>         }
<a name="897" href="#897">897</a> 
<a name="898" href="#898">898</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="899" href="#899">899</a>     }
<a name="900" href="#900">900</a>     
<a name="901" href="#901">901</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isWritable(Class&lt;?&gt; type, String attrName) {
<a name="902" href="#902">902</a>         <strong class="jxr_keyword">if</strong> (IoService.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.startsWith(<span class="jxr_string">"defaultLocalAddress"</span>)) {
<a name="903" href="#903">903</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="904" href="#904">904</a>         }
<a name="905" href="#905">905</a>         <strong class="jxr_keyword">return</strong> false;
<a name="906" href="#906">906</a>     }
<a name="907" href="#907">907</a>     
<a name="908" href="#908">908</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="909" href="#909">909</a>     <strong class="jxr_keyword">protected</strong> Class&lt;?&gt; getElementType(Class&lt;?&gt; type, String attrName) {
<a name="910" href="#910">910</a>         <strong class="jxr_keyword">if</strong> (transportMetadata != <strong class="jxr_keyword">null</strong> &amp;&amp;
<a name="911" href="#911">911</a>                 IoAcceptor.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp;
<a name="912" href="#912">912</a>                 <span class="jxr_string">"defaultLocalAddresses"</span>.equals(attrName)) {
<a name="913" href="#913">913</a>             <strong class="jxr_keyword">return</strong> transportMetadata.getAddressType();
<a name="914" href="#914">914</a>         }
<a name="915" href="#915">915</a>         <strong class="jxr_keyword">return</strong> String.<strong class="jxr_keyword">class</strong>;
<a name="916" href="#916">916</a>     }
<a name="917" href="#917">917</a> 
<a name="918" href="#918">918</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="919" href="#919">919</a>     <strong class="jxr_keyword">protected</strong> Class&lt;?&gt; getMapKeyType(Class&lt;?&gt; type, String attrName) {
<a name="920" href="#920">920</a>         <strong class="jxr_keyword">return</strong> String.<strong class="jxr_keyword">class</strong>;
<a name="921" href="#921">921</a>     }
<a name="922" href="#922">922</a> 
<a name="923" href="#923">923</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="924" href="#924">924</a>     <strong class="jxr_keyword">protected</strong> Class&lt;?&gt; getMapValueType(Class&lt;?&gt; type, String attrName) {
<a name="925" href="#925">925</a>         <strong class="jxr_keyword">return</strong> String.<strong class="jxr_keyword">class</strong>;
<a name="926" href="#926">926</a>     }
<a name="927" href="#927">927</a> 
<a name="928" href="#928">928</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isExpandable(Class&lt;?&gt; type, String attrName) {
<a name="929" href="#929">929</a>         <strong class="jxr_keyword">if</strong> (IoService.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"sessionConfig"</span>)) {
<a name="930" href="#930">930</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="931" href="#931">931</a>         }
<a name="932" href="#932">932</a>         <strong class="jxr_keyword">if</strong> (IoService.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"transportMetadata"</span>)) {
<a name="933" href="#933">933</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="934" href="#934">934</a>         }
<a name="935" href="#935">935</a>         <strong class="jxr_keyword">if</strong> (IoSession.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"config"</span>)) {
<a name="936" href="#936">936</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="937" href="#937">937</a>         }
<a name="938" href="#938">938</a>         <strong class="jxr_keyword">if</strong> (IoSession.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type) &amp;&amp; attrName.equals(<span class="jxr_string">"transportMetadata"</span>)) {
<a name="939" href="#939">939</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="940" href="#940">940</a>         }
<a name="941" href="#941">941</a> 
<a name="942" href="#942">942</a>         <strong class="jxr_keyword">if</strong> (ExecutorFilter.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type)) {
<a name="943" href="#943">943</a>             <strong class="jxr_keyword">if</strong> (attrName.equals(<span class="jxr_string">"executor"</span>)) {
<a name="944" href="#944">944</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="945" href="#945">945</a>             }
<a name="946" href="#946">946</a>         }
<a name="947" href="#947">947</a>         <strong class="jxr_keyword">if</strong> (ThreadPoolExecutor.<strong class="jxr_keyword">class</strong>.isAssignableFrom(type)) {
<a name="948" href="#948">948</a>             <strong class="jxr_keyword">if</strong> (attrName.equals(<span class="jxr_string">"queueHandler"</span>)) {
<a name="949" href="#949">949</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="950" href="#950">950</a>             }
<a name="951" href="#951">951</a>         }
<a name="952" href="#952">952</a>         <strong class="jxr_keyword">return</strong> false;
<a name="953" href="#953">953</a>     }
<a name="954" href="#954">954</a>     
<a name="955" href="#955">955</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="956" href="#956">956</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> isOperation(String methodName, Class&lt;?&gt;[] paramTypes) {
<a name="957" href="#957">957</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">true</strong>;
<a name="958" href="#958">958</a>     }
<a name="959" href="#959">959</a>     
<a name="960" href="#960">960</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="961" href="#961">961</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addExtraAttributes(List&lt;ModelMBeanAttributeInfo&gt; attributes) {}
<a name="962" href="#962">962</a>     
<a name="963" href="#963">963</a>     @SuppressWarnings(<span class="jxr_string">"unused"</span>)
<a name="964" href="#964">964</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">void</strong> addExtraOperations(List&lt;ModelMBeanOperationInfo&gt; operations) {}
<a name="965" href="#965">965</a> 
<a name="966" href="#966">966</a>     <strong class="jxr_keyword">protected</strong> PropertyEditor getPropertyEditor(Class&lt;?&gt; type, String attrName, Class&lt;?&gt; attrType) {
<a name="967" href="#967">967</a>         <strong class="jxr_keyword">if</strong> (type == <strong class="jxr_keyword">null</strong>) {
<a name="968" href="#968">968</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"type"</span>);
<a name="969" href="#969">969</a>         }
<a name="970" href="#970">970</a>         <strong class="jxr_keyword">if</strong> (attrName == <strong class="jxr_keyword">null</strong>) {
<a name="971" href="#971">971</a>             <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"attrName"</span>);
<a name="972" href="#972">972</a>         }
<a name="973" href="#973">973</a>         
<a name="974" href="#974">974</a>         <strong class="jxr_keyword">if</strong> (transportMetadata != <strong class="jxr_keyword">null</strong> &amp;&amp; attrType == SocketAddress.<strong class="jxr_keyword">class</strong>) {
<a name="975" href="#975">975</a>             attrType = transportMetadata.getAddressType();
<a name="976" href="#976">976</a>         }
<a name="977" href="#977">977</a> 
<a name="978" href="#978">978</a>         <strong class="jxr_keyword">if</strong> (attrName != <strong class="jxr_keyword">null</strong> &amp;&amp; (attrType == Long.<strong class="jxr_keyword">class</strong> || attrType == <strong class="jxr_keyword">long</strong>.<strong class="jxr_keyword">class</strong>)) {
<a name="979" href="#979">979</a>             <strong class="jxr_keyword">if</strong> (attrName.endsWith(<span class="jxr_string">"Time"</span>) &amp;&amp;
<a name="980" href="#980">980</a>                     attrName.indexOf(<span class="jxr_string">"Total"</span>) &lt; 0 &amp;&amp;
<a name="981" href="#981">981</a>                     attrName.indexOf(<span class="jxr_string">"Min"</span>) &lt; 0 &amp;&amp;
<a name="982" href="#982">982</a>                     attrName.indexOf(<span class="jxr_string">"Max"</span>) &lt; 0 &amp;&amp;
<a name="983" href="#983">983</a>                     attrName.indexOf(<span class="jxr_string">"Avg"</span>) &lt; 0 &amp;&amp;
<a name="984" href="#984">984</a>                     attrName.indexOf(<span class="jxr_string">"Average"</span>) &lt; 0 &amp;&amp;
<a name="985" href="#985">985</a>                     !propertyDescriptors.containsKey(attrName + <span class="jxr_string">"InMillis"</span>)) {
<a name="986" href="#986">986</a>                 <strong class="jxr_keyword">return</strong> PropertyEditorFactory.getInstance(Date.<strong class="jxr_keyword">class</strong>);
<a name="987" href="#987">987</a>             }
<a name="988" href="#988">988</a>             
<a name="989" href="#989">989</a>             <strong class="jxr_keyword">if</strong> (attrName.equals(<span class="jxr_string">"id"</span>)) {
<a name="990" href="#990">990</a>                 <strong class="jxr_keyword">return</strong> PropertyEditorFactory.getInstance(String.<strong class="jxr_keyword">class</strong>);
<a name="991" href="#991">991</a>             }
<a name="992" href="#992">992</a>         }
<a name="993" href="#993">993</a>         
<a name="994" href="#994">994</a>         <strong class="jxr_keyword">if</strong> (type != <strong class="jxr_keyword">null</strong>) {
<a name="995" href="#995">995</a>             <strong class="jxr_keyword">if</strong> (List.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="996" href="#996">996</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/beans/ListEditor.html">ListEditor</a>(getElementType(type, attrName));
<a name="997" href="#997">997</a>             }
<a name="998" href="#998">998</a>             <strong class="jxr_keyword">if</strong> (Set.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="999" href="#999">999</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/beans/SetEditor.html">SetEditor</a>(getElementType(type, attrName));
<a name="1000" href="#1000">1000</a>             }
<a name="1001" href="#1001">1001</a>             <strong class="jxr_keyword">if</strong> (Collection.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="1002" href="#1002">1002</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/beans/CollectionEditor.html">CollectionEditor</a>(getElementType(type, attrName));
<a name="1003" href="#1003">1003</a>             }
<a name="1004" href="#1004">1004</a>             <strong class="jxr_keyword">if</strong> (Map.<strong class="jxr_keyword">class</strong>.isAssignableFrom(attrType)) {
<a name="1005" href="#1005">1005</a>                 <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/mina/integration/beans/MapEditor.html">MapEditor</a>(
<a name="1006" href="#1006">1006</a>                         getMapKeyType(type, attrName),
<a name="1007" href="#1007">1007</a>                         getMapValueType(type, attrName));
<a name="1008" href="#1008">1008</a>             }
<a name="1009" href="#1009">1009</a>         }
<a name="1010" href="#1010">1010</a>         
<a name="1011" href="#1011">1011</a>         <strong class="jxr_keyword">return</strong> PropertyEditorFactory.getInstance(attrType);
<a name="1012" href="#1012">1012</a>     }
<a name="1013" href="#1013">1013</a>     
<a name="1014" href="#1014">1014</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/integration/jmx/ObjectMBean.html">OgnlTypeConverter</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/integration/ognl/PropertyTypeConverter.html">PropertyTypeConverter</a> {
<a name="1015" href="#1015">1015</a>         @Override
<a name="1016" href="#1016">1016</a>         <strong class="jxr_keyword">protected</strong> PropertyEditor getPropertyEditor(
<a name="1017" href="#1017">1017</a>                 Class&lt;?&gt; type, String attrName, Class&lt;?&gt; attrType) {
<a name="1018" href="#1018">1018</a>             <strong class="jxr_keyword">return</strong> ObjectMBean.<strong class="jxr_keyword">this</strong>.getPropertyEditor(type, attrName, attrType);
<a name="1019" href="#1019">1019</a>         }
<a name="1020" href="#1020">1020</a>     }
<a name="1021" href="#1021">1021</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

