<!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>CollectionEditor xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/integration/beans/CollectionEditor.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.ArrayList;
<a name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Matcher;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.regex.Pattern;
<a name="27" href="#27">27</a>  
<a name="28" href="#28">28</a>  <em class="jxr_javadoccomment">/**</em>
<a name="29" href="#29">29</a>  <em class="jxr_javadoccomment"> * A {@link PropertyEditor} which converts a {@link String} into</em>
<a name="30" href="#30">30</a>  <em class="jxr_javadoccomment"> * a {@link Collection} and vice versa.</em>
<a name="31" href="#31">31</a>  <em class="jxr_javadoccomment"> *</em>
<a name="32" href="#32">32</a>  <em class="jxr_javadoccomment"> * @author The Apache MINA Project (dev@mina.apache.org)</em>
<a name="33" href="#33">33</a>  <em class="jxr_javadoccomment"> * @version $Revision: 601229 $, $Date: 2007-12-05 08:13:18 +0100 (mer, 05 déc 2007) $</em>
<a name="34" href="#34">34</a>  <em class="jxr_javadoccomment"> */</em>
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/mina/integration/beans/CollectionEditor.html">CollectionEditor</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../org/apache/mina/integration/beans/AbstractPropertyEditor.html">AbstractPropertyEditor</a> {
<a name="36" href="#36">36</a>      <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> Pattern ELEMENT = Pattern.compile(
<a name="37" href="#37">37</a>              <span class="jxr_string">"([,&#92;&#92;s]+)|"</span> + <em class="jxr_comment">// Delimiter</em>
<a name="38" href="#38">38</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="39" href="#39">39</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="40" href="#40">40</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="41" href="#41">41</a>      
<a name="42" href="#42">42</a>      <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> Class&lt;?&gt; elementType;
<a name="43" href="#43">43</a>      
<a name="44" href="#44">44</a>      <strong class="jxr_keyword">public</strong> <a href="../../../../../org/apache/mina/integration/beans/CollectionEditor.html">CollectionEditor</a>(Class&lt;?&gt; elementType) {
<a name="45" href="#45">45</a>          <strong class="jxr_keyword">if</strong> (elementType == <strong class="jxr_keyword">null</strong>) {
<a name="46" href="#46">46</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> NullPointerException(<span class="jxr_string">"elementType"</span>);
<a name="47" href="#47">47</a>          }
<a name="48" href="#48">48</a>          
<a name="49" href="#49">49</a>          <strong class="jxr_keyword">this</strong>.elementType = elementType;
<a name="50" href="#50">50</a>          getElementEditor();
<a name="51" href="#51">51</a>          setTrimText(false);
<a name="52" href="#52">52</a>      }
<a name="53" href="#53">53</a>  
<a name="54" href="#54">54</a>      <strong class="jxr_keyword">private</strong> PropertyEditor getElementEditor() {
<a name="55" href="#55">55</a>          PropertyEditor e = PropertyEditorFactory.getInstance(elementType);
<a name="56" href="#56">56</a>          <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="57" href="#57">57</a>              <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="58" href="#58">58</a>                      <span class="jxr_string">"No "</span> + PropertyEditor.<strong class="jxr_keyword">class</strong>.getSimpleName() + 
<a name="59" href="#59">59</a>                      <span class="jxr_string">" found for "</span> + elementType.getSimpleName() + '.');
<a name="60" href="#60">60</a>          }
<a name="61" href="#61">61</a>          <strong class="jxr_keyword">return</strong> e;
<a name="62" href="#62">62</a>      }
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      @Override
<a name="65" href="#65">65</a>      @SuppressWarnings(<span class="jxr_string">"unchecked"</span>)
<a name="66" href="#66">66</a>      <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">final</strong> String toText(Object value) {
<a name="67" href="#67">67</a>          StringBuilder buf = <strong class="jxr_keyword">new</strong> StringBuilder();
<a name="68" href="#68">68</a>          <strong class="jxr_keyword">for</strong> (Object v: (Collection) value) {
<a name="69" href="#69">69</a>              <strong class="jxr_keyword">if</strong> (v == <strong class="jxr_keyword">null</strong>) {
<a name="70" href="#70">70</a>                  v = defaultElement();
<a name="71" href="#71">71</a>              }
<a name="72" href="#72">72</a>              
<a name="73" href="#73">73</a>              PropertyEditor e = PropertyEditorFactory.getInstance(v);
<a name="74" href="#74">74</a>              <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="75" href="#75">75</a>                  <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(
<a name="76" href="#76">76</a>                          <span class="jxr_string">"No "</span> + PropertyEditor.<strong class="jxr_keyword">class</strong>.getSimpleName() + 
<a name="77" href="#77">77</a>                          <span class="jxr_string">" found for "</span> + v.getClass().getSimpleName() + '.');
<a name="78" href="#78">78</a>              }            
<a name="79" href="#79">79</a>              e.setValue(v);
<a name="80" href="#80">80</a>              <em class="jxr_comment">// TODO normalize.</em>
<a name="81" href="#81">81</a>              String s = e.getAsText();
<a name="82" href="#82">82</a>              buf.append(s);
<a name="83" href="#83">83</a>              buf.append(<span class="jxr_string">", "</span>);
<a name="84" href="#84">84</a>          }
<a name="85" href="#85">85</a>          
<a name="86" href="#86">86</a>          <em class="jxr_comment">// Remove the last delimiter.</em>
<a name="87" href="#87">87</a>          <strong class="jxr_keyword">if</strong> (buf.length() &gt;= 2) {
<a name="88" href="#88">88</a>              buf.setLength(buf.length() - 2);
<a name="89" href="#89">89</a>          }
<a name="90" href="#90">90</a>          <strong class="jxr_keyword">return</strong> buf.toString();
<a name="91" href="#91">91</a>      }
<a name="92" href="#92">92</a>  
<a name="93" href="#93">93</a>      @Override
<a name="94" href="#94">94</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="95" href="#95">95</a>          PropertyEditor e = getElementEditor();
<a name="96" href="#96">96</a>          Collection&lt;Object&gt; answer = newCollection();
<a name="97" href="#97">97</a>          Matcher m = ELEMENT.matcher(text);
<a name="98" href="#98">98</a>          <strong class="jxr_keyword">boolean</strong> matchedDelimiter = <strong class="jxr_keyword">true</strong>;
<a name="99" href="#99">99</a>  
<a name="100" href="#100">100</a>         <strong class="jxr_keyword">while</strong> (m.find()) {
<a name="101" href="#101">101</a>             <strong class="jxr_keyword">if</strong> (m.group(1) != <strong class="jxr_keyword">null</strong>) {
<a name="102" href="#102">102</a>                 matchedDelimiter = <strong class="jxr_keyword">true</strong>;
<a name="103" href="#103">103</a>                 <strong class="jxr_keyword">continue</strong>;
<a name="104" href="#104">104</a>             }
<a name="105" href="#105">105</a>             
<a name="106" href="#106">106</a>             <strong class="jxr_keyword">if</strong> (!matchedDelimiter) {
<a name="107" href="#107">107</a>                 <strong class="jxr_keyword">throw</strong> <strong class="jxr_keyword">new</strong> IllegalArgumentException(<span class="jxr_string">"No delimiter between elements: "</span> + text);
<a name="108" href="#108">108</a>             }
<a name="109" href="#109">109</a> 
<a name="110" href="#110">110</a>             <em class="jxr_comment">// TODO escape here.</em>
<a name="111" href="#111">111</a>             e.setAsText(m.group());
<a name="112" href="#112">112</a>             answer.add(e.getValue());
<a name="113" href="#113">113</a>             
<a name="114" href="#114">114</a>             matchedDelimiter = false;
<a name="115" href="#115">115</a>             <strong class="jxr_keyword">if</strong> (m.group(2) != <strong class="jxr_keyword">null</strong> || m.group(3) != <strong class="jxr_keyword">null</strong>) {
<a name="116" href="#116">116</a>                 <em class="jxr_comment">// Skip the last '&quot;'.</em>
<a name="117" href="#117">117</a>                 m.region(m.end() + 1, m.regionEnd());
<a name="118" href="#118">118</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">return</strong> answer;
<a name="122" href="#122">122</a>     }
<a name="123" href="#123">123</a>     
<a name="124" href="#124">124</a>     <strong class="jxr_keyword">protected</strong> Collection&lt;Object&gt; newCollection() {
<a name="125" href="#125">125</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">new</strong> ArrayList&lt;Object&gt;();
<a name="126" href="#126">126</a>     }
<a name="127" href="#127">127</a>     
<a name="128" href="#128">128</a>     <strong class="jxr_keyword">protected</strong> Object defaultElement() {
<a name="129" href="#129">129</a>         PropertyEditor e = PropertyEditorFactory.getInstance(elementType);
<a name="130" href="#130">130</a>         <strong class="jxr_keyword">if</strong> (e == <strong class="jxr_keyword">null</strong>) {
<a name="131" href="#131">131</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="132" href="#132">132</a>         }
<a name="133" href="#133">133</a>         
<a name="134" href="#134">134</a>         <strong class="jxr_keyword">if</strong> (e instanceof AbstractPropertyEditor) {
<a name="135" href="#135">135</a>             <strong class="jxr_keyword">return</strong> ((AbstractPropertyEditor) e).defaultValue();
<a name="136" href="#136">136</a>         }
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>         <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a name="139" href="#139">139</a>     }
<a name="140" href="#140">140</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

