<!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>MapEditor xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/integration/beans/MapEditor.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</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> *  or more contributor license agreements.  See the NOTICE file</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> *  distributed with this work for additional information</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> *  regarding copyright ownership.  The ASF licenses this file</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> *  to you under the Apache License, Version 2.0 (the</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> *  "License"); you may not use this file except in compliance</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> *  with the License.  You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a name="10" href="#10">10</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="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> *  Unless required by applicable law or agreed to in writing,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> *  software distributed under the License is distributed on an</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> *  KIND, either express or implied.  See the License for the</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> *  specific language governing permissions and limitations</em>
<a name="17" href="#17">17</a>  <em class="jxr_comment"> *  under the License.</em>
<a name="18" href="#18">18</a>  <em class="jxr_comment"> *</em>
<a name="19" href="#19">19</a>  <em class="jxr_comment"> */</em>
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">package</strong> org.apache.mina.integration.beans;
<a name="21" href="#21">21</a>  
<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.util.Collection;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.LinkedHashMap;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
<a name="28" href="#28">28</a>  
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment">/**</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * A {@link PropertyEditor} which converts a {@link String} into</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> * a {@link Collection} and vice versa.</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> *</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> * @version $Revision: 601229 $, $Date: 2007-12-05 08:13:18 +0100 (mer, 05 déc 2007) $</em>
<a name="35" href="#35">35</a>  <em class="jxr_javadoccomment"> */</em>
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/integration/beans/MapEditor.html">MapEditor</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/integration/beans/AbstractPropertyEditor.html">AbstractPropertyEditor</a> {
<a name="37" href="#37">37</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern ELEMENT = Pattern.compile(
<a name="38" href="#38">38</a>              <span class="jxr_string">"([,&#92;&#92;s]+)|"</span> + <em class="jxr_comment">// Entry delimiter</em>
<a name="39" href="#39">39</a>              <span class="jxr_string">"(&#92;&#92;s*=&#92;&#92;s*)|"</span> + <em class="jxr_comment">// Key-Value delimiter</em>
<a name="40" href="#40">40</a>              <span class="jxr_string">"(?&lt;=\&quot;)((?:&#92;&#92;&#92;&#92;\&quot;|&#92;&#92;&#92;&#92;'|&#92;&#92;&#92;&#92;&#92;&#92;&#92;&#92;|&#92;&#92;&#92;&#92; |[^\&quot;])*)(?=\&quot;)|"</span> +
<a name="41" href="#41">41</a>              <span class="jxr_string">"(?&lt;=')((?:&#92;&#92;&#92;&#92;\&quot;|&#92;&#92;&#92;&#92;'|&#92;&#92;&#92;&#92;&#92;&#92;&#92;&#92;|&#92;&#92;&#92;&#92; |[^'])*)(?=')|"</span> +
<a name="42" href="#42">42</a>              <span class="jxr_string">"((?:[^&#92;&#92;&#92;&#92;&#92;&#92;s'\&quot;,]|&#92;&#92;&#92;&#92; |&#92;&#92;&#92;&#92;\&quot;|&#92;&#92;&#92;&#92;')+)"</span>);
<a name="43" href="#43">43</a>      
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Class&lt;?&gt; keyType;
<a name="45" href="#45">45</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Class&lt;?&gt; valueType;
<a name="46" href="#46">46</a>      
<a name="47" href="#47">47</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/integration/beans/MapEditor.html">MapEditor</a>(Class&lt;?&gt; keyType, Class&lt;?&gt; valueType) {
<a name="48" href="#48">48</a>          <strong class="jxr_keyword">if</strong> (keyType == <strong class="jxr_keyword">null</strong>) {
<a name="49" href="#49">49</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"keyType"</span>);
<a name="50" href="#50">50</a>          }
<a name="51" href="#51">51</a>          <strong class="jxr_keyword">if</strong> (valueType == <strong class="jxr_keyword">null</strong>) {
<a name="52" href="#52">52</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"valueType"</span>);
<a name="53" href="#53">53</a>          }
<a name="54" href="#54">54</a>          <strong class="jxr_keyword">this</strong>.keyType = keyType;
<a name="55" href="#55">55</a>          <strong class="jxr_keyword">this</strong>.valueType = valueType;
<a name="56" href="#56">56</a>          getKeyEditor();
<a name="57" href="#57">57</a>          getValueEditor();
<a name="58" href="#58">58</a>          setTrimText(false);
<a name="59" href="#59">59</a>      }
<a name="60" href="#60">60</a>  
<a name="61" href="#61">61</a>      <strong class="jxr_keyword">private</strong> PropertyEditor getKeyEditor() {
<a name="62" href="#62">62</a>          PropertyEditor e = PropertyEditorFactory.getInstance(keyType);
<a name="63" href="#63">63</a>          <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="64" href="#64">64</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="65" href="#65">65</a>                      <span class="jxr_string">"No key "</span> + PropertyEditor.<strong class="jxr_keyword">class</strong>.getSimpleName() + 
<a name="66" href="#66">66</a>                      <span class="jxr_string">" found for "</span> + keyType.getSimpleName() + '.');
<a name="67" href="#67">67</a>          }
<a name="68" href="#68">68</a>          <strong class="jxr_keyword">return</strong> e;
<a name="69" href="#69">69</a>      }
<a name="70" href="#70">70</a>  
<a name="71" href="#71">71</a>      <strong class="jxr_keyword">private</strong> PropertyEditor getValueEditor() {
<a name="72" href="#72">72</a>          PropertyEditor e = PropertyEditorFactory.getInstance(valueType);
<a name="73" href="#73">73</a>          <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="74" href="#74">74</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="75" href="#75">75</a>                      <span class="jxr_string">"No value "</span> + PropertyEditor.<strong class="jxr_keyword">class</strong>.getSimpleName() + 
<a name="76" href="#76">76</a>                      <span class="jxr_string">" found for "</span> + valueType.getSimpleName() + '.');
<a name="77" href="#77">77</a>          }
<a name="78" href="#78">78</a>          <strong class="jxr_keyword">return</strong> e;
<a name="79" href="#79">79</a>      }
<a name="80" href="#80">80</a>  
<a name="81" href="#81">81</a>      @Override
<a name="82" href="#82">82</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="83" href="#83">83</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> String toText(Object value) {
<a name="84" href="#84">84</a>          StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="85" href="#85">85</a>          <strong class="jxr_keyword">for</strong> (Object o: ((Map) value).entrySet()) {
<a name="86" href="#86">86</a>              Map.Entry entry = (Map.Entry) o;
<a name="87" href="#87">87</a>              Object ekey = entry.getKey();
<a name="88" href="#88">88</a>              Object evalue = entry.getValue();
<a name="89" href="#89">89</a>              
<a name="90" href="#90">90</a>              PropertyEditor ekeyEditor = PropertyEditorFactory.getInstance(ekey);
<a name="91" href="#91">91</a>              <strong class="jxr_keyword">if</strong> (ekeyEditor == <strong class="jxr_keyword">null</strong>) {
<a name="92" href="#92">92</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="93" href="#93">93</a>                          <span class="jxr_string">"No key "</span> + PropertyEditor.<strong class="jxr_keyword">class</strong>.getSimpleName() + 
<a name="94" href="#94">94</a>                          <span class="jxr_string">" found for "</span> + ekey.getClass().getSimpleName() + '.');
<a name="95" href="#95">95</a>              }
<a name="96" href="#96">96</a>              ekeyEditor.setValue(ekey);
<a name="97" href="#97">97</a>              
<a name="98" href="#98">98</a>              PropertyEditor evalueEditor = PropertyEditorFactory.getInstance(evalue);
<a name="99" href="#99">99</a>              <strong class="jxr_keyword">if</strong> (evalueEditor == <strong class="jxr_keyword">null</strong>) {
<a name="100" href="#100">100</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="101" href="#101">101</a>                         <span class="jxr_string">"No value "</span> + PropertyEditor.<strong class="jxr_keyword">class</strong>.getSimpleName() + 
<a name="102" href="#102">102</a>                         <span class="jxr_string">" found for "</span> + evalue.getClass().getSimpleName() + '.');
<a name="103" href="#103">103</a>             }
<a name="104" href="#104">104</a>             ekeyEditor.setValue(ekey);
<a name="105" href="#105">105</a>             evalueEditor.setValue(evalue);
<a name="106" href="#106">106</a>             
<a name="107" href="#107">107</a>             <em class="jxr_comment">// TODO normalize.</em>
<a name="108" href="#108">108</a>             String keyString = ekeyEditor.getAsText();
<a name="109" href="#109">109</a>             String valueString = evalueEditor.getAsText();
<a name="110" href="#110">110</a>             buf.append(keyString);
<a name="111" href="#111">111</a>             buf.append(<span class="jxr_string">" = "</span>);
<a name="112" href="#112">112</a>             buf.append(valueString);
<a name="113" href="#113">113</a>             buf.append(<span class="jxr_string">", "</span>);
<a name="114" href="#114">114</a>         }
<a name="115" href="#115">115</a>         
<a name="116" href="#116">116</a>         <em class="jxr_comment">// Remove the last delimiter.</em>
<a name="117" href="#117">117</a>         <strong class="jxr_keyword">if</strong> (buf.length() &gt;= 2) {
<a name="118" href="#118">118</a>             buf.setLength(buf.length() - 2);
<a name="119" href="#119">119</a>         }
<a name="120" href="#120">120</a>         <strong class="jxr_keyword">return</strong> buf.toString();
<a name="121" href="#121">121</a>     }
<a name="122" href="#122">122</a> 
<a name="123" href="#123">123</a>     @Override
<a name="124" href="#124">124</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> Object toValue(String text) <strong class="jxr_keyword">throws</strong> IllegalArgumentException {
<a name="125" href="#125">125</a>         PropertyEditor keyEditor = getKeyEditor();
<a name="126" href="#126">126</a>         PropertyEditor valueEditor = getValueEditor();
<a name="127" href="#127">127</a>         Map&lt;Object, Object&gt; answer = newMap();
<a name="128" href="#128">128</a>         Matcher m = ELEMENT.matcher(text);
<a name="129" href="#129">129</a>         <a href="../../../../../org/apache/mina/integration/beans/MapEditor.html">TokenType</a> lastTokenType = TokenType.ENTRY_DELIM;
<a name="130" href="#130">130</a>         Object key = <strong class="jxr_keyword">null</strong>;
<a name="131" href="#131">131</a>         Object value = <strong class="jxr_keyword">null</strong>;
<a name="132" href="#132">132</a> 
<a name="133" href="#133">133</a>         <strong class="jxr_keyword">while</strong> (m.find()) {
<a name="134" href="#134">134</a>             <strong class="jxr_keyword">if</strong> (m.group(1) != <strong class="jxr_keyword">null</strong>) {
<a name="135" href="#135">135</a>                 <strong class="jxr_keyword">switch</strong> (lastTokenType) {
<a name="136" href="#136">136</a>                 <strong class="jxr_keyword">case</strong> VALUE: <strong class="jxr_keyword">case</strong> ENTRY_DELIM:
<a name="137" href="#137">137</a>                     <strong class="jxr_keyword">break</strong>;
<a name="138" href="#138">138</a>                 <strong class="jxr_keyword">default</strong>:
<a name="139" href="#139">139</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="140" href="#140">140</a>                             <span class="jxr_string">"Unexpected entry delimiter: "</span> + text);
<a name="141" href="#141">141</a>                 }
<a name="142" href="#142">142</a>                 
<a name="143" href="#143">143</a>                 lastTokenType = TokenType.ENTRY_DELIM;
<a name="144" href="#144">144</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="145" href="#145">145</a>             }
<a name="146" href="#146">146</a>             
<a name="147" href="#147">147</a>             <strong class="jxr_keyword">if</strong> (m.group(2) != <strong class="jxr_keyword">null</strong>) {
<a name="148" href="#148">148</a>                 <strong class="jxr_keyword">if</strong> (lastTokenType != TokenType.KEY) {
<a name="149" href="#149">149</a>                     <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="150" href="#150">150</a>                             <span class="jxr_string">"Unexpected key-value delimiter: "</span> + text);
<a name="151" href="#151">151</a>                 }
<a name="152" href="#152">152</a>                 
<a name="153" href="#153">153</a>                 lastTokenType = TokenType.KEY_VALUE_DELIM;
<a name="154" href="#154">154</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="155" href="#155">155</a>             }
<a name="156" href="#156">156</a>             
<a name="157" href="#157">157</a>             
<a name="158" href="#158">158</a>             <em class="jxr_comment">// TODO escape here.</em>
<a name="159" href="#159">159</a>             String region = m.group();
<a name="160" href="#160">160</a> 
<a name="161" href="#161">161</a>             <strong class="jxr_keyword">if</strong> (m.group(3) != <strong class="jxr_keyword">null</strong> || m.group(4) != <strong class="jxr_keyword">null</strong>) {
<a name="162" href="#162">162</a>                 <em class="jxr_comment">// Skip the last '&quot;'.</em>
<a name="163" href="#163">163</a>                 m.region(m.end() + 1, m.regionEnd());
<a name="164" href="#164">164</a>             }
<a name="165" href="#165">165</a>             
<a name="166" href="#166">166</a>             <strong class="jxr_keyword">switch</strong> (lastTokenType) {
<a name="167" href="#167">167</a>             <strong class="jxr_keyword">case</strong> ENTRY_DELIM:
<a name="168" href="#168">168</a>                 keyEditor.setAsText(region);
<a name="169" href="#169">169</a>                 key = keyEditor.getValue();
<a name="170" href="#170">170</a>                 lastTokenType = TokenType.KEY;
<a name="171" href="#171">171</a>                 <strong class="jxr_keyword">break</strong>;
<a name="172" href="#172">172</a>             <strong class="jxr_keyword">case</strong> KEY_VALUE_DELIM:
<a name="173" href="#173">173</a>                 valueEditor.setAsText(region);
<a name="174" href="#174">174</a>                 value = valueEditor.getValue();
<a name="175" href="#175">175</a>                 lastTokenType = TokenType.VALUE;
<a name="176" href="#176">176</a>                 answer.put(key, value);
<a name="177" href="#177">177</a>                 <strong class="jxr_keyword">break</strong>;
<a name="178" href="#178">178</a>             <strong class="jxr_keyword">case</strong> KEY: <strong class="jxr_keyword">case</strong> VALUE:
<a name="179" href="#179">179</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="180" href="#180">180</a>                         <span class="jxr_string">"Unexpected key or value: "</span> + text);
<a name="181" href="#181">181</a>             }
<a name="182" href="#182">182</a>         }
<a name="183" href="#183">183</a>         
<a name="184" href="#184">184</a>         <strong class="jxr_keyword">return</strong> answer;
<a name="185" href="#185">185</a>     }
<a name="186" href="#186">186</a>     
<a name="187" href="#187">187</a>     <strong class="jxr_keyword">protected</strong> Map&lt;Object, Object&gt; newMap() {
<a name="188" href="#188">188</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> LinkedHashMap&lt;Object, Object&gt;();
<a name="189" href="#189">189</a>     }
<a name="190" href="#190">190</a>     
<a name="191" href="#191">191</a>     <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> enum <a href="../../../../../org/apache/mina/integration/beans/MapEditor.html">TokenType</a> {
<a name="192" href="#192">192</a>         ENTRY_DELIM,
<a name="193" href="#193">193</a>         KEY_VALUE_DELIM,
<a name="194" href="#194">194</a>         KEY,
<a name="195" href="#195">195</a>         VALUE,
<a name="196" href="#196">196</a>     }
<a name="197" href="#197">197</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

