You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/06/18 19:40:20 UTC
[01/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Repository: incubator-juneau-website
Updated Branches:
refs/heads/asf-site 436334e6d -> 2871fb5d4
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.Builder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.Builder.html b/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.Builder.html
new file mode 100644
index 0000000..6bf8c7b
--- /dev/null
+++ b/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.Builder.html
@@ -0,0 +1,373 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>// ***************************************************************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span>// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *<a name="line.2"></a>
+<span class="sourceLineNo">003</span>// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *<a name="line.3"></a>
+<span class="sourceLineNo">004</span>// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance *<a name="line.4"></a>
+<span class="sourceLineNo">005</span>// * with the License. You may obtain a copy of the License at *<a name="line.5"></a>
+<span class="sourceLineNo">006</span>// * *<a name="line.6"></a>
+<span class="sourceLineNo">007</span>// * http://www.apache.org/licenses/LICENSE-2.0 *<a name="line.7"></a>
+<span class="sourceLineNo">008</span>// * *<a name="line.8"></a>
+<span class="sourceLineNo">009</span>// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an *<a name="line.9"></a>
+<span class="sourceLineNo">010</span>// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the *<a name="line.10"></a>
+<span class="sourceLineNo">011</span>// * specific language governing permissions and limitations under the License. *<a name="line.11"></a>
+<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.apache.juneau.utils;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import static java.util.Collections.*;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import static org.apache.juneau.internal.StringUtils.*;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.internal.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Encapsulates arguments for basic search/view/sort/position/limit functionality.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class SearchArgs {<a name="line.25"></a>
+<span class="sourceLineNo">026</span> private final Map<String,String> search;<a name="line.26"></a>
+<span class="sourceLineNo">027</span> private final List<String> view;<a name="line.27"></a>
+<span class="sourceLineNo">028</span> private final Map<String,Boolean> sort;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> private final int position, limit;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> private final boolean ignoreCase;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span> private SearchArgs(Builder b) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span> this.search = unmodifiableMap(new LinkedHashMap<String,String>(b.search));<a name="line.33"></a>
+<span class="sourceLineNo">034</span> this.view = unmodifiableList(new ArrayList<String>(b.view));<a name="line.34"></a>
+<span class="sourceLineNo">035</span> this.sort = unmodifiableMap(new LinkedHashMap<String,Boolean>(b.sort));<a name="line.35"></a>
+<span class="sourceLineNo">036</span> this.position = b.position;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> this.limit = b.limit;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> this.ignoreCase = b.ignoreCase;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span> /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * Builder for {@link SearchArgs} class.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> */<a name="line.43"></a>
+<span class="sourceLineNo">044</span> @SuppressWarnings("hiding")<a name="line.44"></a>
+<span class="sourceLineNo">045</span> public static class Builder {<a name="line.45"></a>
+<span class="sourceLineNo">046</span> Map<String,String> search = new LinkedHashMap<String,String>();<a name="line.46"></a>
+<span class="sourceLineNo">047</span> List<String> view = new ArrayList<String>();<a name="line.47"></a>
+<span class="sourceLineNo">048</span> Map<String,Boolean> sort = new LinkedHashMap<String,Boolean>();<a name="line.48"></a>
+<span class="sourceLineNo">049</span> int position, limit;<a name="line.49"></a>
+<span class="sourceLineNo">050</span> boolean ignoreCase;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span> /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * Adds search terms to this builder.<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * <p><a name="line.54"></a>
+<span class="sourceLineNo">055</span> * The search terms are a comma-delimited list of key/value pairs of column-names and search tokens.<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * <p><a name="line.56"></a>
+<span class="sourceLineNo">057</span> * For example:<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * <p class='bcode'><a name="line.58"></a>
+<span class="sourceLineNo">059</span> * builder.search(<js>"column1=foo*, column2=bar baz"</js>);<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * </p><a name="line.60"></a>
+<span class="sourceLineNo">061</span> * <p><a name="line.61"></a>
+<span class="sourceLineNo">062</span> * It's up to implementers to decide the syntax and meaning of the search terms.<a name="line.62"></a>
+<span class="sourceLineNo">063</span> * <p><a name="line.63"></a>
+<span class="sourceLineNo">064</span> * Whitespace is trimmed from column names and search tokens.<a name="line.64"></a>
+<span class="sourceLineNo">065</span> *<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * @param searchTerms The search terms string.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * Can be <jk>null</jk>.<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * @return This object (for method chaining).<a name="line.68"></a>
+<span class="sourceLineNo">069</span> */<a name="line.69"></a>
+<span class="sourceLineNo">070</span> public Builder search(String searchTerms) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span> if (searchTerms != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> for (String s : StringUtils.split(searchTerms, ',')) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span> int i = StringUtils.indexOf(s, '=', '>', '<');<a name="line.73"></a>
+<span class="sourceLineNo">074</span> if (i == -1)<a name="line.74"></a>
+<span class="sourceLineNo">075</span> throw new RuntimeException("Invalid search terms: '"+searchTerms+"'");<a name="line.75"></a>
+<span class="sourceLineNo">076</span> char c = s.charAt(i);<a name="line.76"></a>
+<span class="sourceLineNo">077</span> search(s.substring(0, i).trim(), s.substring(c == '=' ? i+1 : i).trim());<a name="line.77"></a>
+<span class="sourceLineNo">078</span> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span> }<a name="line.79"></a>
+<span class="sourceLineNo">080</span> return this;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span> /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * Adds a search term to this builder.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
+<span class="sourceLineNo">086</span> * It's up to implementers to decide the syntax and meaning of the search term.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> *<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * @param column The column being searched.<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * @param searchTerm The search term.<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * @return This object (for method chaining).<a name="line.90"></a>
+<span class="sourceLineNo">091</span> */<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public Builder search(String column, String searchTerm) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> this.search.put(column, searchTerm);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> return this;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span> /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * Specifies the list of columns to view.<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * <p><a name="line.99"></a>
+<span class="sourceLineNo">100</span> * The columns argument is a simple comma-delimited list of column names.<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
+<span class="sourceLineNo">102</span> * For example:<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * <p class='bcode'><a name="line.103"></a>
+<span class="sourceLineNo">104</span> * builder.view(<js>"column1, column2"</js>);<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * </p><a name="line.105"></a>
+<span class="sourceLineNo">106</span> * <p><a name="line.106"></a>
+<span class="sourceLineNo">107</span> * Whitespace is trimmed from column names.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * <p><a name="line.108"></a>
+<span class="sourceLineNo">109</span> * Empty view columns imply view all columns.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * @param columns The columns being viewed.<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * Can be <jk>null</jk>.<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * @return This object (for method chaining).<a name="line.113"></a>
+<span class="sourceLineNo">114</span> */<a name="line.114"></a>
+<span class="sourceLineNo">115</span> public Builder view(String columns) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> if (columns != null)<a name="line.116"></a>
+<span class="sourceLineNo">117</span> return view(Arrays.asList(StringUtils.split(columns, ',')));<a name="line.117"></a>
+<span class="sourceLineNo">118</span> return this;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span> /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * Specifies the list of columns to view.<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * <p><a name="line.123"></a>
+<span class="sourceLineNo">124</span> * Empty view columns imply view all columns.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> *<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * @param columns The columns being viewed.<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * @return This object (for method chaining).<a name="line.127"></a>
+<span class="sourceLineNo">128</span> */<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public Builder view(Collection<String> columns) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> this.view.addAll(columns);<a name="line.130"></a>
+<span class="sourceLineNo">131</span> return this;<a name="line.131"></a>
+<span class="sourceLineNo">132</span> }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span> /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * Specifies the sort arguments.<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * <p><a name="line.136"></a>
+<span class="sourceLineNo">137</span> * The sort argument is a simple comma-delimited list of column names.<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * <br>No suffix implies ascending order.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> * <p><a name="line.140"></a>
+<span class="sourceLineNo">141</span> * For example:<a name="line.141"></a>
+<span class="sourceLineNo">142</span> * <p class='bcode'><a name="line.142"></a>
+<span class="sourceLineNo">143</span> * <jc>// Order by column1 ascending, then column2 descending.</jc><a name="line.143"></a>
+<span class="sourceLineNo">144</span> * builder.sort(<js>"column1, column2-"</js>);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * </p><a name="line.145"></a>
+<span class="sourceLineNo">146</span> * <p><a name="line.146"></a>
+<span class="sourceLineNo">147</span> * Note that the order of the order arguments is important.<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * <p><a name="line.148"></a>
+<span class="sourceLineNo">149</span> * Whitespace is trimmed from column names.<a name="line.149"></a>
+<span class="sourceLineNo">150</span> *<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * @param sortArgs The columns to sort by.<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * Can be <jk>null</jk>.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * @return This object (for method chaining).<a name="line.153"></a>
+<span class="sourceLineNo">154</span> */<a name="line.154"></a>
+<span class="sourceLineNo">155</span> public Builder sort(String sortArgs) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> if (sortArgs != null)<a name="line.156"></a>
+<span class="sourceLineNo">157</span> sort(Arrays.asList(StringUtils.split(sortArgs, ',')));<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return this;<a name="line.158"></a>
+<span class="sourceLineNo">159</span> }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span> /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span> * Specifies the sort arguments.<a name="line.162"></a>
+<span class="sourceLineNo">163</span> * <p><a name="line.163"></a>
+<span class="sourceLineNo">164</span> * <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.<a name="line.164"></a>
+<span class="sourceLineNo">165</span> * <br>No suffix implies ascending order.<a name="line.165"></a>
+<span class="sourceLineNo">166</span> * <p><a name="line.166"></a>
+<span class="sourceLineNo">167</span> * Note that the order of the sort is important.<a name="line.167"></a>
+<span class="sourceLineNo">168</span> *<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * @param sortArgs The columns to sort by.<a name="line.169"></a>
+<span class="sourceLineNo">170</span> * Can be <jk>null</jk>.<a name="line.170"></a>
+<span class="sourceLineNo">171</span> * @return This object (for method chaining).<a name="line.171"></a>
+<span class="sourceLineNo">172</span> */<a name="line.172"></a>
+<span class="sourceLineNo">173</span> public Builder sort(Collection<String> sortArgs) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> for (String s : sortArgs) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span> boolean isDesc = false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span> if (endsWith(s, '-', '+')) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span> isDesc = endsWith(s, '-');<a name="line.177"></a>
+<span class="sourceLineNo">178</span> s = s.substring(0, s.length()-1);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<a name="line.179"></a>
+<span class="sourceLineNo">180</span> this.sort.put(s, isDesc);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> }<a name="line.181"></a>
+<span class="sourceLineNo">182</span> return this;<a name="line.182"></a>
+<span class="sourceLineNo">183</span> }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span> /**<a name="line.185"></a>
+<span class="sourceLineNo">186</span> * Specifies the starting line number.<a name="line.186"></a>
+<span class="sourceLineNo">187</span> *<a name="line.187"></a>
+<span class="sourceLineNo">188</span> * @param position The zero-indexed position.<a name="line.188"></a>
+<span class="sourceLineNo">189</span> * @return This object (for method chaining).<a name="line.189"></a>
+<span class="sourceLineNo">190</span> */<a name="line.190"></a>
+<span class="sourceLineNo">191</span> public Builder position(int position) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> this.position = position;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return this;<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span> /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span> * Specifies the number of rows to return.<a name="line.197"></a>
+<span class="sourceLineNo">198</span> *<a name="line.198"></a>
+<span class="sourceLineNo">199</span> * @param limit The number of rows to return.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> * If <code>&lt;=0</code>, all rows should be returned.<a name="line.200"></a>
+<span class="sourceLineNo">201</span> * @return This object (for method chaining).<a name="line.201"></a>
+<span class="sourceLineNo">202</span> */<a name="line.202"></a>
+<span class="sourceLineNo">203</span> public Builder limit(int limit) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span> this.limit = limit;<a name="line.204"></a>
+<span class="sourceLineNo">205</span> return this;<a name="line.205"></a>
+<span class="sourceLineNo">206</span> }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span> * Specifies whether case-insensitive search should be used.<a name="line.209"></a>
+<span class="sourceLineNo">210</span> * <p><a name="line.210"></a>
+<span class="sourceLineNo">211</span> * The default is <jk>false</jk>.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> *<a name="line.212"></a>
+<span class="sourceLineNo">213</span> * @param value The ignore-case flag value.<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * @return This object (for method chaining).<a name="line.214"></a>
+<span class="sourceLineNo">215</span> */<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public Builder ignoreCase(boolean value) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> this.ignoreCase = value;<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return this;<a name="line.218"></a>
+<span class="sourceLineNo">219</span> }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span> /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span> * Construct the {@link SearchArgs} object.<a name="line.222"></a>
+<span class="sourceLineNo">223</span> * <p><a name="line.223"></a>
+<span class="sourceLineNo">224</span> * This method can be called multiple times to construct new objects.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> *<a name="line.225"></a>
+<span class="sourceLineNo">226</span> * @return A new {@link SearchArgs} object initialized with values in this builder.<a name="line.226"></a>
+<span class="sourceLineNo">227</span> */<a name="line.227"></a>
+<span class="sourceLineNo">228</span> public SearchArgs build() {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> return new SearchArgs(this);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> }<a name="line.230"></a>
+<span class="sourceLineNo">231</span> }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span> * The query search terms.<a name="line.234"></a>
+<span class="sourceLineNo">235</span> * <p><a name="line.235"></a>
+<span class="sourceLineNo">236</span> * The search terms are key/value pairs consisting of column-names and search tokens.<a name="line.236"></a>
+<span class="sourceLineNo">237</span> * <p><a name="line.237"></a>
+<span class="sourceLineNo">238</span> * It's up to implementers to decide the syntax and meaning of the search term.<a name="line.238"></a>
+<span class="sourceLineNo">239</span> *<a name="line.239"></a>
+<span class="sourceLineNo">240</span> * @return An unmodifiable map of query search terms.<a name="line.240"></a>
+<span class="sourceLineNo">241</span> */<a name="line.241"></a>
+<span class="sourceLineNo">242</span> public Map<String,String> getSearch() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> return search;<a name="line.243"></a>
+<span class="sourceLineNo">244</span> }<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span> /**<a name="line.246"></a>
+<span class="sourceLineNo">247</span> * The view columns.<a name="line.247"></a>
+<span class="sourceLineNo">248</span> * <p><a name="line.248"></a>
+<span class="sourceLineNo">249</span> * The view columns are the list of columns that should be displayed.<a name="line.249"></a>
+<span class="sourceLineNo">250</span> * An empty list implies all columns should be displayed.<a name="line.250"></a>
+<span class="sourceLineNo">251</span> *<a name="line.251"></a>
+<span class="sourceLineNo">252</span> * @return An unmodifiable list of columns to view.<a name="line.252"></a>
+<span class="sourceLineNo">253</span> */<a name="line.253"></a>
+<span class="sourceLineNo">254</span> public List<String> getView() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span> return view;<a name="line.255"></a>
+<span class="sourceLineNo">256</span> }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span> /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span> * The sort columns.<a name="line.259"></a>
+<span class="sourceLineNo">260</span> * <p><a name="line.260"></a>
+<span class="sourceLineNo">261</span> * The sort columns are key/value pairs consisting of column-names and direction flags<a name="line.261"></a>
+<span class="sourceLineNo">262</span> * (<jk>false</jk> = ascending, <jk>true</jk> = descending).<a name="line.262"></a>
+<span class="sourceLineNo">263</span> *<a name="line.263"></a>
+<span class="sourceLineNo">264</span> * @return An unmodifiable ordered map of sort columns and directions.<a name="line.264"></a>
+<span class="sourceLineNo">265</span> */<a name="line.265"></a>
+<span class="sourceLineNo">266</span> public Map<String,Boolean> getSort() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> return sort;<a name="line.267"></a>
+<span class="sourceLineNo">268</span> }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span> /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span> * The first-row position.<a name="line.271"></a>
+<span class="sourceLineNo">272</span> *<a name="line.272"></a>
+<span class="sourceLineNo">273</span> * @return The zero-indexed row number of the first row to display.<a name="line.273"></a>
+<span class="sourceLineNo">274</span> * Default is <code>0</code><a name="line.274"></a>
+<span class="sourceLineNo">275</span> */<a name="line.275"></a>
+<span class="sourceLineNo">276</span> public int getPosition() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> return position;<a name="line.277"></a>
+<span class="sourceLineNo">278</span> }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
+<span class="sourceLineNo">281</span> * The number of rows to return.<a name="line.281"></a>
+<span class="sourceLineNo">282</span> *<a name="line.282"></a>
+<span class="sourceLineNo">283</span> * @return The number of rows to return in the result.<a name="line.283"></a>
+<span class="sourceLineNo">284</span> * Default is <code>0</code> which means return all rows.<a name="line.284"></a>
+<span class="sourceLineNo">285</span> */<a name="line.285"></a>
+<span class="sourceLineNo">286</span> public int getLimit() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> return limit;<a name="line.287"></a>
+<span class="sourceLineNo">288</span> }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span> /**<a name="line.290"></a>
+<span class="sourceLineNo">291</span> * The ignore-case flag.<a name="line.291"></a>
+<span class="sourceLineNo">292</span> * <p><a name="line.292"></a>
+<span class="sourceLineNo">293</span> * Used in conjunction with {@link #getSearch()} to specify whether case-insensitive searches should be performed.<a name="line.293"></a>
+<span class="sourceLineNo">294</span> *<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * @return The number of rows to return in the result.<a name="line.295"></a>
+<span class="sourceLineNo">296</span> * Default is <jk>false</jk>.<a name="line.296"></a>
+<span class="sourceLineNo">297</span> */<a name="line.297"></a>
+<span class="sourceLineNo">298</span> public boolean isIgnoreCase() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span> return ignoreCase;<a name="line.299"></a>
+<span class="sourceLineNo">300</span> }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>}<a name="line.301"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.html b/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.html
new file mode 100644
index 0000000..6bf8c7b
--- /dev/null
+++ b/content/site/apidocs/src-html/org/apache/juneau/utils/SearchArgs.html
@@ -0,0 +1,373 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>// ***************************************************************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span>// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *<a name="line.2"></a>
+<span class="sourceLineNo">003</span>// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *<a name="line.3"></a>
+<span class="sourceLineNo">004</span>// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance *<a name="line.4"></a>
+<span class="sourceLineNo">005</span>// * with the License. You may obtain a copy of the License at *<a name="line.5"></a>
+<span class="sourceLineNo">006</span>// * *<a name="line.6"></a>
+<span class="sourceLineNo">007</span>// * http://www.apache.org/licenses/LICENSE-2.0 *<a name="line.7"></a>
+<span class="sourceLineNo">008</span>// * *<a name="line.8"></a>
+<span class="sourceLineNo">009</span>// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an *<a name="line.9"></a>
+<span class="sourceLineNo">010</span>// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the *<a name="line.10"></a>
+<span class="sourceLineNo">011</span>// * specific language governing permissions and limitations under the License. *<a name="line.11"></a>
+<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.apache.juneau.utils;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import static java.util.Collections.*;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import static org.apache.juneau.internal.StringUtils.*;<a name="line.16"></a>
+<span class="sourceLineNo">017</span><a name="line.17"></a>
+<span class="sourceLineNo">018</span>import java.util.*;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.juneau.internal.*;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>/**<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * Encapsulates arguments for basic search/view/sort/position/limit functionality.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> */<a name="line.24"></a>
+<span class="sourceLineNo">025</span>public class SearchArgs {<a name="line.25"></a>
+<span class="sourceLineNo">026</span> private final Map<String,String> search;<a name="line.26"></a>
+<span class="sourceLineNo">027</span> private final List<String> view;<a name="line.27"></a>
+<span class="sourceLineNo">028</span> private final Map<String,Boolean> sort;<a name="line.28"></a>
+<span class="sourceLineNo">029</span> private final int position, limit;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> private final boolean ignoreCase;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span> private SearchArgs(Builder b) {<a name="line.32"></a>
+<span class="sourceLineNo">033</span> this.search = unmodifiableMap(new LinkedHashMap<String,String>(b.search));<a name="line.33"></a>
+<span class="sourceLineNo">034</span> this.view = unmodifiableList(new ArrayList<String>(b.view));<a name="line.34"></a>
+<span class="sourceLineNo">035</span> this.sort = unmodifiableMap(new LinkedHashMap<String,Boolean>(b.sort));<a name="line.35"></a>
+<span class="sourceLineNo">036</span> this.position = b.position;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> this.limit = b.limit;<a name="line.37"></a>
+<span class="sourceLineNo">038</span> this.ignoreCase = b.ignoreCase;<a name="line.38"></a>
+<span class="sourceLineNo">039</span> }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span> /**<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * Builder for {@link SearchArgs} class.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> */<a name="line.43"></a>
+<span class="sourceLineNo">044</span> @SuppressWarnings("hiding")<a name="line.44"></a>
+<span class="sourceLineNo">045</span> public static class Builder {<a name="line.45"></a>
+<span class="sourceLineNo">046</span> Map<String,String> search = new LinkedHashMap<String,String>();<a name="line.46"></a>
+<span class="sourceLineNo">047</span> List<String> view = new ArrayList<String>();<a name="line.47"></a>
+<span class="sourceLineNo">048</span> Map<String,Boolean> sort = new LinkedHashMap<String,Boolean>();<a name="line.48"></a>
+<span class="sourceLineNo">049</span> int position, limit;<a name="line.49"></a>
+<span class="sourceLineNo">050</span> boolean ignoreCase;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span> /**<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * Adds search terms to this builder.<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * <p><a name="line.54"></a>
+<span class="sourceLineNo">055</span> * The search terms are a comma-delimited list of key/value pairs of column-names and search tokens.<a name="line.55"></a>
+<span class="sourceLineNo">056</span> * <p><a name="line.56"></a>
+<span class="sourceLineNo">057</span> * For example:<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * <p class='bcode'><a name="line.58"></a>
+<span class="sourceLineNo">059</span> * builder.search(<js>"column1=foo*, column2=bar baz"</js>);<a name="line.59"></a>
+<span class="sourceLineNo">060</span> * </p><a name="line.60"></a>
+<span class="sourceLineNo">061</span> * <p><a name="line.61"></a>
+<span class="sourceLineNo">062</span> * It's up to implementers to decide the syntax and meaning of the search terms.<a name="line.62"></a>
+<span class="sourceLineNo">063</span> * <p><a name="line.63"></a>
+<span class="sourceLineNo">064</span> * Whitespace is trimmed from column names and search tokens.<a name="line.64"></a>
+<span class="sourceLineNo">065</span> *<a name="line.65"></a>
+<span class="sourceLineNo">066</span> * @param searchTerms The search terms string.<a name="line.66"></a>
+<span class="sourceLineNo">067</span> * Can be <jk>null</jk>.<a name="line.67"></a>
+<span class="sourceLineNo">068</span> * @return This object (for method chaining).<a name="line.68"></a>
+<span class="sourceLineNo">069</span> */<a name="line.69"></a>
+<span class="sourceLineNo">070</span> public Builder search(String searchTerms) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span> if (searchTerms != null) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span> for (String s : StringUtils.split(searchTerms, ',')) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span> int i = StringUtils.indexOf(s, '=', '>', '<');<a name="line.73"></a>
+<span class="sourceLineNo">074</span> if (i == -1)<a name="line.74"></a>
+<span class="sourceLineNo">075</span> throw new RuntimeException("Invalid search terms: '"+searchTerms+"'");<a name="line.75"></a>
+<span class="sourceLineNo">076</span> char c = s.charAt(i);<a name="line.76"></a>
+<span class="sourceLineNo">077</span> search(s.substring(0, i).trim(), s.substring(c == '=' ? i+1 : i).trim());<a name="line.77"></a>
+<span class="sourceLineNo">078</span> }<a name="line.78"></a>
+<span class="sourceLineNo">079</span> }<a name="line.79"></a>
+<span class="sourceLineNo">080</span> return this;<a name="line.80"></a>
+<span class="sourceLineNo">081</span> }<a name="line.81"></a>
+<span class="sourceLineNo">082</span><a name="line.82"></a>
+<span class="sourceLineNo">083</span> /**<a name="line.83"></a>
+<span class="sourceLineNo">084</span> * Adds a search term to this builder.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
+<span class="sourceLineNo">086</span> * It's up to implementers to decide the syntax and meaning of the search term.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> *<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * @param column The column being searched.<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * @param searchTerm The search term.<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * @return This object (for method chaining).<a name="line.90"></a>
+<span class="sourceLineNo">091</span> */<a name="line.91"></a>
+<span class="sourceLineNo">092</span> public Builder search(String column, String searchTerm) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span> this.search.put(column, searchTerm);<a name="line.93"></a>
+<span class="sourceLineNo">094</span> return this;<a name="line.94"></a>
+<span class="sourceLineNo">095</span> }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span> /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span> * Specifies the list of columns to view.<a name="line.98"></a>
+<span class="sourceLineNo">099</span> * <p><a name="line.99"></a>
+<span class="sourceLineNo">100</span> * The columns argument is a simple comma-delimited list of column names.<a name="line.100"></a>
+<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
+<span class="sourceLineNo">102</span> * For example:<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * <p class='bcode'><a name="line.103"></a>
+<span class="sourceLineNo">104</span> * builder.view(<js>"column1, column2"</js>);<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * </p><a name="line.105"></a>
+<span class="sourceLineNo">106</span> * <p><a name="line.106"></a>
+<span class="sourceLineNo">107</span> * Whitespace is trimmed from column names.<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * <p><a name="line.108"></a>
+<span class="sourceLineNo">109</span> * Empty view columns imply view all columns.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> *<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * @param columns The columns being viewed.<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * Can be <jk>null</jk>.<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * @return This object (for method chaining).<a name="line.113"></a>
+<span class="sourceLineNo">114</span> */<a name="line.114"></a>
+<span class="sourceLineNo">115</span> public Builder view(String columns) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span> if (columns != null)<a name="line.116"></a>
+<span class="sourceLineNo">117</span> return view(Arrays.asList(StringUtils.split(columns, ',')));<a name="line.117"></a>
+<span class="sourceLineNo">118</span> return this;<a name="line.118"></a>
+<span class="sourceLineNo">119</span> }<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span> /**<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * Specifies the list of columns to view.<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * <p><a name="line.123"></a>
+<span class="sourceLineNo">124</span> * Empty view columns imply view all columns.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> *<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * @param columns The columns being viewed.<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * @return This object (for method chaining).<a name="line.127"></a>
+<span class="sourceLineNo">128</span> */<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public Builder view(Collection<String> columns) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> this.view.addAll(columns);<a name="line.130"></a>
+<span class="sourceLineNo">131</span> return this;<a name="line.131"></a>
+<span class="sourceLineNo">132</span> }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span> /**<a name="line.134"></a>
+<span class="sourceLineNo">135</span> * Specifies the sort arguments.<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * <p><a name="line.136"></a>
+<span class="sourceLineNo">137</span> * The sort argument is a simple comma-delimited list of column names.<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * <br>No suffix implies ascending order.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> * <p><a name="line.140"></a>
+<span class="sourceLineNo">141</span> * For example:<a name="line.141"></a>
+<span class="sourceLineNo">142</span> * <p class='bcode'><a name="line.142"></a>
+<span class="sourceLineNo">143</span> * <jc>// Order by column1 ascending, then column2 descending.</jc><a name="line.143"></a>
+<span class="sourceLineNo">144</span> * builder.sort(<js>"column1, column2-"</js>);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * </p><a name="line.145"></a>
+<span class="sourceLineNo">146</span> * <p><a name="line.146"></a>
+<span class="sourceLineNo">147</span> * Note that the order of the order arguments is important.<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * <p><a name="line.148"></a>
+<span class="sourceLineNo">149</span> * Whitespace is trimmed from column names.<a name="line.149"></a>
+<span class="sourceLineNo">150</span> *<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * @param sortArgs The columns to sort by.<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * Can be <jk>null</jk>.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * @return This object (for method chaining).<a name="line.153"></a>
+<span class="sourceLineNo">154</span> */<a name="line.154"></a>
+<span class="sourceLineNo">155</span> public Builder sort(String sortArgs) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span> if (sortArgs != null)<a name="line.156"></a>
+<span class="sourceLineNo">157</span> sort(Arrays.asList(StringUtils.split(sortArgs, ',')));<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return this;<a name="line.158"></a>
+<span class="sourceLineNo">159</span> }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span> /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span> * Specifies the sort arguments.<a name="line.162"></a>
+<span class="sourceLineNo">163</span> * <p><a name="line.163"></a>
+<span class="sourceLineNo">164</span> * <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.<a name="line.164"></a>
+<span class="sourceLineNo">165</span> * <br>No suffix implies ascending order.<a name="line.165"></a>
+<span class="sourceLineNo">166</span> * <p><a name="line.166"></a>
+<span class="sourceLineNo">167</span> * Note that the order of the sort is important.<a name="line.167"></a>
+<span class="sourceLineNo">168</span> *<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * @param sortArgs The columns to sort by.<a name="line.169"></a>
+<span class="sourceLineNo">170</span> * Can be <jk>null</jk>.<a name="line.170"></a>
+<span class="sourceLineNo">171</span> * @return This object (for method chaining).<a name="line.171"></a>
+<span class="sourceLineNo">172</span> */<a name="line.172"></a>
+<span class="sourceLineNo">173</span> public Builder sort(Collection<String> sortArgs) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> for (String s : sortArgs) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span> boolean isDesc = false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span> if (endsWith(s, '-', '+')) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span> isDesc = endsWith(s, '-');<a name="line.177"></a>
+<span class="sourceLineNo">178</span> s = s.substring(0, s.length()-1);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> }<a name="line.179"></a>
+<span class="sourceLineNo">180</span> this.sort.put(s, isDesc);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> }<a name="line.181"></a>
+<span class="sourceLineNo">182</span> return this;<a name="line.182"></a>
+<span class="sourceLineNo">183</span> }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span> /**<a name="line.185"></a>
+<span class="sourceLineNo">186</span> * Specifies the starting line number.<a name="line.186"></a>
+<span class="sourceLineNo">187</span> *<a name="line.187"></a>
+<span class="sourceLineNo">188</span> * @param position The zero-indexed position.<a name="line.188"></a>
+<span class="sourceLineNo">189</span> * @return This object (for method chaining).<a name="line.189"></a>
+<span class="sourceLineNo">190</span> */<a name="line.190"></a>
+<span class="sourceLineNo">191</span> public Builder position(int position) {<a name="line.191"></a>
+<span class="sourceLineNo">192</span> this.position = position;<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return this;<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span> /**<a name="line.196"></a>
+<span class="sourceLineNo">197</span> * Specifies the number of rows to return.<a name="line.197"></a>
+<span class="sourceLineNo">198</span> *<a name="line.198"></a>
+<span class="sourceLineNo">199</span> * @param limit The number of rows to return.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> * If <code>&lt;=0</code>, all rows should be returned.<a name="line.200"></a>
+<span class="sourceLineNo">201</span> * @return This object (for method chaining).<a name="line.201"></a>
+<span class="sourceLineNo">202</span> */<a name="line.202"></a>
+<span class="sourceLineNo">203</span> public Builder limit(int limit) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span> this.limit = limit;<a name="line.204"></a>
+<span class="sourceLineNo">205</span> return this;<a name="line.205"></a>
+<span class="sourceLineNo">206</span> }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span> * Specifies whether case-insensitive search should be used.<a name="line.209"></a>
+<span class="sourceLineNo">210</span> * <p><a name="line.210"></a>
+<span class="sourceLineNo">211</span> * The default is <jk>false</jk>.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> *<a name="line.212"></a>
+<span class="sourceLineNo">213</span> * @param value The ignore-case flag value.<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * @return This object (for method chaining).<a name="line.214"></a>
+<span class="sourceLineNo">215</span> */<a name="line.215"></a>
+<span class="sourceLineNo">216</span> public Builder ignoreCase(boolean value) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span> this.ignoreCase = value;<a name="line.217"></a>
+<span class="sourceLineNo">218</span> return this;<a name="line.218"></a>
+<span class="sourceLineNo">219</span> }<a name="line.219"></a>
+<span class="sourceLineNo">220</span><a name="line.220"></a>
+<span class="sourceLineNo">221</span> /**<a name="line.221"></a>
+<span class="sourceLineNo">222</span> * Construct the {@link SearchArgs} object.<a name="line.222"></a>
+<span class="sourceLineNo">223</span> * <p><a name="line.223"></a>
+<span class="sourceLineNo">224</span> * This method can be called multiple times to construct new objects.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> *<a name="line.225"></a>
+<span class="sourceLineNo">226</span> * @return A new {@link SearchArgs} object initialized with values in this builder.<a name="line.226"></a>
+<span class="sourceLineNo">227</span> */<a name="line.227"></a>
+<span class="sourceLineNo">228</span> public SearchArgs build() {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> return new SearchArgs(this);<a name="line.229"></a>
+<span class="sourceLineNo">230</span> }<a name="line.230"></a>
+<span class="sourceLineNo">231</span> }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span> * The query search terms.<a name="line.234"></a>
+<span class="sourceLineNo">235</span> * <p><a name="line.235"></a>
+<span class="sourceLineNo">236</span> * The search terms are key/value pairs consisting of column-names and search tokens.<a name="line.236"></a>
+<span class="sourceLineNo">237</span> * <p><a name="line.237"></a>
+<span class="sourceLineNo">238</span> * It's up to implementers to decide the syntax and meaning of the search term.<a name="line.238"></a>
+<span class="sourceLineNo">239</span> *<a name="line.239"></a>
+<span class="sourceLineNo">240</span> * @return An unmodifiable map of query search terms.<a name="line.240"></a>
+<span class="sourceLineNo">241</span> */<a name="line.241"></a>
+<span class="sourceLineNo">242</span> public Map<String,String> getSearch() {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> return search;<a name="line.243"></a>
+<span class="sourceLineNo">244</span> }<a name="line.244"></a>
+<span class="sourceLineNo">245</span><a name="line.245"></a>
+<span class="sourceLineNo">246</span> /**<a name="line.246"></a>
+<span class="sourceLineNo">247</span> * The view columns.<a name="line.247"></a>
+<span class="sourceLineNo">248</span> * <p><a name="line.248"></a>
+<span class="sourceLineNo">249</span> * The view columns are the list of columns that should be displayed.<a name="line.249"></a>
+<span class="sourceLineNo">250</span> * An empty list implies all columns should be displayed.<a name="line.250"></a>
+<span class="sourceLineNo">251</span> *<a name="line.251"></a>
+<span class="sourceLineNo">252</span> * @return An unmodifiable list of columns to view.<a name="line.252"></a>
+<span class="sourceLineNo">253</span> */<a name="line.253"></a>
+<span class="sourceLineNo">254</span> public List<String> getView() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span> return view;<a name="line.255"></a>
+<span class="sourceLineNo">256</span> }<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span> /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span> * The sort columns.<a name="line.259"></a>
+<span class="sourceLineNo">260</span> * <p><a name="line.260"></a>
+<span class="sourceLineNo">261</span> * The sort columns are key/value pairs consisting of column-names and direction flags<a name="line.261"></a>
+<span class="sourceLineNo">262</span> * (<jk>false</jk> = ascending, <jk>true</jk> = descending).<a name="line.262"></a>
+<span class="sourceLineNo">263</span> *<a name="line.263"></a>
+<span class="sourceLineNo">264</span> * @return An unmodifiable ordered map of sort columns and directions.<a name="line.264"></a>
+<span class="sourceLineNo">265</span> */<a name="line.265"></a>
+<span class="sourceLineNo">266</span> public Map<String,Boolean> getSort() {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> return sort;<a name="line.267"></a>
+<span class="sourceLineNo">268</span> }<a name="line.268"></a>
+<span class="sourceLineNo">269</span><a name="line.269"></a>
+<span class="sourceLineNo">270</span> /**<a name="line.270"></a>
+<span class="sourceLineNo">271</span> * The first-row position.<a name="line.271"></a>
+<span class="sourceLineNo">272</span> *<a name="line.272"></a>
+<span class="sourceLineNo">273</span> * @return The zero-indexed row number of the first row to display.<a name="line.273"></a>
+<span class="sourceLineNo">274</span> * Default is <code>0</code><a name="line.274"></a>
+<span class="sourceLineNo">275</span> */<a name="line.275"></a>
+<span class="sourceLineNo">276</span> public int getPosition() {<a name="line.276"></a>
+<span class="sourceLineNo">277</span> return position;<a name="line.277"></a>
+<span class="sourceLineNo">278</span> }<a name="line.278"></a>
+<span class="sourceLineNo">279</span><a name="line.279"></a>
+<span class="sourceLineNo">280</span> /**<a name="line.280"></a>
+<span class="sourceLineNo">281</span> * The number of rows to return.<a name="line.281"></a>
+<span class="sourceLineNo">282</span> *<a name="line.282"></a>
+<span class="sourceLineNo">283</span> * @return The number of rows to return in the result.<a name="line.283"></a>
+<span class="sourceLineNo">284</span> * Default is <code>0</code> which means return all rows.<a name="line.284"></a>
+<span class="sourceLineNo">285</span> */<a name="line.285"></a>
+<span class="sourceLineNo">286</span> public int getLimit() {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> return limit;<a name="line.287"></a>
+<span class="sourceLineNo">288</span> }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span> /**<a name="line.290"></a>
+<span class="sourceLineNo">291</span> * The ignore-case flag.<a name="line.291"></a>
+<span class="sourceLineNo">292</span> * <p><a name="line.292"></a>
+<span class="sourceLineNo">293</span> * Used in conjunction with {@link #getSearch()} to specify whether case-insensitive searches should be performed.<a name="line.293"></a>
+<span class="sourceLineNo">294</span> *<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * @return The number of rows to return in the result.<a name="line.295"></a>
+<span class="sourceLineNo">296</span> * Default is <jk>false</jk>.<a name="line.296"></a>
+<span class="sourceLineNo">297</span> */<a name="line.297"></a>
+<span class="sourceLineNo">298</span> public boolean isIgnoreCase() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span> return ignoreCase;<a name="line.299"></a>
+<span class="sourceLineNo">300</span> }<a name="line.300"></a>
+<span class="sourceLineNo">301</span>}<a name="line.301"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
[04/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/RequestQuery.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RequestQuery.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RequestQuery.html
index 56a74b4..f186f08 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/RequestQuery.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RequestQuery.html
@@ -32,138 +32,138 @@
<span class="sourceLineNo">024</span>import org.apache.juneau.json.*;<a name="line.24"></a>
<span class="sourceLineNo">025</span>import org.apache.juneau.parser.*;<a name="line.25"></a>
<span class="sourceLineNo">026</span>import org.apache.juneau.urlencoding.*;<a name="line.26"></a>
-<span class="sourceLineNo">027</span><a name="line.27"></a>
-<span class="sourceLineNo">028</span>/**<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * Represents the query parameters in an HTTP request.<a name="line.29"></a>
-<span class="sourceLineNo">030</span> */<a name="line.30"></a>
-<span class="sourceLineNo">031</span>@SuppressWarnings("unchecked")<a name="line.31"></a>
-<span class="sourceLineNo">032</span>public final class RequestQuery extends LinkedHashMap<String,String[]> {<a name="line.32"></a>
-<span class="sourceLineNo">033</span> private static final long serialVersionUID = 1L;<a name="line.33"></a>
-<span class="sourceLineNo">034</span><a name="line.34"></a>
-<span class="sourceLineNo">035</span> private UrlEncodingParser parser;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> private BeanSession beanSession;<a name="line.36"></a>
-<span class="sourceLineNo">037</span><a name="line.37"></a>
-<span class="sourceLineNo">038</span> RequestQuery setParser(UrlEncodingParser parser) {<a name="line.38"></a>
-<span class="sourceLineNo">039</span> this.parser = parser;<a name="line.39"></a>
-<span class="sourceLineNo">040</span> return this;<a name="line.40"></a>
-<span class="sourceLineNo">041</span> }<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span> RequestQuery setBeanSession(BeanSession beanSession) {<a name="line.43"></a>
-<span class="sourceLineNo">044</span> this.beanSession = beanSession;<a name="line.44"></a>
-<span class="sourceLineNo">045</span> return this;<a name="line.45"></a>
-<span class="sourceLineNo">046</span> }<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span> /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * Adds default entries to these query parameters.<a name="line.49"></a>
-<span class="sourceLineNo">050</span> * <p><a name="line.50"></a>
-<span class="sourceLineNo">051</span> * This includes the default queries defined on the servlet and method levels.<a name="line.51"></a>
-<span class="sourceLineNo">052</span> *<a name="line.52"></a>
-<span class="sourceLineNo">053</span> * @param defaultEntries The default entries. Can be <jk>null</jk>.<a name="line.53"></a>
-<span class="sourceLineNo">054</span> * @return This object (for method chaining).<a name="line.54"></a>
-<span class="sourceLineNo">055</span> */<a name="line.55"></a>
-<span class="sourceLineNo">056</span> public RequestQuery addDefault(Map<String,String> defaultEntries) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span> if (defaultEntries != null) {<a name="line.57"></a>
-<span class="sourceLineNo">058</span> for (Map.Entry<String,String> e : defaultEntries.entrySet()) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span> String key = e.getKey(), value = e.getValue();<a name="line.59"></a>
-<span class="sourceLineNo">060</span> String[] v = get(key);<a name="line.60"></a>
-<span class="sourceLineNo">061</span> if (v == null || v.length == 0 || StringUtils.isEmpty(v[0]))<a name="line.61"></a>
-<span class="sourceLineNo">062</span> put(key, new String[]{value});<a name="line.62"></a>
-<span class="sourceLineNo">063</span> }<a name="line.63"></a>
-<span class="sourceLineNo">064</span> }<a name="line.64"></a>
-<span class="sourceLineNo">065</span> return this;<a name="line.65"></a>
-<span class="sourceLineNo">066</span> }<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span> /**<a name="line.68"></a>
-<span class="sourceLineNo">069</span> * Sets a request query parameter value.<a name="line.69"></a>
-<span class="sourceLineNo">070</span> *<a name="line.70"></a>
-<span class="sourceLineNo">071</span> * @param name The parameter name.<a name="line.71"></a>
-<span class="sourceLineNo">072</span> * @param value The parameter value.<a name="line.72"></a>
-<span class="sourceLineNo">073</span> */<a name="line.73"></a>
-<span class="sourceLineNo">074</span> public void put(String name, Object value) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span> put(name, new String[]{StringUtils.toString(value)});<a name="line.75"></a>
-<span class="sourceLineNo">076</span> }<a name="line.76"></a>
-<span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span> /**<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * Returns a query parameter value.<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * <p><a name="line.80"></a>
-<span class="sourceLineNo">081</span> * Same as {@link HttpServletRequest#getParameter(String)} except only looks in the URL string, not parameters from URL-Encoded FORM posts.<a name="line.81"></a>
-<span class="sourceLineNo">082</span> * <p><a name="line.82"></a>
-<span class="sourceLineNo">083</span> * This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.<a name="line.83"></a>
-<span class="sourceLineNo">084</span> *<a name="line.84"></a>
-<span class="sourceLineNo">085</span> * @param name The URL parameter name.<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * @return The parameter value, or <jk>null</jk> if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.86"></a>
-<span class="sourceLineNo">087</span> */<a name="line.87"></a>
-<span class="sourceLineNo">088</span> public String getFirst(String name) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span> String[] v = get(name);<a name="line.89"></a>
-<span class="sourceLineNo">090</span> if (v == null || v.length == 0)<a name="line.90"></a>
-<span class="sourceLineNo">091</span> return null;<a name="line.91"></a>
-<span class="sourceLineNo">092</span><a name="line.92"></a>
-<span class="sourceLineNo">093</span> // Fix for behavior difference between Tomcat and WAS.<a name="line.93"></a>
-<span class="sourceLineNo">094</span> // getParameter("foo") on "&foo" in Tomcat returns "".<a name="line.94"></a>
-<span class="sourceLineNo">095</span> // getParameter("foo") on "&foo" in WAS returns null.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> if (v.length == 1 && v[0] == null)<a name="line.96"></a>
-<span class="sourceLineNo">097</span> return "";<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span> return v[0];<a name="line.99"></a>
-<span class="sourceLineNo">100</span> }<a name="line.100"></a>
+<span class="sourceLineNo">027</span>import org.apache.juneau.utils.*;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * Represents the query parameters in an HTTP request.<a name="line.30"></a>
+<span class="sourceLineNo">031</span> */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>@SuppressWarnings("unchecked")<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public final class RequestQuery extends LinkedHashMap<String,String[]> {<a name="line.33"></a>
+<span class="sourceLineNo">034</span> private static final long serialVersionUID = 1L;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span> private UrlEncodingParser parser;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> private BeanSession beanSession;<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span> RequestQuery setParser(UrlEncodingParser parser) {<a name="line.39"></a>
+<span class="sourceLineNo">040</span> this.parser = parser;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> return this;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span> RequestQuery setBeanSession(BeanSession beanSession) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span> this.beanSession = beanSession;<a name="line.45"></a>
+<span class="sourceLineNo">046</span> return this;<a name="line.46"></a>
+<span class="sourceLineNo">047</span> }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span> /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * Adds default entries to these query parameters.<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * <p><a name="line.51"></a>
+<span class="sourceLineNo">052</span> * This includes the default queries defined on the servlet and method levels.<a name="line.52"></a>
+<span class="sourceLineNo">053</span> *<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * @param defaultEntries The default entries. Can be <jk>null</jk>.<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * @return This object (for method chaining).<a name="line.55"></a>
+<span class="sourceLineNo">056</span> */<a name="line.56"></a>
+<span class="sourceLineNo">057</span> public RequestQuery addDefault(Map<String,String> defaultEntries) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span> if (defaultEntries != null) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span> for (Map.Entry<String,String> e : defaultEntries.entrySet()) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span> String key = e.getKey(), value = e.getValue();<a name="line.60"></a>
+<span class="sourceLineNo">061</span> String[] v = get(key);<a name="line.61"></a>
+<span class="sourceLineNo">062</span> if (v == null || v.length == 0 || StringUtils.isEmpty(v[0]))<a name="line.62"></a>
+<span class="sourceLineNo">063</span> put(key, new String[]{value});<a name="line.63"></a>
+<span class="sourceLineNo">064</span> }<a name="line.64"></a>
+<span class="sourceLineNo">065</span> }<a name="line.65"></a>
+<span class="sourceLineNo">066</span> return this;<a name="line.66"></a>
+<span class="sourceLineNo">067</span> }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span> /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span> * Sets a request query parameter value.<a name="line.70"></a>
+<span class="sourceLineNo">071</span> *<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * @param name The parameter name.<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * @param value The parameter value.<a name="line.73"></a>
+<span class="sourceLineNo">074</span> */<a name="line.74"></a>
+<span class="sourceLineNo">075</span> public void put(String name, Object value) {<a name="line.75"></a>
+<span class="sourceLineNo">076</span> put(name, new String[]{StringUtils.toString(value)});<a name="line.76"></a>
+<span class="sourceLineNo">077</span> }<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span> /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * Returns a query parameter value.<a name="line.80"></a>
+<span class="sourceLineNo">081</span> * <p><a name="line.81"></a>
+<span class="sourceLineNo">082</span> * Same as {@link HttpServletRequest#getParameter(String)} except only looks in the URL string, not parameters from URL-Encoded FORM posts.<a name="line.82"></a>
+<span class="sourceLineNo">083</span> * <p><a name="line.83"></a>
+<span class="sourceLineNo">084</span> * This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * <p><a name="line.85"></a>
+<span class="sourceLineNo">086</span> * If multiple query parameters have the same name, this returns only the first instance.<a name="line.86"></a>
+<span class="sourceLineNo">087</span> *<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * @param name The URL parameter name.<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * @return The parameter value, or <jk>null</jk> if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.89"></a>
+<span class="sourceLineNo">090</span> */<a name="line.90"></a>
+<span class="sourceLineNo">091</span> public String getString(String name) {<a name="line.91"></a>
+<span class="sourceLineNo">092</span> String[] v = get(name);<a name="line.92"></a>
+<span class="sourceLineNo">093</span> if (v == null || v.length == 0)<a name="line.93"></a>
+<span class="sourceLineNo">094</span> return null;<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span> // Fix for behavior difference between Tomcat and WAS.<a name="line.96"></a>
+<span class="sourceLineNo">097</span> // getParameter("foo") on "&foo" in Tomcat returns "".<a name="line.97"></a>
+<span class="sourceLineNo">098</span> // getParameter("foo") on "&foo" in WAS returns null.<a name="line.98"></a>
+<span class="sourceLineNo">099</span> if (v.length == 1 && v[0] == null)<a name="line.99"></a>
+<span class="sourceLineNo">100</span> return "";<a name="line.100"></a>
<span class="sourceLineNo">101</span><a name="line.101"></a>
-<span class="sourceLineNo">102</span> /**<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * Same as {@link #getFirst(String)} but returns the specified default value if the query parameter was not specified.<a name="line.103"></a>
-<span class="sourceLineNo">104</span> *<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * @param name The URL parameter name.<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * @param def The default value.<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * @return The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.107"></a>
-<span class="sourceLineNo">108</span> */<a name="line.108"></a>
-<span class="sourceLineNo">109</span> public String getFirst(String name, String def) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span> String s = getFirst(name);<a name="line.110"></a>
-<span class="sourceLineNo">111</span> return StringUtils.isEmpty(s) ? def : s;<a name="line.111"></a>
-<span class="sourceLineNo">112</span> }<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span> /**<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * Returns the specified query parameter value converted to a POJO.<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * <p><a name="line.116"></a>
-<span class="sourceLineNo">117</span> * This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * <p><a name="line.118"></a>
-<span class="sourceLineNo">119</span> * <h5 class='section'>Examples:</h5><a name="line.119"></a>
-<span class="sourceLineNo">120</span> * <p class='bcode'><a name="line.120"></a>
-<span class="sourceLineNo">121</span> * <jc>// Parse into an integer.</jc><a name="line.121"></a>
-<span class="sourceLineNo">122</span> * <jk>int</jk> myparam = req.getQueryParameter(<js>"myparam"</js>, <jk>int</jk>.<jk>class</jk>);<a name="line.122"></a>
-<span class="sourceLineNo">123</span> *<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * <jc>// Parse into an int array.</jc><a name="line.124"></a>
-<span class="sourceLineNo">125</span> * <jk>int</jk>[] myparam = req.getQueryParameter(<js>"myparam"</js>, <jk>int</jk>[].<jk>class</jk>);<a name="line.125"></a>
+<span class="sourceLineNo">102</span> return v[0];<a name="line.102"></a>
+<span class="sourceLineNo">103</span> }<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span> /**<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * Same as {@link #getString(String)} but returns the specified default value if the query parameter was not specified.<a name="line.106"></a>
+<span class="sourceLineNo">107</span> *<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * @param name The URL parameter name.<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * @param def The default value.<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * @return The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.110"></a>
+<span class="sourceLineNo">111</span> */<a name="line.111"></a>
+<span class="sourceLineNo">112</span> public String getString(String name, String def) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span> String s = getString(name);<a name="line.113"></a>
+<span class="sourceLineNo">114</span> return StringUtils.isEmpty(s) ? def : s;<a name="line.114"></a>
+<span class="sourceLineNo">115</span> }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span> /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * Same as {@link #getString(String)} but converts the value to an integer.<a name="line.118"></a>
+<span class="sourceLineNo">119</span> *<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * @param name The URL parameter name.<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * @return The parameter value, or <code>0</code> if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.121"></a>
+<span class="sourceLineNo">122</span> */<a name="line.122"></a>
+<span class="sourceLineNo">123</span> public int getInt(String name) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span> return getInt(name, 0);<a name="line.124"></a>
+<span class="sourceLineNo">125</span> }<a name="line.125"></a>
<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span> * <jc>// Parse into a bean.</jc><a name="line.127"></a>
-<span class="sourceLineNo">128</span> * MyBean myparam = req.getQueryParameter(<js>"myparam"</js>, MyBean.<jk>class</jk>);<a name="line.128"></a>
+<span class="sourceLineNo">127</span> /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span> * Same as {@link #getString(String,String)} but converts the value to an integer.<a name="line.128"></a>
<span class="sourceLineNo">129</span> *<a name="line.129"></a>
-<span class="sourceLineNo">130</span> * <jc>// Parse into a linked-list of objects.</jc><a name="line.130"></a>
-<span class="sourceLineNo">131</span> * List myparam = req.getQueryParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> *<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * <jc>// Parse into a map of object keys/values.</jc><a name="line.133"></a>
-<span class="sourceLineNo">134</span> * Map myparam = req.getQueryParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>);<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * </p><a name="line.135"></a>
-<span class="sourceLineNo">136</span> *<a name="line.136"></a>
-<span class="sourceLineNo">137</span> * @param name The parameter name.<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * @param type The class type to convert the parameter value to.<a name="line.138"></a>
-<span class="sourceLineNo">139</span> * @param <T> The class type to convert the parameter value to.<a name="line.139"></a>
-<span class="sourceLineNo">140</span> * @return The parameter value converted to the specified class type.<a name="line.140"></a>
-<span class="sourceLineNo">141</span> * @throws ParseException<a name="line.141"></a>
-<span class="sourceLineNo">142</span> */<a name="line.142"></a>
-<span class="sourceLineNo">143</span> public <T> T get(String name, Class<T> type) throws ParseException {<a name="line.143"></a>
-<span class="sourceLineNo">144</span> return get(name, beanSession.getClassMeta(type));<a name="line.144"></a>
-<span class="sourceLineNo">145</span> }<a name="line.145"></a>
-<span class="sourceLineNo">146</span><a name="line.146"></a>
-<span class="sourceLineNo">147</span> /**<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * Same as {@link #get(String, Class)} except returns a default value if not found.<a name="line.148"></a>
-<span class="sourceLineNo">149</span> *<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * @param name The parameter name.<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * @param def The default value if the parameter was not specified or is <jk>null</jk>.<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * @param type The class type to convert the parameter value to.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> * @param <T> The class type to convert the parameter value to.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * @return The parameter value converted to the specified class type.<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * @throws ParseException<a name="line.155"></a>
-<span class="sourceLineNo">156</span> */<a name="line.156"></a>
-<span class="sourceLineNo">157</span> public <T> T get(String name, T def, Class<T> type) throws ParseException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span> return get(name, def, beanSession.getClassMeta(type));<a name="line.158"></a>
+<span class="sourceLineNo">130</span> * @param name The URL parameter name.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> * @param def The default value.<a name="line.131"></a>
+<span class="sourceLineNo">132</span> * @return The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.132"></a>
+<span class="sourceLineNo">133</span> */<a name="line.133"></a>
+<span class="sourceLineNo">134</span> public int getInt(String name, int def) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span> String s = getString(name);<a name="line.135"></a>
+<span class="sourceLineNo">136</span> return StringUtils.isEmpty(s) ? def : Integer.parseInt(s);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span> /**<a name="line.139"></a>
+<span class="sourceLineNo">140</span> * Same as {@link #getString(String)} but converts the value to a boolean.<a name="line.140"></a>
+<span class="sourceLineNo">141</span> *<a name="line.141"></a>
+<span class="sourceLineNo">142</span> * @param name The URL parameter name.<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * @return The parameter value, or <jk>false</jk> if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.143"></a>
+<span class="sourceLineNo">144</span> */<a name="line.144"></a>
+<span class="sourceLineNo">145</span> public boolean getBoolean(String name) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> return getBoolean(name, false);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span><a name="line.148"></a>
+<span class="sourceLineNo">149</span> /**<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * Same as {@link #getString(String,String)} but converts the value to a boolean.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> *<a name="line.151"></a>
+<span class="sourceLineNo">152</span> * @param name The URL parameter name.<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * @param def The default value.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> * @return The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&amp;foo"</js>.<a name="line.154"></a>
+<span class="sourceLineNo">155</span> */<a name="line.155"></a>
+<span class="sourceLineNo">156</span> public boolean getBoolean(String name, boolean def) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span> String s = getString(name);<a name="line.157"></a>
+<span class="sourceLineNo">158</span> return StringUtils.isEmpty(s) ? def : Boolean.parseBoolean(s);<a name="line.158"></a>
<span class="sourceLineNo">159</span> }<a name="line.159"></a>
<span class="sourceLineNo">160</span><a name="line.160"></a>
<span class="sourceLineNo">161</span> /**<a name="line.161"></a>
@@ -171,171 +171,271 @@
<span class="sourceLineNo">163</span> * <p><a name="line.163"></a>
<span class="sourceLineNo">164</span> * This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.<a name="line.164"></a>
<span class="sourceLineNo">165</span> * <p><a name="line.165"></a>
-<span class="sourceLineNo">166</span> * Use this method if you want to parse into a parameterized <code>Map</code>/<code>Collection</code> object.<a name="line.166"></a>
-<span class="sourceLineNo">167</span> * <p><a name="line.167"></a>
-<span class="sourceLineNo">168</span> * <h5 class='section'>Examples:</h5><a name="line.168"></a>
-<span class="sourceLineNo">169</span> * <p class='bcode'><a name="line.169"></a>
-<span class="sourceLineNo">170</span> * <jc>// Parse into a linked-list of strings.</jc><a name="line.170"></a>
-<span class="sourceLineNo">171</span> * Listt&lt;String&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.171"></a>
-<span class="sourceLineNo">172</span> *<a name="line.172"></a>
-<span class="sourceLineNo">173</span> * <jc>// Parse into a linked-list of linked-lists of strings.</jc><a name="line.173"></a>
-<span class="sourceLineNo">174</span> * Listt&lt;List&lt;String&gt;&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.174"></a>
-<span class="sourceLineNo">175</span> *<a name="line.175"></a>
-<span class="sourceLineNo">176</span> * <jc>// Parse into a map of string keys/values.</jc><a name="line.176"></a>
-<span class="sourceLineNo">177</span> * Map&lt;String,String&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> *<a name="line.178"></a>
-<span class="sourceLineNo">179</span> * <jc>// Parse into a map containing string keys and values of lists containing beans.</jc><a name="line.179"></a>
-<span class="sourceLineNo">180</span> * Map&lt;String,List&lt;MyBean&gt;&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);<a name="line.180"></a>
-<span class="sourceLineNo">181</span> * </p><a name="line.181"></a>
-<span class="sourceLineNo">182</span> *<a name="line.182"></a>
-<span class="sourceLineNo">183</span> * @param name The parameter name.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> * @param type The type of object to create.<a name="line.184"></a>
-<span class="sourceLineNo">185</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.185"></a>
-<span class="sourceLineNo">186</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.186"></a>
-<span class="sourceLineNo">187</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.187"></a>
-<span class="sourceLineNo">188</span> * <br>Ignored if the main type is not a map or collection.<a name="line.188"></a>
-<span class="sourceLineNo">189</span> * @param <T> The class type to convert the parameter value to.<a name="line.189"></a>
-<span class="sourceLineNo">190</span> * @return The parameter value converted to the specified class type.<a name="line.190"></a>
-<span class="sourceLineNo">191</span> * @throws ParseException<a name="line.191"></a>
-<span class="sourceLineNo">192</span> */<a name="line.192"></a>
-<span class="sourceLineNo">193</span> public <T> T get(String name, Type type, Type...args) throws ParseException {<a name="line.193"></a>
-<span class="sourceLineNo">194</span> return (T)parse(name, beanSession.getClassMeta(type, args));<a name="line.194"></a>
-<span class="sourceLineNo">195</span> }<a name="line.195"></a>
-<span class="sourceLineNo">196</span><a name="line.196"></a>
-<span class="sourceLineNo">197</span> /**<a name="line.197"></a>
-<span class="sourceLineNo">198</span> * Same as {@link #get(String, Class)} except returns a default value if not found.<a name="line.198"></a>
-<span class="sourceLineNo">199</span> *<a name="line.199"></a>
-<span class="sourceLineNo">200</span> * @param name The parameter name.<a name="line.200"></a>
-<span class="sourceLineNo">201</span> * @param type The type of object to create.<a name="line.201"></a>
-<span class="sourceLineNo">202</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.202"></a>
-<span class="sourceLineNo">203</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.203"></a>
-<span class="sourceLineNo">204</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.204"></a>
-<span class="sourceLineNo">205</span> * <br>Ignored if the main type is not a map or collection.<a name="line.205"></a>
-<span class="sourceLineNo">206</span> * @param def The default value if the parameter was not specified or is <jk>null</jk>.<a name="line.206"></a>
-<span class="sourceLineNo">207</span> * @param <T> The class type to convert the parameter value to.<a name="line.207"></a>
-<span class="sourceLineNo">208</span> * @return The parameter value converted to the specified class type.<a name="line.208"></a>
-<span class="sourceLineNo">209</span> * @throws ParseException<a name="line.209"></a>
-<span class="sourceLineNo">210</span> */<a name="line.210"></a>
-<span class="sourceLineNo">211</span> public <T> T get(String name, Object def, Type type, Type...args) throws ParseException {<a name="line.211"></a>
-<span class="sourceLineNo">212</span> return (T)parse(name, def, beanSession.getClassMeta(type, args));<a name="line.212"></a>
-<span class="sourceLineNo">213</span> }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span> /**<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * Same as {@link #get(String, Class)} except for use on multi-part parameters<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * (e.g. <js>"&amp;key=1&amp;key=2&amp;key=3"</js> instead of <js>"&amp;key=(1,2,3)"</js>).<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * <p><a name="line.218"></a>
-<span class="sourceLineNo">219</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.219"></a>
-<span class="sourceLineNo">220</span> *<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * @param name The query parameter name.<a name="line.221"></a>
-<span class="sourceLineNo">222</span> * @param c The class type to convert the parameter value to.<a name="line.222"></a>
-<span class="sourceLineNo">223</span> * @param <T> The class type to convert the parameter value to.<a name="line.223"></a>
-<span class="sourceLineNo">224</span> * @return The query parameter value converted to the specified class type.<a name="line.224"></a>
-<span class="sourceLineNo">225</span> * @throws ParseException<a name="line.225"></a>
-<span class="sourceLineNo">226</span> */<a name="line.226"></a>
-<span class="sourceLineNo">227</span> public <T> T getAll(String name, Class<T> c) throws ParseException {<a name="line.227"></a>
-<span class="sourceLineNo">228</span> return getAll(name, beanSession.getClassMeta(c));<a name="line.228"></a>
-<span class="sourceLineNo">229</span> }<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * Same as {@link #get(String, Type, Type...)} except for use on multi-part parameters<a name="line.232"></a>
-<span class="sourceLineNo">233</span> * (e.g. <js>"&amp;key=1&amp;key=2&amp;key=3"</js> instead of <js>"&amp;key=(1,2,3)"</js>).<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * <p><a name="line.234"></a>
-<span class="sourceLineNo">235</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.235"></a>
-<span class="sourceLineNo">236</span> *<a name="line.236"></a>
-<span class="sourceLineNo">237</span> * @param name The query parameter name.<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * @param type The type of object to create.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.240"></a>
-<span class="sourceLineNo">241</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.241"></a>
-<span class="sourceLineNo">242</span> * <br>Ignored if the main type is not a map or collection.<a name="line.242"></a>
-<span class="sourceLineNo">243</span> * @param <T> The class type to convert the parameter value to.<a name="line.243"></a>
-<span class="sourceLineNo">244</span> * @return The query parameter value converted to the specified class type.<a name="line.244"></a>
-<span class="sourceLineNo">245</span> * @throws ParseException<a name="line.245"></a>
-<span class="sourceLineNo">246</span> */<a name="line.246"></a>
-<span class="sourceLineNo">247</span> public <T> T getAll(String name, Type type, Type...args) throws ParseException {<a name="line.247"></a>
-<span class="sourceLineNo">248</span> return (T)parseAll(name, beanSession.getClassMeta(type, args));<a name="line.248"></a>
-<span class="sourceLineNo">249</span> }<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span> /**<a name="line.251"></a>
-<span class="sourceLineNo">252</span> * Returns <jk>true</jk> if the request contains any of the specified query parameters.<a name="line.252"></a>
-<span class="sourceLineNo">253</span> *<a name="line.253"></a>
-<span class="sourceLineNo">254</span> * @param params The list of parameters to check for.<a name="line.254"></a>
-<span class="sourceLineNo">255</span> * @return <jk>true</jk> if the request contains any of the specified query parameters.<a name="line.255"></a>
-<span class="sourceLineNo">256</span> */<a name="line.256"></a>
-<span class="sourceLineNo">257</span> public boolean containsAnyKeys(String...params) {<a name="line.257"></a>
-<span class="sourceLineNo">258</span> for (String p : params)<a name="line.258"></a>
-<span class="sourceLineNo">259</span> if (containsKey(p))<a name="line.259"></a>
-<span class="sourceLineNo">260</span> return true;<a name="line.260"></a>
-<span class="sourceLineNo">261</span> return false;<a name="line.261"></a>
-<span class="sourceLineNo">262</span> }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span> /* Workhorse method */<a name="line.264"></a>
-<span class="sourceLineNo">265</span> private <T> T parse(String name, T def, ClassMeta<T> cm) throws ParseException {<a name="line.265"></a>
-<span class="sourceLineNo">266</span> String val = getFirst(name);<a name="line.266"></a>
-<span class="sourceLineNo">267</span> if (val == null)<a name="line.267"></a>
-<span class="sourceLineNo">268</span> return def;<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return parseValue(val, cm);<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /* Workhorse method */<a name="line.272"></a>
-<span class="sourceLineNo">273</span> private <T> T parse(String name, ClassMeta<T> cm) throws ParseException {<a name="line.273"></a>
-<span class="sourceLineNo">274</span> String val = getFirst(name);<a name="line.274"></a>
-<span class="sourceLineNo">275</span> if (cm.isPrimitive() && (val == null || val.isEmpty()))<a name="line.275"></a>
-<span class="sourceLineNo">276</span> return cm.getPrimitiveDefault();<a name="line.276"></a>
-<span class="sourceLineNo">277</span> return parseValue(val, cm);<a name="line.277"></a>
-<span class="sourceLineNo">278</span> }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> /* Workhorse method */<a name="line.280"></a>
-<span class="sourceLineNo">281</span> @SuppressWarnings("rawtypes")<a name="line.281"></a>
-<span class="sourceLineNo">282</span> private <T> T parseAll(String name, ClassMeta<T> cm) throws ParseException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span> String[] p = get(name);<a name="line.283"></a>
-<span class="sourceLineNo">284</span> if (p == null)<a name="line.284"></a>
-<span class="sourceLineNo">285</span> return null;<a name="line.285"></a>
-<span class="sourceLineNo">286</span> if (cm.isArray()) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span> List c = new ArrayList();<a name="line.287"></a>
-<span class="sourceLineNo">288</span> for (int i = 0; i < p.length; i++)<a name="line.288"></a>
-<span class="sourceLineNo">289</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.289"></a>
-<span class="sourceLineNo">290</span> return (T)toArray(c, cm.getElementType().getInnerClass());<a name="line.290"></a>
-<span class="sourceLineNo">291</span> } else if (cm.isCollection()) {<a name="line.291"></a>
-<span class="sourceLineNo">292</span> try {<a name="line.292"></a>
-<span class="sourceLineNo">293</span> Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());<a name="line.293"></a>
-<span class="sourceLineNo">294</span> for (int i = 0; i < p.length; i++)<a name="line.294"></a>
-<span class="sourceLineNo">295</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.295"></a>
-<span class="sourceLineNo">296</span> return (T)c;<a name="line.296"></a>
-<span class="sourceLineNo">297</span> } catch (ParseException e) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span> throw e;<a name="line.298"></a>
-<span class="sourceLineNo">299</span> } catch (Exception e) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span> // Typically an instantiation exception.<a name="line.300"></a>
-<span class="sourceLineNo">301</span> throw new ParseException(e);<a name="line.301"></a>
-<span class="sourceLineNo">302</span> }<a name="line.302"></a>
-<span class="sourceLineNo">303</span> }<a name="line.303"></a>
-<span class="sourceLineNo">304</span> throw new ParseException("Invalid call to getQueryParameters(String, ClassMeta). Class type must be a Collection or array.");<a name="line.304"></a>
-<span class="sourceLineNo">305</span> }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span> private <T> T parseValue(String val, ClassMeta<T> c) throws ParseException {<a name="line.307"></a>
-<span class="sourceLineNo">308</span> return parser.parse(PartType.QUERY, val, c);<a name="line.308"></a>
+<span class="sourceLineNo">166</span> * <h5 class='section'>Examples:</h5><a name="line.166"></a>
+<span class="sourceLineNo">167</span> * <p class='bcode'><a name="line.167"></a>
+<span class="sourceLineNo">168</span> * <jc>// Parse into an integer.</jc><a name="line.168"></a>
+<span class="sourceLineNo">169</span> * <jk>int</jk> myparam = req.getQueryParameter(<js>"myparam"</js>, <jk>int</jk>.<jk>class</jk>);<a name="line.169"></a>
+<span class="sourceLineNo">170</span> *<a name="line.170"></a>
+<span class="sourceLineNo">171</span> * <jc>// Parse into an int array.</jc><a name="line.171"></a>
+<span class="sourceLineNo">172</span> * <jk>int</jk>[] myparam = req.getQueryParameter(<js>"myparam"</js>, <jk>int</jk>[].<jk>class</jk>);<a name="line.172"></a>
+<span class="sourceLineNo">173</span><a name="line.173"></a>
+<span class="sourceLineNo">174</span> * <jc>// Parse into a bean.</jc><a name="line.174"></a>
+<span class="sourceLineNo">175</span> * MyBean myparam = req.getQueryParameter(<js>"myparam"</js>, MyBean.<jk>class</jk>);<a name="line.175"></a>
+<span class="sourceLineNo">176</span> *<a name="line.176"></a>
+<span class="sourceLineNo">177</span> * <jc>// Parse into a linked-list of objects.</jc><a name="line.177"></a>
+<span class="sourceLineNo">178</span> * List myparam = req.getQueryParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>);<a name="line.178"></a>
+<span class="sourceLineNo">179</span> *<a name="line.179"></a>
+<span class="sourceLineNo">180</span> * <jc>// Parse into a map of object keys/values.</jc><a name="line.180"></a>
+<span class="sourceLineNo">181</span> * Map myparam = req.getQueryParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>);<a name="line.181"></a>
+<span class="sourceLineNo">182</span> * </p><a name="line.182"></a>
+<span class="sourceLineNo">183</span> *<a name="line.183"></a>
+<span class="sourceLineNo">184</span> * @param name The parameter name.<a name="line.184"></a>
+<span class="sourceLineNo">185</span> * @param type The class type to convert the parameter value to.<a name="line.185"></a>
+<span class="sourceLineNo">186</span> * @param <T> The class type to convert the parameter value to.<a name="line.186"></a>
+<span class="sourceLineNo">187</span> * @return The parameter value converted to the specified class type.<a name="line.187"></a>
+<span class="sourceLineNo">188</span> * @throws ParseException<a name="line.188"></a>
+<span class="sourceLineNo">189</span> */<a name="line.189"></a>
+<span class="sourceLineNo">190</span> public <T> T get(String name, Class<T> type) throws ParseException {<a name="line.190"></a>
+<span class="sourceLineNo">191</span> return get(name, beanSession.getClassMeta(type));<a name="line.191"></a>
+<span class="sourceLineNo">192</span> }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span> /**<a name="line.194"></a>
+<span class="sourceLineNo">195</span> * Same as {@link #get(String, Class)} except returns a default value if not found.<a name="line.195"></a>
+<span class="sourceLineNo">196</span> *<a name="line.196"></a>
+<span class="sourceLineNo">197</span> * @param name The parameter name.<a name="line.197"></a>
+<span class="sourceLineNo">198</span> * @param def The default value if the parameter was not specified or is <jk>null</jk>.<a name="line.198"></a>
+<span class="sourceLineNo">199</span> * @param type The class type to convert the parameter value to.<a name="line.199"></a>
+<span class="sourceLineNo">200</span> * @param <T> The class type to convert the parameter value to.<a name="line.200"></a>
+<span class="sourceLineNo">201</span> * @return The parameter value converted to the specified class type.<a name="line.201"></a>
+<span class="sourceLineNo">202</span> * @throws ParseException<a name="line.202"></a>
+<span class="sourceLineNo">203</span> */<a name="line.203"></a>
+<span class="sourceLineNo">204</span> public <T> T get(String name, T def, Class<T> type) throws ParseException {<a name="line.204"></a>
+<span class="sourceLineNo">205</span> return get(name, def, beanSession.getClassMeta(type));<a name="line.205"></a>
+<span class="sourceLineNo">206</span> }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span> * Returns the specified query parameter value converted to a POJO.<a name="line.209"></a>
+<span class="sourceLineNo">210</span> * <p><a name="line.210"></a>
+<span class="sourceLineNo">211</span> * This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> * <p><a name="line.212"></a>
+<span class="sourceLineNo">213</span> * Use this method if you want to parse into a parameterized <code>Map</code>/<code>Collection</code> object.<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * <p><a name="line.214"></a>
+<span class="sourceLineNo">215</span> * <h5 class='section'>Examples:</h5><a name="line.215"></a>
+<span class="sourceLineNo">216</span> * <p class='bcode'><a name="line.216"></a>
+<span class="sourceLineNo">217</span> * <jc>// Parse into a linked-list of strings.</jc><a name="line.217"></a>
+<span class="sourceLineNo">218</span> * Listt&lt;String&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.218"></a>
+<span class="sourceLineNo">219</span> *<a name="line.219"></a>
+<span class="sourceLineNo">220</span> * <jc>// Parse into a linked-list of linked-lists of strings.</jc><a name="line.220"></a>
+<span class="sourceLineNo">221</span> * Listt&lt;List&lt;String&gt;&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> *<a name="line.222"></a>
+<span class="sourceLineNo">223</span> * <jc>// Parse into a map of string keys/values.</jc><a name="line.223"></a>
+<span class="sourceLineNo">224</span> * Map&lt;String,String&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> *<a name="line.225"></a>
+<span class="sourceLineNo">226</span> * <jc>// Parse into a map containing string keys and values of lists containing beans.</jc><a name="line.226"></a>
+<span class="sourceLineNo">227</span> * Map&lt;String,List&lt;MyBean&gt;&gt; myparam = req.getQueryParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);<a name="line.227"></a>
+<span class="sourceLineNo">228</span> * </p><a name="line.228"></a>
+<span class="sourceLineNo">229</span> *<a name="line.229"></a>
+<span class="sourceLineNo">230</span> * @param name The parameter name.<a name="line.230"></a>
+<span class="sourceLineNo">231</span> * @param type The type of object to create.<a name="line.231"></a>
+<span class="sourceLineNo">232</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.232"></a>
+<span class="sourceLineNo">233</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.233"></a>
+<span class="sourceLineNo">234</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.234"></a>
+<span class="sourceLineNo">235</span> * <br>Ignored if the main type is not a map or collection.<a name="line.235"></a>
+<span class="sourceLineNo">236</span> * @param <T> The class type to convert the parameter value to.<a name="line.236"></a>
+<span class="sourceLineNo">237</span> * @return The parameter value converted to the specified class type.<a name="line.237"></a>
+<span class="sourceLineNo">238</span> * @throws ParseException<a name="line.238"></a>
+<span class="sourceLineNo">239</span> */<a name="line.239"></a>
+<span class="sourceLineNo">240</span> public <T> T get(String name, Type type, Type...args) throws ParseException {<a name="line.240"></a>
+<span class="sourceLineNo">241</span> return (T)parse(name, beanSession.getClassMeta(type, args));<a name="line.241"></a>
+<span class="sourceLineNo">242</span> }<a name="line.242"></a>
+<span class="sourceLineNo">243</span><a name="line.243"></a>
+<span class="sourceLineNo">244</span> /**<a name="line.244"></a>
+<span class="sourceLineNo">245</span> * Same as {@link #get(String, Class)} except returns a default value if not found.<a name="line.245"></a>
+<span class="sourceLineNo">246</span> *<a name="line.246"></a>
+<span class="sourceLineNo">247</span> * @param name The parameter name.<a name="line.247"></a>
+<span class="sourceLineNo">248</span> * @param type The type of object to create.<a name="line.248"></a>
+<span class="sourceLineNo">249</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.249"></a>
+<span class="sourceLineNo">250</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.250"></a>
+<span class="sourceLineNo">251</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.251"></a>
+<span class="sourceLineNo">252</span> * <br>Ignored if the main type is not a map or collection.<a name="line.252"></a>
+<span class="sourceLineNo">253</span> * @param def The default value if the parameter was not specified or is <jk>null</jk>.<a name="line.253"></a>
+<span class="sourceLineNo">254</span> * @param <T> The class type to convert the parameter value to.<a name="line.254"></a>
+<span class="sourceLineNo">255</span> * @return The parameter value converted to the specified class type.<a name="line.255"></a>
+<span class="sourceLineNo">256</span> * @throws ParseException<a name="line.256"></a>
+<span class="sourceLineNo">257</span> */<a name="line.257"></a>
+<span class="sourceLineNo">258</span> public <T> T get(String name, Object def, Type type, Type...args) throws ParseException {<a name="line.258"></a>
+<span class="sourceLineNo">259</span> return (T)parse(name, def, beanSession.getClassMeta(type, args));<a name="line.259"></a>
+<span class="sourceLineNo">260</span> }<a name="line.260"></a>
+<span class="sourceLineNo">261</span><a name="line.261"></a>
+<span class="sourceLineNo">262</span> /**<a name="line.262"></a>
+<span class="sourceLineNo">263</span> * Same as {@link #get(String, Class)} except for use on multi-part parameters<a name="line.263"></a>
+<span class="sourceLineNo">264</span> * (e.g. <js>"&amp;key=1&amp;key=2&amp;key=3"</js> instead of <js>"&amp;key=(1,2,3)"</js>).<a name="line.264"></a>
+<span class="sourceLineNo">265</span> * <p><a name="line.265"></a>
+<span class="sourceLineNo">266</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.266"></a>
+<span class="sourceLineNo">267</span> *<a name="line.267"></a>
+<span class="sourceLineNo">268</span> * @param name The query parameter name.<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * @param c The class type to convert the parameter value to.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> * @param <T> The class type to convert the parameter value to.<a name="line.270"></a>
+<span class="sourceLineNo">271</span> * @return The query parameter value converted to the specified class type.<a name="line.271"></a>
+<span class="sourceLineNo">272</span> * @throws ParseException<a name="line.272"></a>
+<span class="sourceLineNo">273</span> */<a name="line.273"></a>
+<span class="sourceLineNo">274</span> public <T> T getAll(String name, Class<T> c) throws ParseException {<a name="line.274"></a>
+<span class="sourceLineNo">275</span> return getAll(name, beanSession.getClassMeta(c));<a name="line.275"></a>
+<span class="sourceLineNo">276</span> }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span> /**<a name="line.278"></a>
+<span class="sourceLineNo">279</span> * Same as {@link #get(String, Type, Type...)} except for use on multi-part parameters<a name="line.279"></a>
+<span class="sourceLineNo">280</span> * (e.g. <js>"&amp;key=1&amp;key=2&amp;key=3"</js> instead of <js>"&amp;key=(1,2,3)"</js>).<a name="line.280"></a>
+<span class="sourceLineNo">281</span> * <p><a name="line.281"></a>
+<span class="sourceLineNo">282</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.282"></a>
+<span class="sourceLineNo">283</span> *<a name="line.283"></a>
+<span class="sourceLineNo">284</span> * @param name The query parameter name.<a name="line.284"></a>
+<span class="sourceLineNo">285</span> * @param type The type of object to create.<a name="line.285"></a>
+<span class="sourceLineNo">286</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.286"></a>
+<span class="sourceLineNo">287</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.287"></a>
+<span class="sourceLineNo">288</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.288"></a>
+<span class="sourceLineNo">289</span> * <br>Ignored if the main type is not a map or collection.<a name="line.289"></a>
+<span class="sourceLineNo">290</span> * @param <T> The class type to convert the parameter value to.<a name="line.290"></a>
+<span class="sourceLineNo">291</span> * @return The query parameter value converted to the specified class type.<a name="line.291"></a>
+<span class="sourceLineNo">292</span> * @throws ParseException<a name="line.292"></a>
+<span class="sourceLineNo">293</span> */<a name="line.293"></a>
+<span class="sourceLineNo">294</span> public <T> T getAll(String name, Type type, Type...args) throws ParseException {<a name="line.294"></a>
+<span class="sourceLineNo">295</span> return (T)parseAll(name, beanSession.getClassMeta(type, args));<a name="line.295"></a>
+<span class="sourceLineNo">296</span> }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span> /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span> * Returns <jk>true</jk> if the request contains any of the specified query parameters.<a name="line.299"></a>
+<span class="sourceLineNo">300</span> *<a name="line.300"></a>
+<span class="sourceLineNo">301</span> * @param params The list of parameters to check for.<a name="line.301"></a>
+<span class="sourceLineNo">302</span> * @return <jk>true</jk> if the request contains any of the specified query parameters.<a name="line.302"></a>
+<span class="sourceLineNo">303</span> */<a name="line.303"></a>
+<span class="sourceLineNo">304</span> public boolean containsAnyKeys(String...params) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span> for (String p : params)<a name="line.305"></a>
+<span class="sourceLineNo">306</span> if (containsKey(p))<a name="line.306"></a>
+<span class="sourceLineNo">307</span> return true;<a name="line.307"></a>
+<span class="sourceLineNo">308</span> return false;<a name="line.308"></a>
<span class="sourceLineNo">309</span> }<a name="line.309"></a>
<span class="sourceLineNo">310</span><a name="line.310"></a>
<span class="sourceLineNo">311</span> /**<a name="line.311"></a>
-<span class="sourceLineNo">312</span> * Converts the query parameters to a readable string.<a name="line.312"></a>
-<span class="sourceLineNo">313</span> *<a name="line.313"></a>
-<span class="sourceLineNo">314</span> * @param sorted Sort the query parameters by name.<a name="line.314"></a>
-<span class="sourceLineNo">315</span> * @return A JSON string containing the contents of the query parameters.<a name="line.315"></a>
-<span class="sourceLineNo">316</span> */<a name="line.316"></a>
-<span class="sourceLineNo">317</span> public String toString(boolean sorted) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span> Map<String,Object> m = (sorted ? new TreeMap<String,Object>() : new LinkedHashMap<String,Object>());<a name="line.318"></a>
-<span class="sourceLineNo">319</span> for (Map.Entry<String,String[]> e : this.entrySet()) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String[] v = e.getValue();<a name="line.320"></a>
-<span class="sourceLineNo">321</span> m.put(e.getKey(), v.length == 1 ? v[0] : v);<a name="line.321"></a>
-<span class="sourceLineNo">322</span> }<a name="line.322"></a>
-<span class="sourceLineNo">323</span> return JsonSerializer.DEFAULT_LAX.toString(m);<a name="line.323"></a>
-<span class="sourceLineNo">324</span> }<a name="line.324"></a>
-<span class="sourceLineNo">325</span><a name="line.325"></a>
-<span class="sourceLineNo">326</span> @Override /* Object */<a name="line.326"></a>
-<span class="sourceLineNo">327</span> public String toString() {<a name="line.327"></a>
-<span class="sourceLineNo">328</span> return toString(false);<a name="line.328"></a>
-<span class="sourceLineNo">329</span> }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>}<a name="line.330"></a>
+<span class="sourceLineNo">312</span> * Locates the special search query arguments in the query and returns them as a {@link SearchArgs} object.<a name="line.312"></a>
+<span class="sourceLineNo">313</span> * <p><a name="line.313"></a>
+<span class="sourceLineNo">314</span> * The query arguments are as follows:<a name="line.314"></a>
+<span class="sourceLineNo">315</span> * <ul><a name="line.315"></a>
+<span class="sourceLineNo">316</span> * <li><js>"&s="</js> - A comma-delimited list of column-name/search-token pairs.<a name="line.316"></a>
+<span class="sourceLineNo">317</span> * <br>Example: <js>"&s=column1=foo*,column2=*bar"</js><a name="line.317"></a>
+<span class="sourceLineNo">318</span> * <li><js>"&v="</js> - A comma-delimited list column names to view.<a name="line.318"></a>
+<span class="sourceLineNo">319</span> * <br>Example: <js>"&v=column1,column2"</js><a name="line.319"></a>
+<span class="sourceLineNo">320</span> * <li><js>"&o="</js> - A comma-delimited list column names to sort by.<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * <br>Column names can be suffixed with <js>'-'</js> to indicate descending order.<a name="line.321"></a>
+<span class="sourceLineNo">322</span> * <br>Example: <js>"&o=column1,column2-"</js><a name="line.322"></a>
+<span class="sourceLineNo">323</span> * <li><js>"&p="</js> - The zero-index row number of the first row to display.<a name="line.323"></a>
+<span class="sourceLineNo">324</span> * <br>Example: <js>"&p=100"</js><a name="line.324"></a>
+<span class="sourceLineNo">325</span> * <li><js>"&l="</js> - The number of rows to return.<a name="line.325"></a>
+<span class="sourceLineNo">326</span> * <br><code>0</code> implies return all rows.<a name="line.326"></a>
+<span class="sourceLineNo">327</span> * <br>Example: <js>"&l=100"</js><a name="line.327"></a>
+<span class="sourceLineNo">328</span> * <li><js>"&i="</js> - The case-insensitive search flag.<a name="line.328"></a>
+<span class="sourceLineNo">329</span> * <br>Example: <js>"&i=true"</js><a name="line.329"></a>
+<span class="sourceLineNo">330</span> * </ul><a name="line.330"></a>
+<span class="sourceLineNo">331</span> * <p><a name="line.331"></a>
+<span class="sourceLineNo">332</span> * Whitespace is trimmed in the parameters.<a name="line.332"></a>
+<span class="sourceLineNo">333</span> *<a name="line.333"></a>
+<span class="sourceLineNo">334</span> * @return A new {@link SearchArgs} object initialized with the special search query arguments.<a name="line.334"></a>
+<span class="sourceLineNo">335</span> * <jk>null</jk> if no search arguments were found.<a name="line.335"></a>
+<span class="sourceLineNo">336</span> */<a name="line.336"></a>
+<span class="sourceLineNo">337</span> public SearchArgs getSearchArgs() {<a name="line.337"></a>
+<span class="sourceLineNo">338</span> if (hasAny("s","v","o","p","l","i")) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> return new SearchArgs.Builder()<a name="line.339"></a>
+<span class="sourceLineNo">340</span> .search(getString("s"))<a name="line.340"></a>
+<span class="sourceLineNo">341</span> .view(getString("v"))<a name="line.341"></a>
+<span class="sourceLineNo">342</span> .sort(getString("o"))<a name="line.342"></a>
+<span class="sourceLineNo">343</span> .position(getInt("p"))<a name="line.343"></a>
+<span class="sourceLineNo">344</span> .limit(getInt("l"))<a name="line.344"></a>
+<span class="sourceLineNo">345</span> .ignoreCase(getBoolean("i"))<a name="line.345"></a>
+<span class="sourceLineNo">346</span> .build();<a name="line.346"></a>
+<span class="sourceLineNo">347</span> }<a name="line.347"></a>
+<span class="sourceLineNo">348</span> return null;<a name="line.348"></a>
+<span class="sourceLineNo">349</span> }<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span> /**<a name="line.351"></a>
+<span class="sourceLineNo">352</span> * Returns <jk>true</jk> if the query parameters contains any of the specified names.<a name="line.352"></a>
+<span class="sourceLineNo">353</span> *<a name="line.353"></a>
+<span class="sourceLineNo">354</span> * @param paramNames The parameter names to check for.<a name="line.354"></a>
+<span class="sourceLineNo">355</span> * @return <jk>true</jk> if the query parameters contains any of the specified names.<a name="line.355"></a>
+<span class="sourceLineNo">356</span> */<a name="line.356"></a>
+<span class="sourceLineNo">357</span> public boolean hasAny(String...paramNames) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span> for (String p : paramNames)<a name="line.358"></a>
+<span class="sourceLineNo">359</span> if (containsKey(p))<a name="line.359"></a>
+<span class="sourceLineNo">360</span> return true;<a name="line.360"></a>
+<span class="sourceLineNo">361</span> return false;<a name="line.361"></a>
+<span class="sourceLineNo">362</span> }<a name="line.362"></a>
+<span class="sourceLineNo">363</span><a name="line.363"></a>
+<span class="sourceLineNo">364</span> /* Workhorse method */<a name="line.364"></a>
+<span class="sourceLineNo">365</span> private <T> T parse(String name, T def, ClassMeta<T> cm) throws ParseException {<a name="line.365"></a>
+<span class="sourceLineNo">366</span> String val = getString(name);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> if (val == null)<a name="line.367"></a>
+<span class="sourceLineNo">368</span> return def;<a name="line.368"></a>
+<span class="sourceLineNo">369</span> return parseValue(val, cm);<a name="line.369"></a>
+<span class="sourceLineNo">370</span> }<a name="line.370"></a>
+<span class="sourceLineNo">371</span><a name="line.371"></a>
+<span class="sourceLineNo">372</span> /* Workhorse method */<a name="line.372"></a>
+<span class="sourceLineNo">373</span> private <T> T parse(String name, ClassMeta<T> cm) throws ParseException {<a name="line.373"></a>
+<span class="sourceLineNo">374</span> String val = getString(name);<a name="line.374"></a>
+<span class="sourceLineNo">375</span> if (cm.isPrimitive() && (val == null || val.isEmpty()))<a name="line.375"></a>
+<span class="sourceLineNo">376</span> return cm.getPrimitiveDefault();<a name="line.376"></a>
+<span class="sourceLineNo">377</span> return parseValue(val, cm);<a name="line.377"></a>
+<span class="sourceLineNo">378</span> }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span> /* Workhorse method */<a name="line.380"></a>
+<span class="sourceLineNo">381</span> @SuppressWarnings("rawtypes")<a name="line.381"></a>
+<span class="sourceLineNo">382</span> private <T> T parseAll(String name, ClassMeta<T> cm) throws ParseException {<a name="line.382"></a>
+<span class="sourceLineNo">383</span> String[] p = get(name);<a name="line.383"></a>
+<span class="sourceLineNo">384</span> if (p == null)<a name="line.384"></a>
+<span class="sourceLineNo">385</span> return null;<a name="line.385"></a>
+<span class="sourceLineNo">386</span> if (cm.isArray()) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> List c = new ArrayList();<a name="line.387"></a>
+<span class="sourceLineNo">388</span> for (int i = 0; i < p.length; i++)<a name="line.388"></a>
+<span class="sourceLineNo">389</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.389"></a>
+<span class="sourceLineNo">390</span> return (T)toArray(c, cm.getElementType().getInnerClass());<a name="line.390"></a>
+<span class="sourceLineNo">391</span> } else if (cm.isCollection()) {<a name="line.391"></a>
+<span class="sourceLineNo">392</span> try {<a name="line.392"></a>
+<span class="sourceLineNo">393</span> Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());<a name="line.393"></a>
+<span class="sourceLineNo">394</span> for (int i = 0; i < p.length; i++)<a name="line.394"></a>
+<span class="sourceLineNo">395</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.395"></a>
+<span class="sourceLineNo">396</span> return (T)c;<a name="line.396"></a>
+<span class="sourceLineNo">397</span> } catch (ParseException e) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span> throw e;<a name="line.398"></a>
+<span class="sourceLineNo">399</span> } catch (Exception e) {<a name="line.399"></a>
+<span class="sourceLineNo">400</span> // Typically an instantiation exception.<a name="line.400"></a>
+<span class="sourceLineNo">401</span> throw new ParseException(e);<a name="line.401"></a>
+<span class="sourceLineNo">402</span> }<a name="line.402"></a>
+<span class="sourceLineNo">403</span> }<a name="line.403"></a>
+<span class="sourceLineNo">404</span> throw new ParseException("Invalid call to getQueryParameters(String, ClassMeta). Class type must be a Collection or array.");<a name="line.404"></a>
+<span class="sourceLineNo">405</span> }<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span> private <T> T parseValue(String val, ClassMeta<T> c) throws ParseException {<a name="line.407"></a>
+<span class="sourceLineNo">408</span> return parser.parse(PartType.QUERY, val, c);<a name="line.408"></a>
+<span class="sourceLineNo">409</span> }<a name="line.409"></a>
+<span class="sourceLineNo">410</span><a name="line.410"></a>
+<span class="sourceLineNo">411</span> /**<a name="line.411"></a>
+<span class="sourceLineNo">412</span> * Converts the query parameters to a readable string.<a name="line.412"></a>
+<span class="sourceLineNo">413</span> *<a name="line.413"></a>
+<span class="sourceLineNo">414</span> * @param sorted Sort the query parameters by name.<a name="line.414"></a>
+<span class="sourceLineNo">415</span> * @return A JSON string containing the contents of the query parameters.<a name="line.415"></a>
+<span class="sourceLineNo">416</span> */<a name="line.416"></a>
+<span class="sourceLineNo">417</span> public String toString(boolean sorted) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span> Map<String,Object> m = (sorted ? new TreeMap<String,Object>() : new LinkedHashMap<String,Object>());<a name="line.418"></a>
+<span class="sourceLineNo">419</span> for (Map.Entry<String,String[]> e : this.entrySet()) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span> String[] v = e.getValue();<a name="line.420"></a>
+<span class="sourceLineNo">421</span> m.put(e.getKey(), v.length == 1 ? v[0] : v);<a name="line.421"></a>
+<span class="sourceLineNo">422</span> }<a name="line.422"></a>
+<span class="sourceLineNo">423</span> return JsonSerializer.DEFAULT_LAX.toString(m);<a name="line.423"></a>
+<span class="sourceLineNo">424</span> }<a name="line.424"></a>
+<span class="sourceLineNo">425</span><a name="line.425"></a>
+<span class="sourceLineNo">426</span> @Override /* Object */<a name="line.426"></a>
+<span class="sourceLineNo">427</span> public String toString() {<a name="line.427"></a>
+<span class="sourceLineNo">428</span> return toString(false);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>}<a name="line.430"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/RestRequest.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RestRequest.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RestRequest.html
index 7ed9936..841c766 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/RestRequest.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RestRequest.html
@@ -118,7 +118,7 @@
<span class="sourceLineNo">110</span> // Can be overridden through a "method" GET attribute.<a name="line.110"></a>
<span class="sourceLineNo">111</span> String _method = super.getMethod();<a name="line.111"></a>
<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span> String m = getQuery().getFirst("method");<a name="line.113"></a>
+<span class="sourceLineNo">113</span> String m = getQuery().getString("method");<a name="line.113"></a>
<span class="sourceLineNo">114</span> if (context.allowMethodParam(m))<a name="line.114"></a>
<span class="sourceLineNo">115</span> _method = m;<a name="line.115"></a>
<span class="sourceLineNo">116</span><a name="line.116"></a>
@@ -133,7 +133,7 @@
<span class="sourceLineNo">125</span> body = new RequestBody(this);<a name="line.125"></a>
<span class="sourceLineNo">126</span><a name="line.126"></a>
<span class="sourceLineNo">127</span> if (context.isAllowBodyParam()) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> String b = getQuery().getFirst("body");<a name="line.128"></a>
+<span class="sourceLineNo">128</span> String b = getQuery().getString("body");<a name="line.128"></a>
<span class="sourceLineNo">129</span> if (b != null) {<a name="line.129"></a>
<span class="sourceLineNo">130</span> headers.put("Content-Type", UonSerializer.DEFAULT.getResponseContentType());<a name="line.130"></a>
<span class="sourceLineNo">131</span> body.load(b.getBytes(UTF8));<a name="line.131"></a>
@@ -143,7 +143,7 @@
<span class="sourceLineNo">135</span> if (context.isAllowHeaderParams())<a name="line.135"></a>
<span class="sourceLineNo">136</span> headers.setQueryParams(queryParams);<a name="line.136"></a>
<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span> debug = "true".equals(getQuery().getFirst("debug", "false")) || "true".equals(getHeaders().getFirst("Debug", "false"));<a name="line.138"></a>
+<span class="sourceLineNo">138</span> debug = "true".equals(getQuery().getString("debug", "false")) || "true".equals(getHeaders().getString("Debug", "false"));<a name="line.138"></a>
<span class="sourceLineNo">139</span><a name="line.139"></a>
<span class="sourceLineNo">140</span> this.pathParams = new RequestPathMatch();<a name="line.140"></a>
<span class="sourceLineNo">141</span><a name="line.141"></a>
@@ -161,11 +161,11 @@
<span class="sourceLineNo">153</span> final void init(Method javaMethod, ObjectMap properties, Map<String,String> defHeader,<a name="line.153"></a>
<span class="sourceLineNo">154</span> Map<String,String> defQuery, Map<String,String> defFormData, String defaultCharset,<a name="line.154"></a>
<span class="sourceLineNo">155</span> SerializerGroup mSerializers, ParserGroup mParsers, UrlEncodingParser mUrlEncodingParser,<a name="line.155"></a>
-<span class="sourceLineNo">156</span> EncoderGroup encoders, Map<String,Widget> widgets) {<a name="line.156"></a>
+<span class="sourceLineNo">156</span> BeanContext beanContext, EncoderGroup encoders, Map<String,Widget> widgets) {<a name="line.156"></a>
<span class="sourceLineNo">157</span> this.javaMethod = javaMethod;<a name="line.157"></a>
<span class="sourceLineNo">158</span> this.properties = properties;<a name="line.158"></a>
<span class="sourceLineNo">159</span> this.urlEncodingParser = mUrlEncodingParser;<a name="line.159"></a>
-<span class="sourceLineNo">160</span> this.beanSession = urlEncodingParser.getBeanContext().createSession();<a name="line.160"></a>
+<span class="sourceLineNo">160</span> this.beanSession = beanContext.createSession();<a name="line.160"></a>
<span class="sourceLineNo">161</span> this.pathParams<a name="line.161"></a>
<span class="sourceLineNo">162</span> .setParser(urlEncodingParser)<a name="line.162"></a>
<span class="sourceLineNo">163</span> .setBeanSession(beanSession);<a name="line.163"></a>
@@ -261,7 +261,7 @@
<span class="sourceLineNo">253</span><a name="line.253"></a>
<span class="sourceLineNo">254</span> @Override /* ServletRequest */<a name="line.254"></a>
<span class="sourceLineNo">255</span> public String getHeader(String name) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span> return getHeaders().getFirst(name);<a name="line.256"></a>
+<span class="sourceLineNo">256</span> return getHeaders().getString(name);<a name="line.256"></a>
<span class="sourceLineNo">257</span> }<a name="line.257"></a>
<span class="sourceLineNo">258</span><a name="line.258"></a>
<span class="sourceLineNo">259</span> @Override /* ServletRequest */<a name="line.259"></a>
@@ -314,7 +314,7 @@
<span class="sourceLineNo">306</span><a name="line.306"></a>
<span class="sourceLineNo">307</span> @Override /* ServletRequest */<a name="line.307"></a>
<span class="sourceLineNo">308</span> public Locale getLocale() {<a name="line.308"></a>
-<span class="sourceLineNo">309</span> String h = headers.getFirst("Accept-Language");<a name="line.309"></a>
+<span class="sourceLineNo">309</span> String h = headers.getString("Accept-Language");<a name="line.309"></a>
<span class="sourceLineNo">310</span> if (h != null) {<a name="line.310"></a>
<span class="sourceLineNo">311</span> MediaTypeRange[] mr = MediaTypeRange.parse(h);<a name="line.311"></a>
<span class="sourceLineNo">312</span> if (mr.length > 0)<a name="line.312"></a>
@@ -325,7 +325,7 @@
<span class="sourceLineNo">317</span><a name="line.317"></a>
<span class="sourceLineNo">318</span> @Override /* ServletRequest */<a name="line.318"></a>
<span class="sourceLineNo">319</span> public Enumeration<Locale> getLocales() {<a name="line.319"></a>
-<span class="sourceLineNo">320</span> String h = headers.getFirst("Accept-Language");<a name="line.320"></a>
+<span class="sourceLineNo">320</span> String h = headers.getString("Accept-Language");<a name="line.320"></a>
<span class="sourceLineNo">321</span> if (h != null) {<a name="line.321"></a>
<span class="sourceLineNo">322</span> MediaTypeRange[] mr = MediaTypeRange.parse(h);<a name="line.322"></a>
<span class="sourceLineNo">323</span> if (mr.length > 0) {<a name="line.323"></a>
@@ -357,12 +357,12 @@
<span class="sourceLineNo">349</span> }<a name="line.349"></a>
<span class="sourceLineNo">350</span><a name="line.350"></a>
<span class="sourceLineNo">351</span> /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span> * Shortcut for calling <code>getQuery().getFirst(name)</code>.<a name="line.352"></a>
+<span class="sourceLineNo">352</span> * Shortcut for calling <code>getQuery().getString(name)</code>.<a name="line.352"></a>
<span class="sourceLineNo">353</span> * @param name The query parameter name.<a name="line.353"></a>
<span class="sourceLineNo">354</span> * @return The query parameter value, or <jk>null<jk> if not found.<a name="line.354"></a>
<span class="sourceLineNo">355</span> */<a name="line.355"></a>
<span class="sourceLineNo">356</span> public String getQuery(String name) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span> return getQuery().getFirst(name);<a name="line.357"></a>
+<span class="sourceLineNo">357</span> return getQuery().getString(name);<a name="line.357"></a>
<span class="sourceLineNo">358</span> }<a name="line.358"></a>
<span class="sourceLineNo">359</span><a name="line.359"></a>
<span class="sourceLineNo">360</span><a name="line.360"></a>
@@ -397,12 +397,12 @@
<span class="sourceLineNo">389</span> }<a name="line.389"></a>
<span class="sourceLineNo">390</span><a name="line.390"></a>
<span class="sourceLineNo">391</span> /**<a name="line.391"></a>
-<span class="sourceLineNo">392</span> * Shortcut for calling <code>getFormData().getFirst(name)</code>.<a name="line.392"></a>
+<span class="sourceLineNo">392</span> * Shortcut for calling <code>getFormData().getString(name)</code>.<a name="line.392"></a>
<span class="sourceLineNo">393</span> * @param name The form data parameter name.<a name="line.393"></a>
<span class="sourceLineNo">394</span> * @return The form data parameter value, or <jk>null<jk> if not found.<a name="line.394"></a>
<span class="sourceLineNo">395</span> */<a name="line.395"></a>
<span class="sourceLineNo">396</span> public String getFormData(String name) {<a name="line.396"></a>
-<span class="sourceLineNo">397</span> return getFormData().getFirst(name);<a name="line.397"></a>
+<span class="sourceLineNo">397</span> return getFormData().getString(name);<a name="line.397"></a>
<span class="sourceLineNo">398</span> }<a name="line.398"></a>
<span class="sourceLineNo">399</span><a name="line.399"></a>
<span class="sourceLineNo">400</span><a name="line.400"></a>
@@ -621,7 +621,7 @@
<span class="sourceLineNo">613</span> * @return <jk>true</jk> if {@code &amp;plainText=true} was specified as a URL parameter<a name="line.613"></a>
<span class="sourceLineNo">614</span> */<a name="line.614"></a>
<span class="sourceLineNo">615</span> public boolean isPlainText() {<a name="line.615"></a>
-<span class="sourceLineNo">616</span> return "true".equals(getQuery().getFirst("plainText", "false"));<a name="line.616"></a>
+<span class="sourceLineNo">616</span> return "true".equals(getQuery().getString("plainText", "false"));<a name="line.616"></a>
<span class="sourceLineNo">617</span> }<a name="line.617"></a>
<span class="sourceLineNo">618</span><a name="line.618"></a>
<span class="sourceLineNo">619</span> /**<a name="line.619"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
index 649a79d..2f89399 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Introspectable.html
@@ -48,8 +48,8 @@
<span class="sourceLineNo">040</span> @Override /* RestConverter */<a name="line.40"></a>
<span class="sourceLineNo">041</span> @SuppressWarnings({"unchecked", "rawtypes"})<a name="line.41"></a>
<span class="sourceLineNo">042</span> public Object convert(RestRequest req, Object o, ClassMeta cm) throws RestException {<a name="line.42"></a>
-<span class="sourceLineNo">043</span> String method = req.getQuery().getFirst("invokeMethod");<a name="line.43"></a>
-<span class="sourceLineNo">044</span> String args = req.getQuery().getFirst("invokeArgs");<a name="line.44"></a>
+<span class="sourceLineNo">043</span> String method = req.getQuery().getString("invokeMethod");<a name="line.43"></a>
+<span class="sourceLineNo">044</span> String args = req.getQuery().getString("invokeArgs");<a name="line.44"></a>
<span class="sourceLineNo">045</span> if (method == null)<a name="line.45"></a>
<span class="sourceLineNo">046</span> return o;<a name="line.46"></a>
<span class="sourceLineNo">047</span> try {<a name="line.47"></a>
[07/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/internal/StringUtils.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/internal/StringUtils.html b/content/site/apidocs/src-html/org/apache/juneau/internal/StringUtils.html
index f8d6189..2dd5b0f 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/internal/StringUtils.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/internal/StringUtils.html
@@ -750,787 +750,826 @@
<span class="sourceLineNo">742</span> }<a name="line.742"></a>
<span class="sourceLineNo">743</span><a name="line.743"></a>
<span class="sourceLineNo">744</span> /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span> * Converts the specified number into a 4 hexadecimal characters.<a name="line.745"></a>
+<span class="sourceLineNo">745</span> * Same as {@link #endsWith(String, char)} except check for multiple characters.<a name="line.745"></a>
<span class="sourceLineNo">746</span> *<a name="line.746"></a>
-<span class="sourceLineNo">747</span> * @param num The number to convert to hex.<a name="line.747"></a>
-<span class="sourceLineNo">748</span> * @return A <code><jk>char</jk>[4]</code> containing the specified characters.<a name="line.748"></a>
-<span class="sourceLineNo">749</span> */<a name="line.749"></a>
-<span class="sourceLineNo">750</span> public static final char[] toHex(int num) {<a name="line.750"></a>
-<span class="sourceLineNo">751</span> char[] n = new char[4];<a name="line.751"></a>
-<span class="sourceLineNo">752</span> int a = num%16;<a name="line.752"></a>
-<span class="sourceLineNo">753</span> n[3] = (char)(a > 9 ? 'A'+a-10 : '0'+a);<a name="line.753"></a>
-<span class="sourceLineNo">754</span> int base = 16;<a name="line.754"></a>
-<span class="sourceLineNo">755</span> for (int i = 1; i < 4; i++) {<a name="line.755"></a>
-<span class="sourceLineNo">756</span> a = (num/base)%16;<a name="line.756"></a>
-<span class="sourceLineNo">757</span> base <<= 4;<a name="line.757"></a>
-<span class="sourceLineNo">758</span> n[3-i] = (char)(a > 9 ? 'A'+a-10 : '0'+a);<a name="line.758"></a>
-<span class="sourceLineNo">759</span> }<a name="line.759"></a>
-<span class="sourceLineNo">760</span> return n;<a name="line.760"></a>
-<span class="sourceLineNo">761</span> }<a name="line.761"></a>
-<span class="sourceLineNo">762</span><a name="line.762"></a>
-<span class="sourceLineNo">763</span> /**<a name="line.763"></a>
-<span class="sourceLineNo">764</span> * Tests two strings for equality, but gracefully handles nulls.<a name="line.764"></a>
-<span class="sourceLineNo">765</span> *<a name="line.765"></a>
-<span class="sourceLineNo">766</span> * @param s1 String 1.<a name="line.766"></a>
-<span class="sourceLineNo">767</span> * @param s2 String 2.<a name="line.767"></a>
-<span class="sourceLineNo">768</span> * @return <jk>true</jk> if the strings are equal.<a name="line.768"></a>
+<span class="sourceLineNo">747</span> * @param s The string to check. Can be <jk>null</jk>.<a name="line.747"></a>
+<span class="sourceLineNo">748</span> * @param c The characters to check for.<a name="line.748"></a>
+<span class="sourceLineNo">749</span> * @return <jk>true</jk> if the specified string is not <jk>null</jk> and ends with the specified character.<a name="line.749"></a>
+<span class="sourceLineNo">750</span> */<a name="line.750"></a>
+<span class="sourceLineNo">751</span> public static boolean endsWith(String s, char...c) {<a name="line.751"></a>
+<span class="sourceLineNo">752</span> if (s != null) {<a name="line.752"></a>
+<span class="sourceLineNo">753</span> int i = s.length();<a name="line.753"></a>
+<span class="sourceLineNo">754</span> if (i > 0) {<a name="line.754"></a>
+<span class="sourceLineNo">755</span> char c2 = s.charAt(i-1);<a name="line.755"></a>
+<span class="sourceLineNo">756</span> for (char cc : c)<a name="line.756"></a>
+<span class="sourceLineNo">757</span> if (c2 == cc)<a name="line.757"></a>
+<span class="sourceLineNo">758</span> return true;<a name="line.758"></a>
+<span class="sourceLineNo">759</span> }<a name="line.759"></a>
+<span class="sourceLineNo">760</span> }<a name="line.760"></a>
+<span class="sourceLineNo">761</span> return false;<a name="line.761"></a>
+<span class="sourceLineNo">762</span> }<a name="line.762"></a>
+<span class="sourceLineNo">763</span><a name="line.763"></a>
+<span class="sourceLineNo">764</span> /**<a name="line.764"></a>
+<span class="sourceLineNo">765</span> * Converts the specified number into a 4 hexadecimal characters.<a name="line.765"></a>
+<span class="sourceLineNo">766</span> *<a name="line.766"></a>
+<span class="sourceLineNo">767</span> * @param num The number to convert to hex.<a name="line.767"></a>
+<span class="sourceLineNo">768</span> * @return A <code><jk>char</jk>[4]</code> containing the specified characters.<a name="line.768"></a>
<span class="sourceLineNo">769</span> */<a name="line.769"></a>
-<span class="sourceLineNo">770</span> public static boolean isEquals(String s1, String s2) {<a name="line.770"></a>
-<span class="sourceLineNo">771</span> if (s1 == null)<a name="line.771"></a>
-<span class="sourceLineNo">772</span> return s2 == null;<a name="line.772"></a>
-<span class="sourceLineNo">773</span> if (s2 == null)<a name="line.773"></a>
-<span class="sourceLineNo">774</span> return false;<a name="line.774"></a>
-<span class="sourceLineNo">775</span> return s1.equals(s2);<a name="line.775"></a>
-<span class="sourceLineNo">776</span> }<a name="line.776"></a>
-<span class="sourceLineNo">777</span><a name="line.777"></a>
-<span class="sourceLineNo">778</span> /**<a name="line.778"></a>
-<span class="sourceLineNo">779</span> * Shortcut for calling <code>base64Encode(in.getBytes(<js>"UTF-8"</js>))</code><a name="line.779"></a>
-<span class="sourceLineNo">780</span> *<a name="line.780"></a>
-<span class="sourceLineNo">781</span> * @param in The input string to convert.<a name="line.781"></a>
-<span class="sourceLineNo">782</span> * @return The string converted to BASE-64 encoding.<a name="line.782"></a>
-<span class="sourceLineNo">783</span> */<a name="line.783"></a>
-<span class="sourceLineNo">784</span> public static String base64EncodeToString(String in) {<a name="line.784"></a>
-<span class="sourceLineNo">785</span> if (in == null)<a name="line.785"></a>
-<span class="sourceLineNo">786</span> return null;<a name="line.786"></a>
-<span class="sourceLineNo">787</span> return base64Encode(in.getBytes(IOUtils.UTF8));<a name="line.787"></a>
-<span class="sourceLineNo">788</span> }<a name="line.788"></a>
-<span class="sourceLineNo">789</span><a name="line.789"></a>
-<span class="sourceLineNo">790</span> /**<a name="line.790"></a>
-<span class="sourceLineNo">791</span> * BASE64-encodes the specified byte array.<a name="line.791"></a>
-<span class="sourceLineNo">792</span> *<a name="line.792"></a>
-<span class="sourceLineNo">793</span> * @param in The input byte array to convert.<a name="line.793"></a>
-<span class="sourceLineNo">794</span> * @return The byte array converted to a BASE-64 encoded string.<a name="line.794"></a>
-<span class="sourceLineNo">795</span> */<a name="line.795"></a>
-<span class="sourceLineNo">796</span> public static String base64Encode(byte[] in) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span> int outLength = (in.length * 4 + 2) / 3; // Output length without padding<a name="line.797"></a>
-<span class="sourceLineNo">798</span> char[] out = new char[((in.length + 2) / 3) * 4]; // Length includes padding.<a name="line.798"></a>
-<span class="sourceLineNo">799</span> int iIn = 0;<a name="line.799"></a>
-<span class="sourceLineNo">800</span> int iOut = 0;<a name="line.800"></a>
-<span class="sourceLineNo">801</span> while (iIn < in.length) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span> int i0 = in[iIn++] & 0xff;<a name="line.802"></a>
-<span class="sourceLineNo">803</span> int i1 = iIn < in.length ? in[iIn++] & 0xff : 0;<a name="line.803"></a>
-<span class="sourceLineNo">804</span> int i2 = iIn < in.length ? in[iIn++] & 0xff : 0;<a name="line.804"></a>
-<span class="sourceLineNo">805</span> int o0 = i0 >>> 2;<a name="line.805"></a>
-<span class="sourceLineNo">806</span> int o1 = ((i0 & 3) << 4) | (i1 >>> 4);<a name="line.806"></a>
-<span class="sourceLineNo">807</span> int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);<a name="line.807"></a>
-<span class="sourceLineNo">808</span> int o3 = i2 & 0x3F;<a name="line.808"></a>
-<span class="sourceLineNo">809</span> out[iOut++] = base64m1[o0];<a name="line.809"></a>
-<span class="sourceLineNo">810</span> out[iOut++] = base64m1[o1];<a name="line.810"></a>
-<span class="sourceLineNo">811</span> out[iOut] = iOut < outLength ? base64m1[o2] : '=';<a name="line.811"></a>
-<span class="sourceLineNo">812</span> iOut++;<a name="line.812"></a>
-<span class="sourceLineNo">813</span> out[iOut] = iOut < outLength ? base64m1[o3] : '=';<a name="line.813"></a>
-<span class="sourceLineNo">814</span> iOut++;<a name="line.814"></a>
-<span class="sourceLineNo">815</span> }<a name="line.815"></a>
-<span class="sourceLineNo">816</span> return new String(out);<a name="line.816"></a>
-<span class="sourceLineNo">817</span> }<a name="line.817"></a>
-<span class="sourceLineNo">818</span><a name="line.818"></a>
-<span class="sourceLineNo">819</span> /**<a name="line.819"></a>
-<span class="sourceLineNo">820</span> * Shortcut for calling <code>base64Decode(String)</code> and converting the<a name="line.820"></a>
-<span class="sourceLineNo">821</span> * result to a UTF-8 encoded string.<a name="line.821"></a>
-<span class="sourceLineNo">822</span> *<a name="line.822"></a>
-<span class="sourceLineNo">823</span> * @param in The BASE-64 encoded string to decode.<a name="line.823"></a>
-<span class="sourceLineNo">824</span> * @return The decoded string.<a name="line.824"></a>
-<span class="sourceLineNo">825</span> */<a name="line.825"></a>
-<span class="sourceLineNo">826</span> public static String base64DecodeToString(String in) {<a name="line.826"></a>
-<span class="sourceLineNo">827</span> byte[] b = base64Decode(in);<a name="line.827"></a>
-<span class="sourceLineNo">828</span> if (b == null)<a name="line.828"></a>
-<span class="sourceLineNo">829</span> return null;<a name="line.829"></a>
-<span class="sourceLineNo">830</span> return new String(b, IOUtils.UTF8);<a name="line.830"></a>
-<span class="sourceLineNo">831</span> }<a name="line.831"></a>
-<span class="sourceLineNo">832</span><a name="line.832"></a>
-<span class="sourceLineNo">833</span> /**<a name="line.833"></a>
-<span class="sourceLineNo">834</span> * BASE64-decodes the specified string.<a name="line.834"></a>
-<span class="sourceLineNo">835</span> *<a name="line.835"></a>
-<span class="sourceLineNo">836</span> * @param in The BASE-64 encoded string.<a name="line.836"></a>
-<span class="sourceLineNo">837</span> * @return The decoded byte array.<a name="line.837"></a>
-<span class="sourceLineNo">838</span> */<a name="line.838"></a>
-<span class="sourceLineNo">839</span> public static byte[] base64Decode(String in) {<a name="line.839"></a>
-<span class="sourceLineNo">840</span> if (in == null)<a name="line.840"></a>
-<span class="sourceLineNo">841</span> return null;<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span> byte bIn[] = in.getBytes(IOUtils.UTF8);<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span> if (bIn.length % 4 != 0)<a name="line.845"></a>
-<span class="sourceLineNo">846</span> illegalArg("Invalid BASE64 string length. Must be multiple of 4.");<a name="line.846"></a>
-<span class="sourceLineNo">847</span><a name="line.847"></a>
-<span class="sourceLineNo">848</span> // Strip out any trailing '=' filler characters.<a name="line.848"></a>
-<span class="sourceLineNo">849</span> int inLength = bIn.length;<a name="line.849"></a>
-<span class="sourceLineNo">850</span> while (inLength > 0 && bIn[inLength - 1] == '=')<a name="line.850"></a>
-<span class="sourceLineNo">851</span> inLength--;<a name="line.851"></a>
+<span class="sourceLineNo">770</span> public static final char[] toHex(int num) {<a name="line.770"></a>
+<span class="sourceLineNo">771</span> char[] n = new char[4];<a name="line.771"></a>
+<span class="sourceLineNo">772</span> int a = num%16;<a name="line.772"></a>
+<span class="sourceLineNo">773</span> n[3] = (char)(a > 9 ? 'A'+a-10 : '0'+a);<a name="line.773"></a>
+<span class="sourceLineNo">774</span> int base = 16;<a name="line.774"></a>
+<span class="sourceLineNo">775</span> for (int i = 1; i < 4; i++) {<a name="line.775"></a>
+<span class="sourceLineNo">776</span> a = (num/base)%16;<a name="line.776"></a>
+<span class="sourceLineNo">777</span> base <<= 4;<a name="line.777"></a>
+<span class="sourceLineNo">778</span> n[3-i] = (char)(a > 9 ? 'A'+a-10 : '0'+a);<a name="line.778"></a>
+<span class="sourceLineNo">779</span> }<a name="line.779"></a>
+<span class="sourceLineNo">780</span> return n;<a name="line.780"></a>
+<span class="sourceLineNo">781</span> }<a name="line.781"></a>
+<span class="sourceLineNo">782</span><a name="line.782"></a>
+<span class="sourceLineNo">783</span> /**<a name="line.783"></a>
+<span class="sourceLineNo">784</span> * Tests two strings for equality, but gracefully handles nulls.<a name="line.784"></a>
+<span class="sourceLineNo">785</span> *<a name="line.785"></a>
+<span class="sourceLineNo">786</span> * @param s1 String 1.<a name="line.786"></a>
+<span class="sourceLineNo">787</span> * @param s2 String 2.<a name="line.787"></a>
+<span class="sourceLineNo">788</span> * @return <jk>true</jk> if the strings are equal.<a name="line.788"></a>
+<span class="sourceLineNo">789</span> */<a name="line.789"></a>
+<span class="sourceLineNo">790</span> public static boolean isEquals(String s1, String s2) {<a name="line.790"></a>
+<span class="sourceLineNo">791</span> if (s1 == null)<a name="line.791"></a>
+<span class="sourceLineNo">792</span> return s2 == null;<a name="line.792"></a>
+<span class="sourceLineNo">793</span> if (s2 == null)<a name="line.793"></a>
+<span class="sourceLineNo">794</span> return false;<a name="line.794"></a>
+<span class="sourceLineNo">795</span> return s1.equals(s2);<a name="line.795"></a>
+<span class="sourceLineNo">796</span> }<a name="line.796"></a>
+<span class="sourceLineNo">797</span><a name="line.797"></a>
+<span class="sourceLineNo">798</span> /**<a name="line.798"></a>
+<span class="sourceLineNo">799</span> * Shortcut for calling <code>base64Encode(in.getBytes(<js>"UTF-8"</js>))</code><a name="line.799"></a>
+<span class="sourceLineNo">800</span> *<a name="line.800"></a>
+<span class="sourceLineNo">801</span> * @param in The input string to convert.<a name="line.801"></a>
+<span class="sourceLineNo">802</span> * @return The string converted to BASE-64 encoding.<a name="line.802"></a>
+<span class="sourceLineNo">803</span> */<a name="line.803"></a>
+<span class="sourceLineNo">804</span> public static String base64EncodeToString(String in) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span> if (in == null)<a name="line.805"></a>
+<span class="sourceLineNo">806</span> return null;<a name="line.806"></a>
+<span class="sourceLineNo">807</span> return base64Encode(in.getBytes(IOUtils.UTF8));<a name="line.807"></a>
+<span class="sourceLineNo">808</span> }<a name="line.808"></a>
+<span class="sourceLineNo">809</span><a name="line.809"></a>
+<span class="sourceLineNo">810</span> /**<a name="line.810"></a>
+<span class="sourceLineNo">811</span> * BASE64-encodes the specified byte array.<a name="line.811"></a>
+<span class="sourceLineNo">812</span> *<a name="line.812"></a>
+<span class="sourceLineNo">813</span> * @param in The input byte array to convert.<a name="line.813"></a>
+<span class="sourceLineNo">814</span> * @return The byte array converted to a BASE-64 encoded string.<a name="line.814"></a>
+<span class="sourceLineNo">815</span> */<a name="line.815"></a>
+<span class="sourceLineNo">816</span> public static String base64Encode(byte[] in) {<a name="line.816"></a>
+<span class="sourceLineNo">817</span> int outLength = (in.length * 4 + 2) / 3; // Output length without padding<a name="line.817"></a>
+<span class="sourceLineNo">818</span> char[] out = new char[((in.length + 2) / 3) * 4]; // Length includes padding.<a name="line.818"></a>
+<span class="sourceLineNo">819</span> int iIn = 0;<a name="line.819"></a>
+<span class="sourceLineNo">820</span> int iOut = 0;<a name="line.820"></a>
+<span class="sourceLineNo">821</span> while (iIn < in.length) {<a name="line.821"></a>
+<span class="sourceLineNo">822</span> int i0 = in[iIn++] & 0xff;<a name="line.822"></a>
+<span class="sourceLineNo">823</span> int i1 = iIn < in.length ? in[iIn++] & 0xff : 0;<a name="line.823"></a>
+<span class="sourceLineNo">824</span> int i2 = iIn < in.length ? in[iIn++] & 0xff : 0;<a name="line.824"></a>
+<span class="sourceLineNo">825</span> int o0 = i0 >>> 2;<a name="line.825"></a>
+<span class="sourceLineNo">826</span> int o1 = ((i0 & 3) << 4) | (i1 >>> 4);<a name="line.826"></a>
+<span class="sourceLineNo">827</span> int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);<a name="line.827"></a>
+<span class="sourceLineNo">828</span> int o3 = i2 & 0x3F;<a name="line.828"></a>
+<span class="sourceLineNo">829</span> out[iOut++] = base64m1[o0];<a name="line.829"></a>
+<span class="sourceLineNo">830</span> out[iOut++] = base64m1[o1];<a name="line.830"></a>
+<span class="sourceLineNo">831</span> out[iOut] = iOut < outLength ? base64m1[o2] : '=';<a name="line.831"></a>
+<span class="sourceLineNo">832</span> iOut++;<a name="line.832"></a>
+<span class="sourceLineNo">833</span> out[iOut] = iOut < outLength ? base64m1[o3] : '=';<a name="line.833"></a>
+<span class="sourceLineNo">834</span> iOut++;<a name="line.834"></a>
+<span class="sourceLineNo">835</span> }<a name="line.835"></a>
+<span class="sourceLineNo">836</span> return new String(out);<a name="line.836"></a>
+<span class="sourceLineNo">837</span> }<a name="line.837"></a>
+<span class="sourceLineNo">838</span><a name="line.838"></a>
+<span class="sourceLineNo">839</span> /**<a name="line.839"></a>
+<span class="sourceLineNo">840</span> * Shortcut for calling <code>base64Decode(String)</code> and converting the<a name="line.840"></a>
+<span class="sourceLineNo">841</span> * result to a UTF-8 encoded string.<a name="line.841"></a>
+<span class="sourceLineNo">842</span> *<a name="line.842"></a>
+<span class="sourceLineNo">843</span> * @param in The BASE-64 encoded string to decode.<a name="line.843"></a>
+<span class="sourceLineNo">844</span> * @return The decoded string.<a name="line.844"></a>
+<span class="sourceLineNo">845</span> */<a name="line.845"></a>
+<span class="sourceLineNo">846</span> public static String base64DecodeToString(String in) {<a name="line.846"></a>
+<span class="sourceLineNo">847</span> byte[] b = base64Decode(in);<a name="line.847"></a>
+<span class="sourceLineNo">848</span> if (b == null)<a name="line.848"></a>
+<span class="sourceLineNo">849</span> return null;<a name="line.849"></a>
+<span class="sourceLineNo">850</span> return new String(b, IOUtils.UTF8);<a name="line.850"></a>
+<span class="sourceLineNo">851</span> }<a name="line.851"></a>
<span class="sourceLineNo">852</span><a name="line.852"></a>
-<span class="sourceLineNo">853</span> int outLength = (inLength * 3) / 4;<a name="line.853"></a>
-<span class="sourceLineNo">854</span> byte[] out = new byte[outLength];<a name="line.854"></a>
-<span class="sourceLineNo">855</span> int iIn = 0;<a name="line.855"></a>
-<span class="sourceLineNo">856</span> int iOut = 0;<a name="line.856"></a>
-<span class="sourceLineNo">857</span> while (iIn < inLength) {<a name="line.857"></a>
-<span class="sourceLineNo">858</span> int i0 = bIn[iIn++];<a name="line.858"></a>
-<span class="sourceLineNo">859</span> int i1 = bIn[iIn++];<a name="line.859"></a>
-<span class="sourceLineNo">860</span> int i2 = iIn < inLength ? bIn[iIn++] : 'A';<a name="line.860"></a>
-<span class="sourceLineNo">861</span> int i3 = iIn < inLength ? bIn[iIn++] : 'A';<a name="line.861"></a>
-<span class="sourceLineNo">862</span> int b0 = base64m2[i0];<a name="line.862"></a>
-<span class="sourceLineNo">863</span> int b1 = base64m2[i1];<a name="line.863"></a>
-<span class="sourceLineNo">864</span> int b2 = base64m2[i2];<a name="line.864"></a>
-<span class="sourceLineNo">865</span> int b3 = base64m2[i3];<a name="line.865"></a>
-<span class="sourceLineNo">866</span> int o0 = (b0 << 2) | (b1 >>> 4);<a name="line.866"></a>
-<span class="sourceLineNo">867</span> int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2);<a name="line.867"></a>
-<span class="sourceLineNo">868</span> int o2 = ((b2 & 3) << 6) | b3;<a name="line.868"></a>
-<span class="sourceLineNo">869</span> out[iOut++] = (byte)o0;<a name="line.869"></a>
-<span class="sourceLineNo">870</span> if (iOut < outLength)<a name="line.870"></a>
-<span class="sourceLineNo">871</span> out[iOut++] = (byte)o1;<a name="line.871"></a>
-<span class="sourceLineNo">872</span> if (iOut < outLength)<a name="line.872"></a>
-<span class="sourceLineNo">873</span> out[iOut++] = (byte)o2;<a name="line.873"></a>
-<span class="sourceLineNo">874</span> }<a name="line.874"></a>
-<span class="sourceLineNo">875</span> return out;<a name="line.875"></a>
-<span class="sourceLineNo">876</span> }<a name="line.876"></a>
-<span class="sourceLineNo">877</span><a name="line.877"></a>
-<span class="sourceLineNo">878</span> /**<a name="line.878"></a>
-<span class="sourceLineNo">879</span> * Generated a random UUID with the specified number of characters.<a name="line.879"></a>
-<span class="sourceLineNo">880</span> * Characters are composed of lower-case ASCII letters and numbers only.<a name="line.880"></a>
-<span class="sourceLineNo">881</span> * This method conforms to the restrictions for hostnames as specified in <a class="doclink" href="https://tools.ietf.org/html/rfc952">RFC 952</a><a name="line.881"></a>
-<span class="sourceLineNo">882</span> * Since each character has 36 possible values, the square approximation formula for<a name="line.882"></a>
-<span class="sourceLineNo">883</span> * the number of generated IDs that would produce a 50% chance of collision is:<a name="line.883"></a>
-<span class="sourceLineNo">884</span> * <code>sqrt(36^N)</code>.<a name="line.884"></a>
-<span class="sourceLineNo">885</span> * Dividing this number by 10 gives you an approximation of the number of generated IDs<a name="line.885"></a>
-<span class="sourceLineNo">886</span> * needed to produce a &lt;1% chance of collision.<a name="line.886"></a>
-<span class="sourceLineNo">887</span> * For example, given 5 characters, the number of generated IDs need to produce a &lt;1% chance of<a name="line.887"></a>
-<span class="sourceLineNo">888</span> * collision would be:<a name="line.888"></a>
-<span class="sourceLineNo">889</span> * <code>sqrt(36^5)/10=777</code><a name="line.889"></a>
-<span class="sourceLineNo">890</span> *<a name="line.890"></a>
-<span class="sourceLineNo">891</span> * @param numchars The number of characters in the generated UUID.<a name="line.891"></a>
-<span class="sourceLineNo">892</span> * @return A new random UUID.<a name="line.892"></a>
-<span class="sourceLineNo">893</span> */<a name="line.893"></a>
-<span class="sourceLineNo">894</span> public static String generateUUID(int numchars) {<a name="line.894"></a>
-<span class="sourceLineNo">895</span> Random r = new Random();<a name="line.895"></a>
-<span class="sourceLineNo">896</span> StringBuilder sb = new StringBuilder(numchars);<a name="line.896"></a>
-<span class="sourceLineNo">897</span> for (int i = 0; i < numchars; i++) {<a name="line.897"></a>
-<span class="sourceLineNo">898</span> int c = r.nextInt(36) + 97;<a name="line.898"></a>
-<span class="sourceLineNo">899</span> if (c > 'z')<a name="line.899"></a>
-<span class="sourceLineNo">900</span> c -= ('z'-'0'+1);<a name="line.900"></a>
-<span class="sourceLineNo">901</span> sb.append((char)c);<a name="line.901"></a>
-<span class="sourceLineNo">902</span> }<a name="line.902"></a>
-<span class="sourceLineNo">903</span> return sb.toString();<a name="line.903"></a>
-<span class="sourceLineNo">904</span> }<a name="line.904"></a>
-<span class="sourceLineNo">905</span><a name="line.905"></a>
-<span class="sourceLineNo">906</span> /**<a name="line.906"></a>
-<span class="sourceLineNo">907</span> * Same as {@link String#trim()} but prevents <code>NullPointerExceptions</code>.<a name="line.907"></a>
-<span class="sourceLineNo">908</span> *<a name="line.908"></a>
-<span class="sourceLineNo">909</span> * @param s The string to trim.<a name="line.909"></a>
-<span class="sourceLineNo">910</span> * @return The trimmed string, or <jk>null</jk> if the string was <jk>null</jk>.<a name="line.910"></a>
-<span class="sourceLineNo">911</span> */<a name="line.911"></a>
-<span class="sourceLineNo">912</span> public static String trim(String s) {<a name="line.912"></a>
-<span class="sourceLineNo">913</span> if (s == null)<a name="line.913"></a>
-<span class="sourceLineNo">914</span> return null;<a name="line.914"></a>
-<span class="sourceLineNo">915</span> return s.trim();<a name="line.915"></a>
-<span class="sourceLineNo">916</span> }<a name="line.916"></a>
-<span class="sourceLineNo">917</span><a name="line.917"></a>
-<span class="sourceLineNo">918</span> /**<a name="line.918"></a>
-<span class="sourceLineNo">919</span> * Parses an ISO8601 string into a date.<a name="line.919"></a>
-<span class="sourceLineNo">920</span> *<a name="line.920"></a>
-<span class="sourceLineNo">921</span> * @param date The date string.<a name="line.921"></a>
-<span class="sourceLineNo">922</span> * @return The parsed date.<a name="line.922"></a>
-<span class="sourceLineNo">923</span> * @throws IllegalArgumentException<a name="line.923"></a>
-<span class="sourceLineNo">924</span> */<a name="line.924"></a>
-<span class="sourceLineNo">925</span> @SuppressWarnings("nls")<a name="line.925"></a>
-<span class="sourceLineNo">926</span> public static Date parseISO8601Date(String date) throws IllegalArgumentException {<a name="line.926"></a>
-<span class="sourceLineNo">927</span> if (isEmpty(date))<a name="line.927"></a>
-<span class="sourceLineNo">928</span> return null;<a name="line.928"></a>
-<span class="sourceLineNo">929</span> date = date.trim().replace(' ', 'T'); // Convert to 'standard' ISO8601<a name="line.929"></a>
-<span class="sourceLineNo">930</span> if (date.indexOf(',') != -1) // Trim milliseconds<a name="line.930"></a>
-<span class="sourceLineNo">931</span> date = date.substring(0, date.indexOf(','));<a name="line.931"></a>
-<span class="sourceLineNo">932</span> if (date.matches("\\d{4}"))<a name="line.932"></a>
-<span class="sourceLineNo">933</span> date += "-01-01T00:00:00";<a name="line.933"></a>
-<span class="sourceLineNo">934</span> else if (date.matches("\\d{4}\\-\\d{2}"))<a name="line.934"></a>
-<span class="sourceLineNo">935</span> date += "-01T00:00:00";<a name="line.935"></a>
-<span class="sourceLineNo">936</span> else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}"))<a name="line.936"></a>
-<span class="sourceLineNo">937</span> date += "T00:00:00";<a name="line.937"></a>
-<span class="sourceLineNo">938</span> else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}"))<a name="line.938"></a>
-<span class="sourceLineNo">939</span> date += ":00:00";<a name="line.939"></a>
-<span class="sourceLineNo">940</span> else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}"))<a name="line.940"></a>
-<span class="sourceLineNo">941</span> date += ":00";<a name="line.941"></a>
-<span class="sourceLineNo">942</span> return DatatypeConverter.parseDateTime(date).getTime();<a name="line.942"></a>
-<span class="sourceLineNo">943</span> }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span> /**<a name="line.945"></a>
-<span class="sourceLineNo">946</span> * Simple utility for replacing variables of the form <js>"{key}"</js> with values<a name="line.946"></a>
-<span class="sourceLineNo">947</span> * in the specified map.<a name="line.947"></a>
-<span class="sourceLineNo">948</span> * <p><a name="line.948"></a>
-<span class="sourceLineNo">949</span> * Nested variables are supported in both the input string and map values.<a name="line.949"></a>
-<span class="sourceLineNo">950</span> * <p><a name="line.950"></a>
-<span class="sourceLineNo">951</span> * If the map does not contain the specified value, the variable is not replaced.<a name="line.951"></a>
-<span class="sourceLineNo">952</span> * <p><a name="line.952"></a>
-<span class="sourceLineNo">953</span> * <jk>null</jk> values in the map are treated as blank strings.<a name="line.953"></a>
-<span class="sourceLineNo">954</span> *<a name="line.954"></a>
-<span class="sourceLineNo">955</span> * @param s The string containing variables to replace.<a name="line.955"></a>
-<span class="sourceLineNo">956</span> * @param m The map containing the variable values.<a name="line.956"></a>
-<span class="sourceLineNo">957</span> * @return The new string with variables replaced, or the original string if it didn't have variables in it.<a name="line.957"></a>
-<span class="sourceLineNo">958</span> */<a name="line.958"></a>
-<span class="sourceLineNo">959</span> public static String replaceVars(String s, Map<String,Object> m) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span> if (s.indexOf('{') == -1)<a name="line.961"></a>
-<span class="sourceLineNo">962</span> return s;<a name="line.962"></a>
-<span class="sourceLineNo">963</span><a name="line.963"></a>
-<span class="sourceLineNo">964</span> int S1 = 1; // Not in variable, looking for {<a name="line.964"></a>
-<span class="sourceLineNo">965</span> int S2 = 2; // Found {, Looking for }<a name="line.965"></a>
-<span class="sourceLineNo">966</span><a name="line.966"></a>
-<span class="sourceLineNo">967</span> int state = S1;<a name="line.967"></a>
-<span class="sourceLineNo">968</span> boolean hasInternalVar = false;<a name="line.968"></a>
-<span class="sourceLineNo">969</span> int x = 0;<a name="line.969"></a>
-<span class="sourceLineNo">970</span> int depth = 0;<a name="line.970"></a>
-<span class="sourceLineNo">971</span> int length = s.length();<a name="line.971"></a>
-<span class="sourceLineNo">972</span> StringBuilder out = new StringBuilder();<a name="line.972"></a>
-<span class="sourceLineNo">973</span> for (int i = 0; i < length; i++) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span> char c = s.charAt(i);<a name="line.974"></a>
-<span class="sourceLineNo">975</span> if (state == S1) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span> if (c == '{') {<a name="line.976"></a>
-<span class="sourceLineNo">977</span> state = S2;<a name="line.977"></a>
-<span class="sourceLineNo">978</span> x = i;<a name="line.978"></a>
-<span class="sourceLineNo">979</span> } else {<a name="line.979"></a>
-<span class="sourceLineNo">980</span> out.append(c);<a name="line.980"></a>
-<span class="sourceLineNo">981</span> }<a name="line.981"></a>
-<span class="sourceLineNo">982</span> } else /* state == S2 */ {<a name="line.982"></a>
-<span class="sourceLineNo">983</span> if (c == '{') {<a name="line.983"></a>
-<span class="sourceLineNo">984</span> depth++;<a name="line.984"></a>
-<span class="sourceLineNo">985</span> hasInternalVar = true;<a name="line.985"></a>
-<span class="sourceLineNo">986</span> } else if (c == '}') {<a name="line.986"></a>
-<span class="sourceLineNo">987</span> if (depth > 0) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span> depth--;<a name="line.988"></a>
-<span class="sourceLineNo">989</span> } else {<a name="line.989"></a>
-<span class="sourceLineNo">990</span> String key = s.substring(x+1, i);<a name="line.990"></a>
-<span class="sourceLineNo">991</span> key = (hasInternalVar ? replaceVars(key, m) : key);<a name="line.991"></a>
-<span class="sourceLineNo">992</span> hasInternalVar = false;<a name="line.992"></a>
-<span class="sourceLineNo">993</span> if (! m.containsKey(key))<a name="line.993"></a>
-<span class="sourceLineNo">994</span> out.append('{').append(key).append('}');<a name="line.994"></a>
-<span class="sourceLineNo">995</span> else {<a name="line.995"></a>
-<span class="sourceLineNo">996</span> Object val = m.get(key);<a name="line.996"></a>
-<span class="sourceLineNo">997</span> if (val == null)<a name="line.997"></a>
-<span class="sourceLineNo">998</span> val = "";<a name="line.998"></a>
-<span class="sourceLineNo">999</span> String v = val.toString();<a name="line.999"></a>
-<span class="sourceLineNo">1000</span> // If the replacement also contains variables, replace them now.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span> if (v.indexOf('{') != -1)<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span> v = replaceVars(v, m);<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span> out.append(v);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span> }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span> state = 1;<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span> }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span> }<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span> }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span> }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span> return out.toString();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span> }<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span><a name="line.1012"></a>
-<span class="sourceLineNo">1013</span> /**<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span> * Returns <jk>true</jk> if the specified path string is prefixed with the specified prefix.<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span> *<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span> * <h5 class='section'>Example:</h5><a name="line.1016"></a>
-<span class="sourceLineNo">1017</span> * <p class='bcode'><a name="line.1017"></a>
-<span class="sourceLineNo">1018</span> * pathStartsWith(<js>"foo"</js>, <js>"foo"</js>); <jc>// true</jc><a name="line.1018"></a>
-<span class="sourceLineNo">1019</span> * pathStartsWith(<js>"foo/bar"</js>, <js>"foo"</js>); <jc>// true</jc><a name="line.1019"></a>
-<span class="sourceLineNo">1020</span> * pathStartsWith(<js>"foo2"</js>, <js>"foo"</js>); <jc>// false</jc><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span> * pathStartsWith(<js>"foo2"</js>, <js>""</js>); <jc>// false</jc><a name="line.1021"></a>
-<span class="sourceLineNo">1022</span> * </p><a name="line.1022"></a>
-<span class="sourceLineNo">1023</span> *<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span> * @param path The path to check.<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span> * @param pathPrefix The prefix.<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span> * @return <jk>true</jk> if the specified path string is prefixed with the specified prefix.<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span> */<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span> public static boolean pathStartsWith(String path, String pathPrefix) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span> if (path == null || pathPrefix == null)<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span> return false;<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span> if (path.startsWith(pathPrefix))<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span> return path.length() == pathPrefix.length() || path.charAt(pathPrefix.length()) == '/';<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span> return false;<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span> }<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span><a name="line.1035"></a>
-<span class="sourceLineNo">1036</span> /**<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span> * Same as {@link #pathStartsWith(String, String)} but returns <jk>true</jk> if at least one prefix matches.<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span> * <p><a name="line.1038"></a>
-<span class="sourceLineNo">1039</span> *<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span> * @param path The path to check.<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span> * @param pathPrefixes The prefixes.<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span> * @return <jk>true</jk> if the specified path string is prefixed with any of the specified prefixes.<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span> */<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span> public static boolean pathStartsWith(String path, String[] pathPrefixes) {<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span> for (String p : pathPrefixes)<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span> if (pathStartsWith(path, p))<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span> return true;<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span> return false;<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span> }<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span><a name="line.1050"></a>
-<span class="sourceLineNo">1051</span> /**<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span> * Replaces <js>"\\uXXXX"</js> character sequences with their unicode characters.<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span> *<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span> * @param s The string to replace unicode sequences in.<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span> * @return A string with unicode sequences replaced.<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span> */<a name="line.1056"></a>
-<span class="sourceLineNo">1057</span> public static String replaceUnicodeSequences(String s) {<a name="line.1057"></a>
-<span class="sourceLineNo">1058</span> if (s.indexOf('\\') == -1)<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span> return s;<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span> Pattern p = Pattern.compile("\\\\u(\\p{XDigit}{4})");<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span> Matcher m = p.matcher(s);<a name="line.1061"></a>
-<span class="sourceLineNo">1062</span> StringBuffer sb = new StringBuffer(s.length());<a name="line.1062"></a>
-<span class="sourceLineNo">1063</span> while (m.find()) {<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span> String ch = String.valueOf((char) Integer.parseInt(m.group(1), 16));<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span> m.appendReplacement(sb, Matcher.quoteReplacement(ch));<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span> }<a name="line.1066"></a>
-<span class="sourceLineNo">1067</span> m.appendTail(sb);<a name="line.1067"></a>
-<span class="sourceLineNo">1068</span> return sb.toString();<a name="line.1068"></a>
+<span class="sourceLineNo">853</span> /**<a name="line.853"></a>
+<span class="sourceLineNo">854</span> * BASE64-decodes the specified string.<a name="line.854"></a>
+<span class="sourceLineNo">855</span> *<a name="line.855"></a>
+<span class="sourceLineNo">856</span> * @param in The BASE-64 encoded string.<a name="line.856"></a>
+<span class="sourceLineNo">857</span> * @return The decoded byte array.<a name="line.857"></a>
+<span class="sourceLineNo">858</span> */<a name="line.858"></a>
+<span class="sourceLineNo">859</span> public static byte[] base64Decode(String in) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span> if (in == null)<a name="line.860"></a>
+<span class="sourceLineNo">861</span> return null;<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span> byte bIn[] = in.getBytes(IOUtils.UTF8);<a name="line.863"></a>
+<span class="sourceLineNo">864</span><a name="line.864"></a>
+<span class="sourceLineNo">865</span> if (bIn.length % 4 != 0)<a name="line.865"></a>
+<span class="sourceLineNo">866</span> illegalArg("Invalid BASE64 string length. Must be multiple of 4.");<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span> // Strip out any trailing '=' filler characters.<a name="line.868"></a>
+<span class="sourceLineNo">869</span> int inLength = bIn.length;<a name="line.869"></a>
+<span class="sourceLineNo">870</span> while (inLength > 0 && bIn[inLength - 1] == '=')<a name="line.870"></a>
+<span class="sourceLineNo">871</span> inLength--;<a name="line.871"></a>
+<span class="sourceLineNo">872</span><a name="line.872"></a>
+<span class="sourceLineNo">873</span> int outLength = (inLength * 3) / 4;<a name="line.873"></a>
+<span class="sourceLineNo">874</span> byte[] out = new byte[outLength];<a name="line.874"></a>
+<span class="sourceLineNo">875</span> int iIn = 0;<a name="line.875"></a>
+<span class="sourceLineNo">876</span> int iOut = 0;<a name="line.876"></a>
+<span class="sourceLineNo">877</span> while (iIn < inLength) {<a name="line.877"></a>
+<span class="sourceLineNo">878</span> int i0 = bIn[iIn++];<a name="line.878"></a>
+<span class="sourceLineNo">879</span> int i1 = bIn[iIn++];<a name="line.879"></a>
+<span class="sourceLineNo">880</span> int i2 = iIn < inLength ? bIn[iIn++] : 'A';<a name="line.880"></a>
+<span class="sourceLineNo">881</span> int i3 = iIn < inLength ? bIn[iIn++] : 'A';<a name="line.881"></a>
+<span class="sourceLineNo">882</span> int b0 = base64m2[i0];<a name="line.882"></a>
+<span class="sourceLineNo">883</span> int b1 = base64m2[i1];<a name="line.883"></a>
+<span class="sourceLineNo">884</span> int b2 = base64m2[i2];<a name="line.884"></a>
+<span class="sourceLineNo">885</span> int b3 = base64m2[i3];<a name="line.885"></a>
+<span class="sourceLineNo">886</span> int o0 = (b0 << 2) | (b1 >>> 4);<a name="line.886"></a>
+<span class="sourceLineNo">887</span> int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2);<a name="line.887"></a>
+<span class="sourceLineNo">888</span> int o2 = ((b2 & 3) << 6) | b3;<a name="line.888"></a>
+<span class="sourceLineNo">889</span> out[iOut++] = (byte)o0;<a name="line.889"></a>
+<span class="sourceLineNo">890</span> if (iOut < outLength)<a name="line.890"></a>
+<span class="sourceLineNo">891</span> out[iOut++] = (byte)o1;<a name="line.891"></a>
+<span class="sourceLineNo">892</span> if (iOut < outLength)<a name="line.892"></a>
+<span class="sourceLineNo">893</span> out[iOut++] = (byte)o2;<a name="line.893"></a>
+<span class="sourceLineNo">894</span> }<a name="line.894"></a>
+<span class="sourceLineNo">895</span> return out;<a name="line.895"></a>
+<span class="sourceLineNo">896</span> }<a name="line.896"></a>
+<span class="sourceLineNo">897</span><a name="line.897"></a>
+<span class="sourceLineNo">898</span> /**<a name="line.898"></a>
+<span class="sourceLineNo">899</span> * Generated a random UUID with the specified number of characters.<a name="line.899"></a>
+<span class="sourceLineNo">900</span> * Characters are composed of lower-case ASCII letters and numbers only.<a name="line.900"></a>
+<span class="sourceLineNo">901</span> * This method conforms to the restrictions for hostnames as specified in <a class="doclink" href="https://tools.ietf.org/html/rfc952">RFC 952</a><a name="line.901"></a>
+<span class="sourceLineNo">902</span> * Since each character has 36 possible values, the square approximation formula for<a name="line.902"></a>
+<span class="sourceLineNo">903</span> * the number of generated IDs that would produce a 50% chance of collision is:<a name="line.903"></a>
+<span class="sourceLineNo">904</span> * <code>sqrt(36^N)</code>.<a name="line.904"></a>
+<span class="sourceLineNo">905</span> * Dividing this number by 10 gives you an approximation of the number of generated IDs<a name="line.905"></a>
+<span class="sourceLineNo">906</span> * needed to produce a &lt;1% chance of collision.<a name="line.906"></a>
+<span class="sourceLineNo">907</span> * For example, given 5 characters, the number of generated IDs need to produce a &lt;1% chance of<a name="line.907"></a>
+<span class="sourceLineNo">908</span> * collision would be:<a name="line.908"></a>
+<span class="sourceLineNo">909</span> * <code>sqrt(36^5)/10=777</code><a name="line.909"></a>
+<span class="sourceLineNo">910</span> *<a name="line.910"></a>
+<span class="sourceLineNo">911</span> * @param numchars The number of characters in the generated UUID.<a name="line.911"></a>
+<span class="sourceLineNo">912</span> * @return A new random UUID.<a name="line.912"></a>
+<span class="sourceLineNo">913</span> */<a name="line.913"></a>
+<span class="sourceLineNo">914</span> public static String generateUUID(int numchars) {<a name="line.914"></a>
+<span class="sourceLineNo">915</span> Random r = new Random();<a name="line.915"></a>
+<span class="sourceLineNo">916</span> StringBuilder sb = new StringBuilder(numchars);<a name="line.916"></a>
+<span class="sourceLineNo">917</span> for (int i = 0; i < numchars; i++) {<a name="line.917"></a>
+<span class="sourceLineNo">918</span> int c = r.nextInt(36) + 97;<a name="line.918"></a>
+<span class="sourceLineNo">919</span> if (c > 'z')<a name="line.919"></a>
+<span class="sourceLineNo">920</span> c -= ('z'-'0'+1);<a name="line.920"></a>
+<span class="sourceLineNo">921</span> sb.append((char)c);<a name="line.921"></a>
+<span class="sourceLineNo">922</span> }<a name="line.922"></a>
+<span class="sourceLineNo">923</span> return sb.toString();<a name="line.923"></a>
+<span class="sourceLineNo">924</span> }<a name="line.924"></a>
+<span class="sourceLineNo">925</span><a name="line.925"></a>
+<span class="sourceLineNo">926</span> /**<a name="line.926"></a>
+<span class="sourceLineNo">927</span> * Same as {@link String#trim()} but prevents <code>NullPointerExceptions</code>.<a name="line.927"></a>
+<span class="sourceLineNo">928</span> *<a name="line.928"></a>
+<span class="sourceLineNo">929</span> * @param s The string to trim.<a name="line.929"></a>
+<span class="sourceLineNo">930</span> * @return The trimmed string, or <jk>null</jk> if the string was <jk>null</jk>.<a name="line.930"></a>
+<span class="sourceLineNo">931</span> */<a name="line.931"></a>
+<span class="sourceLineNo">932</span> public static String trim(String s) {<a name="line.932"></a>
+<span class="sourceLineNo">933</span> if (s == null)<a name="line.933"></a>
+<span class="sourceLineNo">934</span> return null;<a name="line.934"></a>
+<span class="sourceLineNo">935</span> return s.trim();<a name="line.935"></a>
+<span class="sourceLineNo">936</span> }<a name="line.936"></a>
+<span class="sourceLineNo">937</span><a name="line.937"></a>
+<span class="sourceLineNo">938</span> /**<a name="line.938"></a>
+<span class="sourceLineNo">939</span> * Parses an ISO8601 string into a date.<a name="line.939"></a>
+<span class="sourceLineNo">940</span> *<a name="line.940"></a>
+<span class="sourceLineNo">941</span> * @param date The date string.<a name="line.941"></a>
+<span class="sourceLineNo">942</span> * @return The parsed date.<a name="line.942"></a>
+<span class="sourceLineNo">943</span> * @throws IllegalArgumentException<a name="line.943"></a>
+<span class="sourceLineNo">944</span> */<a name="line.944"></a>
+<span class="sourceLineNo">945</span> @SuppressWarnings("nls")<a name="line.945"></a>
+<span class="sourceLineNo">946</span> public static Date parseISO8601Date(String date) throws IllegalArgumentException {<a name="line.946"></a>
+<span class="sourceLineNo">947</span> if (isEmpty(date))<a name="line.947"></a>
+<span class="sourceLineNo">948</span> return null;<a name="line.948"></a>
+<span class="sourceLineNo">949</span> date = date.trim().replace(' ', 'T'); // Convert to 'standard' ISO8601<a name="line.949"></a>
+<span class="sourceLineNo">950</span> if (date.indexOf(',') != -1) // Trim milliseconds<a name="line.950"></a>
+<span class="sourceLineNo">951</span> date = date.substring(0, date.indexOf(','));<a name="line.951"></a>
+<span class="sourceLineNo">952</span> if (date.matches("\\d{4}"))<a name="line.952"></a>
+<span class="sourceLineNo">953</span> date += "-01-01T00:00:00";<a name="line.953"></a>
+<span class="sourceLineNo">954</span> else if (date.matches("\\d{4}\\-\\d{2}"))<a name="line.954"></a>
+<span class="sourceLineNo">955</span> date += "-01T00:00:00";<a name="line.955"></a>
+<span class="sourceLineNo">956</span> else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}"))<a name="line.956"></a>
+<span class="sourceLineNo">957</span> date += "T00:00:00";<a name="line.957"></a>
+<span class="sourceLineNo">958</span> else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}"))<a name="line.958"></a>
+<span class="sourceLineNo">959</span> date += ":00:00";<a name="line.959"></a>
+<span class="sourceLineNo">960</span> else if (date.matches("\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}"))<a name="line.960"></a>
+<span class="sourceLineNo">961</span> date += ":00";<a name="line.961"></a>
+<span class="sourceLineNo">962</span> return DatatypeConverter.parseDateTime(date).getTime();<a name="line.962"></a>
+<span class="sourceLineNo">963</span> }<a name="line.963"></a>
+<span class="sourceLineNo">964</span><a name="line.964"></a>
+<span class="sourceLineNo">965</span> /**<a name="line.965"></a>
+<span class="sourceLineNo">966</span> * Simple utility for replacing variables of the form <js>"{key}"</js> with values<a name="line.966"></a>
+<span class="sourceLineNo">967</span> * in the specified map.<a name="line.967"></a>
+<span class="sourceLineNo">968</span> * <p><a name="line.968"></a>
+<span class="sourceLineNo">969</span> * Nested variables are supported in both the input string and map values.<a name="line.969"></a>
+<span class="sourceLineNo">970</span> * <p><a name="line.970"></a>
+<span class="sourceLineNo">971</span> * If the map does not contain the specified value, the variable is not replaced.<a name="line.971"></a>
+<span class="sourceLineNo">972</span> * <p><a name="line.972"></a>
+<span class="sourceLineNo">973</span> * <jk>null</jk> values in the map are treated as blank strings.<a name="line.973"></a>
+<span class="sourceLineNo">974</span> *<a name="line.974"></a>
+<span class="sourceLineNo">975</span> * @param s The string containing variables to replace.<a name="line.975"></a>
+<span class="sourceLineNo">976</span> * @param m The map containing the variable values.<a name="line.976"></a>
+<span class="sourceLineNo">977</span> * @return The new string with variables replaced, or the original string if it didn't have variables in it.<a name="line.977"></a>
+<span class="sourceLineNo">978</span> */<a name="line.978"></a>
+<span class="sourceLineNo">979</span> public static String replaceVars(String s, Map<String,Object> m) {<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span> if (s.indexOf('{') == -1)<a name="line.981"></a>
+<span class="sourceLineNo">982</span> return s;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span> int S1 = 1; // Not in variable, looking for {<a name="line.984"></a>
+<span class="sourceLineNo">985</span> int S2 = 2; // Found {, Looking for }<a name="line.985"></a>
+<span class="sourceLineNo">986</span><a name="line.986"></a>
+<span class="sourceLineNo">987</span> int state = S1;<a name="line.987"></a>
+<span class="sourceLineNo">988</span> boolean hasInternalVar = false;<a name="line.988"></a>
+<span class="sourceLineNo">989</span> int x = 0;<a name="line.989"></a>
+<span class="sourceLineNo">990</span> int depth = 0;<a name="line.990"></a>
+<span class="sourceLineNo">991</span> int length = s.length();<a name="line.991"></a>
+<span class="sourceLineNo">992</span> StringBuilder out = new StringBuilder();<a name="line.992"></a>
+<span class="sourceLineNo">993</span> for (int i = 0; i < length; i++) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span> char c = s.charAt(i);<a name="line.994"></a>
+<span class="sourceLineNo">995</span> if (state == S1) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span> if (c == '{') {<a name="line.996"></a>
+<span class="sourceLineNo">997</span> state = S2;<a name="line.997"></a>
+<span class="sourceLineNo">998</span> x = i;<a name="line.998"></a>
+<span class="sourceLineNo">999</span> } else {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span> out.append(c);<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span> }<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span> } else /* state == S2 */ {<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span> if (c == '{') {<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span> depth++;<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span> hasInternalVar = true;<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span> } else if (c == '}') {<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span> if (depth > 0) {<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span> depth--;<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span> } else {<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span> String key = s.substring(x+1, i);<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span> key = (hasInternalVar ? replaceVars(key, m) : key);<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span> hasInternalVar = false;<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span> if (! m.containsKey(key))<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span> out.append('{').append(key).append('}');<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span> else {<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span> Object val = m.get(key);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span> if (val == null)<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span> val = "";<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span> String v = val.toString();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span> // If the replacement also contains variables, replace them now.<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span> if (v.indexOf('{') != -1)<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span> v = replaceVars(v, m);<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span> out.append(v);<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span> }<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span> state = 1;<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span> }<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span> }<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span> }<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span> }<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span> return out.toString();<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span> }<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span><a name="line.1032"></a>
+<span class="sourceLineNo">1033</span> /**<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span> * Returns <jk>true</jk> if the specified path string is prefixed with the specified prefix.<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span> *<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span> * <h5 class='section'>Example:</h5><a name="line.1036"></a>
+<span class="sourceLineNo">1037</span> * <p class='bcode'><a name="line.1037"></a>
+<span class="sourceLineNo">1038</span> * pathStartsWith(<js>"foo"</js>, <js>"foo"</js>); <jc>// true</jc><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span> * pathStartsWith(<js>"foo/bar"</js>, <js>"foo"</js>); <jc>// true</jc><a name="line.1039"></a>
+<span class="sourceLineNo">1040</span> * pathStartsWith(<js>"foo2"</js>, <js>"foo"</js>); <jc>// false</jc><a name="line.1040"></a>
+<span class="sourceLineNo">1041</span> * pathStartsWith(<js>"foo2"</js>, <js>""</js>); <jc>// false</jc><a name="line.1041"></a>
+<span class="sourceLineNo">1042</span> * </p><a name="line.1042"></a>
+<span class="sourceLineNo">1043</span> *<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span> * @param path The path to check.<a name="line.1044"></a>
+<span class="sourceLineNo">1045</span> * @param pathPrefix The prefix.<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span> * @return <jk>true</jk> if the specified path string is prefixed with the specified prefix.<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span> */<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span> public static boolean pathStartsWith(String path, String pathPrefix) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span> if (path == null || pathPrefix == null)<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span> return false;<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span> if (path.startsWith(pathPrefix))<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span> return path.length() == pathPrefix.length() || path.charAt(pathPrefix.length()) == '/';<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span> return false;<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span> }<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span><a name="line.1055"></a>
+<span class="sourceLineNo">1056</span> /**<a name="line.1056"></a>
+<span class="sourceLineNo">1057</span> * Same as {@link #pathStartsWith(String, String)} but returns <jk>true</jk> if at least one prefix matches.<a name="line.1057"></a>
+<span class="sourceLineNo">1058</span> * <p><a name="line.1058"></a>
+<span class="sourceLineNo">1059</span> *<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span> * @param path The path to check.<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span> * @param pathPrefixes The prefixes.<a name="line.1061"></a>
+<span class="sourceLineNo">1062</span> * @return <jk>true</jk> if the specified path string is prefixed with any of the specified prefixes.<a name="line.1062"></a>
+<span class="sourceLineNo">1063</span> */<a name="line.1063"></a>
+<span class="sourceLineNo">1064</span> public static boolean pathStartsWith(String path, String[] pathPrefixes) {<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span> for (String p : pathPrefixes)<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span> if (pathStartsWith(path, p))<a name="line.1066"></a>
+<span class="sourceLineNo">1067</span> return true;<a name="line.1067"></a>
+<span class="sourceLineNo">1068</span> return false;<a name="line.1068"></a>
<span class="sourceLineNo">1069</span> }<a name="line.1069"></a>
<span class="sourceLineNo">1070</span><a name="line.1070"></a>
<span class="sourceLineNo">1071</span> /**<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span> * Returns the specified field in a delimited string without splitting the string.<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span> * <p><a name="line.1073"></a>
-<span class="sourceLineNo">1074</span> * Equivalent to the following:<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span> * <p class='bcode'><a name="line.1075"></a>
-<span class="sourceLineNo">1076</span> * String in = <js>"0,1,2"</js>;<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span> * String[] parts = in.split(<js>","</js>);<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span> * String p1 = (parts.<jk>length</jk> > 1 ? parts[1] : <js>""</js>);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span> *<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span> * @param fieldNum The field number. Zero-indexed.<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span> * @param s The input string.<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span> * @param delim The delimiter character.<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span> * @return The field entry in the string, or a blank string if it doesn't exist or the string is null.<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span> */<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span> public static String getField(int fieldNum, String s, char delim) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span> return getField(fieldNum, s, delim, "");<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span> }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span><a name="line.1088"></a>
-<span class="sourceLineNo">1089</span> /**<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span> * Same as {@link #getField(int, String, char)} except allows you to specify the default value.<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span> *<a name="line.1091"></a>
-<span class="sourceLineNo">1092</span> * @param fieldNum The field number. Zero-indexed.<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span> * @param s The input string.<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span> * @param delim The delimiter character.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span> * @param def The default value if the field does not exist.<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span> * @return The field entry in the string, or the default value if it doesn't exist or the string is null.<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span> */<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span> public static String getField(int fieldNum, String s, char delim, String def) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span> if (s == null || fieldNum < 0)<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span> return def;<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span> int start = 0;<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span> for (int i = 0; i < s.length(); i++) {<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span> char c = s.charAt(i);<a name="line.1103"></a>
-<span class="sourceLineNo">1104</span> if (c == delim) {<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span> fieldNum--;<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span> if (fieldNum == 0)<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span> start = i+1;<a name="line.1107"></a>
-<span class="sourceLineNo">1108</span> }<a name="line.1108"></a>
-<span class="sourceLineNo">1109</span> if (fieldNum < 0)<a name="line.1109"></a>
-<span class="sourceLineNo">1110</span> return s.substring(start, i);<a name="line.1110"></a>
-<span class="sourceLineNo">1111</span> }<a name="line.1111"></a>
-<span class="sourceLineNo">1112</span> if (start == 0)<a name="line.1112"></a>
-<span class="sourceLineNo">1113</span> return def;<a name="line.1113"></a>
-<span class="sourceLineNo">1114</span> return s.substring(start);<a name="line.1114"></a>
-<span class="sourceLineNo">1115</span> }<a name="line.1115"></a>
-<span class="sourceLineNo">1116</span><a name="line.1116"></a>
-<span class="sourceLineNo">1117</span> /**<a name="line.1117"></a>
-<span class="sourceLineNo">1118</span> * Calls {@link #toString()} on the specified object if it's not null.<a name="line.1118"></a>
-<span class="sourceLineNo">1119</span> *<a name="line.1119"></a>
-<span class="sourceLineNo">1120</span> * @param o The object to convert to a string.<a name="line.1120"></a>
-<span class="sourceLineNo">1121</span> * @return The object converted to a string, or <jk>null</jk> if the object was null.<a name="line.1121"></a>
-<span class="sourceLineNo">1122</span> */<a name="line.1122"></a>
-<span class="sourceLineNo">1123</span> public static String toString(Object o) {<a name="line.1123"></a>
-<span class="sourceLineNo">1124</span> return (o == null ? null : o.toString());<a name="line.1124"></a>
-<span class="sourceLineNo">1125</span> }<a name="line.1125"></a>
-<span class="sourceLineNo">1126</span><a name="line.1126"></a>
-<span class="sourceLineNo">1127</span> /**<a name="line.1127"></a>
-<span class="sourceLineNo">1128</span> * Converts a hexadecimal byte stream (e.g. "34A5BC") into a UTF-8 encoded string.<a name="line.1128"></a>
-<span class="sourceLineNo">1129</span> *<a name="line.1129"></a>
-<span class="sourceLineNo">1130</span> * @param hex The hexadecimal string.<a name="line.1130"></a>
-<span class="sourceLineNo">1131</span> * @return The UTF-8 string.<a name="line.1131"></a>
-<span class="sourceLineNo">1132</span> */<a name="line.1132"></a>
-<span class="sourceLineNo">1133</span> public static String fromHexToUTF8(String hex) {<a name="line.1133"></a>
-<span class="sourceLineNo">1134</span> ByteBuffer buff = ByteBuffer.allocate(hex.length()/2);<a name="line.1134"></a>
-<span class="sourceLineNo">1135</span> for (int i = 0; i < hex.length(); i+=2)<a name="line.1135"></a>
-<span class="sourceLineNo">1136</span> buff.put((byte)Integer.parseInt(hex.substring(i, i+2), 16));<a name="line.1136"></a>
-<span class="sourceLineNo">1137</span> buff.rewind();<a name="line.1137"></a>
-<span class="sourceLineNo">1138</span> Charset cs = Charset.forName("UTF-8");<a name="line.1138"></a>
-<span class="sourceLineNo">1139</span> return cs.decode(buff).toString();<a name="line.1139"></a>
-<span class="sourceLineNo">1140</span> }<a name="line.1140"></a>
-<span class="sourceLineNo">1141</span><a name="line.1141"></a>
-<span class="sourceLineNo">1142</span> private final static char[] HEX = "0123456789ABCDEF".toCharArray();<a name="line.1142"></a>
-<span class="sourceLineNo">1143</span><a name="line.1143"></a>
-<span class="sourceLineNo">1144</span> /**<a name="line.1144"></a>
-<span class="sourceLineNo">1145</span> * Converts a byte array into a simple hexadecimal character string.<a name="line.1145"></a>
-<span class="sourceLineNo">1146</span> *<a name="line.1146"></a>
-<span class="sourceLineNo">1147</span> * @param bytes The bytes to convert to hexadecimal.<a name="line.1147"></a>
-<span class="sourceLineNo">1148</span> * @return A new string consisting of hexadecimal characters.<a name="line.1148"></a>
-<span class="sourceLineNo">1149</span> */<a name="line.1149"></a>
-<span class="sourceLineNo">1150</span> public static String toHex(byte[] bytes) {<a name="line.1150"></a>
-<span class="sourceLineNo">1151</span> StringBuilder sb = new StringBuilder(bytes.length * 2);<a name="line.1151"></a>
-<span class="sourceLineNo">1152</span> for ( int j = 0; j < bytes.length; j++ ) {<a name="line.1152"></a>
-<span class="sourceLineNo">1153</span> int v = bytes[j] & 0xFF;<a name="line.1153"></a>
-<span class="sourceLineNo">1154</span> sb.append(HEX[v >>> 4]).append(HEX[v & 0x0F]);<a name="line.1154"></a>
-<span class="sourceLineNo">1155</span> }<a name="line.1155"></a>
-<span class="sourceLineNo">1156</span> return sb.toString();<a name="line.1156"></a>
-<span class="sourceLineNo">1157</span> }<a name="line.1157"></a>
-<span class="sourceLineNo">1158</span><a name="line.1158"></a>
-<span class="sourceLineNo">1159</span> /**<a name="line.1159"></a>
-<span class="sourceLineNo">1160</span> * Converts a hexadecimal character string to a byte array.<a name="line.1160"></a>
-<span class="sourceLineNo">1161</span> *<a name="line.1161"></a>
-<span class="sourceLineNo">1162</span> * @param hex The string to convert to a byte array.<a name="line.1162"></a>
-<span class="sourceLineNo">1163</span> * @return A new byte array.<a name="line.1163"></a>
-<span class="sourceLineNo">1164</span> */<a name="line.1164"></a>
-<span class="sourceLineNo">1165</span> public static byte[] fromHex(String hex) {<a name="line.1165"></a>
-<span class="sourceLineNo">1166</span> ByteBuffer buff = ByteBuffer.allocate(hex.length()/2);<a name="line.1166"></a>
-<span class="sourceLineNo">1167</span> for (int i = 0; i < hex.length(); i+=2)<a name="line.1167"></a>
-<span class="sourceLineNo">1168</span> buff.put((byte)Integer.parseInt(hex.substring(i, i+2), 16));<a name="line.1168"></a>
-<span class="sourceLineNo">1169</span> buff.rewind();<a name="line.1169"></a>
-<span class="sourceLineNo">1170</span> return buff.array();<a name="line.1170"></a>
-<span class="sourceLineNo">1171</span> }<a name="line.1171"></a>
-<span class="sourceLineNo">1172</span><a name="line.1172"></a>
-<span class="sourceLineNo">1173</span> /**<a name="line.1173"></a>
-<span class="sourceLineNo">1174</span> * Creates a repeated pattern.<a name="line.1174"></a>
-<span class="sourceLineNo">1175</span> *<a name="line.1175"></a>
-<span class="sourceLineNo">1176</span> * @param count The number of times to repeat the pattern.<a name="line.1176"></a>
-<span class="sourceLineNo">1177</span> * @param pattern The pattern to repeat.<a name="line.1177"></a>
-<span class="sourceLineNo">1178</span> * @return A new string consisting of the repeated pattern.<a name="line.1178"></a>
-<span class="sourceLineNo">1179</span> */<a name="line.1179"></a>
-<span class="sourceLineNo">1180</span> public static String repeat(int count, String pattern) {<a name="line.1180"></a>
-<span class="sourceLineNo">1181</span> StringBuilder sb = new StringBuilder(pattern.length() * count);<a name="line.1181"></a>
-<span class="sourceLineNo">1182</span> for (int i = 0; i < count; i++)<a name="line.1182"></a>
-<span class="sourceLineNo">1183</span> sb.append(pattern);<a name="line.1183"></a>
-<span class="sourceLineNo">1184</span> return sb.toString();<a name="line.1184"></a>
-<span class="sourceLineNo">1185</span> }<a name="line.1185"></a>
-<span class="sourceLineNo">1186</span><a name="line.1186"></a>
-<span class="sourceLineNo">1187</span> /**<a name="line.1187"></a>
-<span class="sourceLineNo">1188</span> * Trims whitespace characters from the beginning of the specified string.<a name="line.1188"></a>
-<span class="sourceLineNo">1189</span> *<a name="line.1189"></a>
-<span class="sourceLineNo">1190</span> * @param s The string to trim.<a name="line.1190"></a>
-<span class="sourceLineNo">1191</span> * @return The trimmed string, or <jk>null</jk> if the string was <jk>null</jk>.<a name="line.1191"></a>
-<span class="sourceLineNo">1192</span> */<a name="line.1192"></a>
-<span class="sourceLineNo">1193</span> public static String trimStart(String s) {<a name="line.1193"></a>
-<span class="sourceLineNo">1194</span> if (s != null)<a name="line.1194"></a>
-<span class="sourceLineNo">1195</span> while (s.length() > 0 && Character.isWhitespace(s.charAt(0)))<a name="line.1195"></a>
-<span class="sourceLineNo">1196</span> s = s.substring(1);<a name="line.1196"></a>
-<span class="sourceLineNo">1197</span> return s;<a name="line.1197"></a>
-<span class="sourceLineNo">1198</span> }<a name="line.1198"></a>
-<span class="sourceLineNo">1199</span><a name="line.1199"></a>
-<span class="sourceLineNo">1200</span> /**<a name="line.1200"></a>
-<span class="sourceLineNo">1201</span> * Trims whitespace characters from the end of the specified string.<a name="line.1201"></a>
-<span class="sourceLineNo">1202</span> *<a name="line.1202"></a>
-<span class="sourceLineNo">1203</span> * @param s The string to trim.<a name="line.1203"></a>
-<span class="sourceLineNo">1204</span> * @return The trimmed string, or <jk>null</jk> if the string was <jk>null</jk>.<a name="line.1204"></a>
-<span class="sourceLineNo">1205</span> */<a name="line.1205"></a>
-<span class="sourceLineNo">1206</span> public static String trimEnd(String s) {<a name="line.1206"></a>
-<span class="sourceLineNo">1207</span> if (s != null)<a name="line.1207"></a>
-<span class="sourceLineNo">1208</span> while (s.length() > 0 && Character.isWhitespace(s.charAt(s.length()-1)))<a name="line.1208"></a>
-<span class="sourceLineNo">1209</span> s = s.substring(0, s.length()-1);<a name="line.1209"></a>
-<span class="sourceLineNo">1210</span> return s;<a name="line.1210"></a>
-<span class="sourceLineNo">1211</span> }<a name="line.1211"></a>
-<span class="sourceLineNo">1212</span><a name="line.1212"></a>
-<span class="sourceLineNo">1213</span> /**<a name="line.1213"></a>
-<span class="sourceLineNo">1214</span> * Returns <jk>true</jk> if the specified string is one of the specified values.<a name="line.1214"></a>
-<span class="sourceLineNo">1215</span> *<a name="line.1215"></a>
-<span class="sourceLineNo">1216</span> * @param s The string to test.<a name="line.1216"></a>
-<span class="sourceLineNo">1217</span> * Can be <jk>null</jk>.<a name="line.1217"></a>
-<span class="sourceLineNo">1218</span> * @param values The values to test.<a name="line.1218"></a>
-<span class="sourceLineNo">1219</span> * Can contain <jk>null</jk>.<a name="line.1219"></a>
-<span class="sourceLineNo">1220</span> * @return <jk>true</jk> if the specified string is one of the specified values.<a name="line.1220"></a>
-<span class="sourceLineNo">1221</span> */<a name="line.1221"></a>
-<span class="sourceLineNo">1222</span> public static boolean isOneOf(String s, String...values) {<a name="line.1222"></a>
-<span class="sourceLineNo">1223</span> for (int i = 0; i < values.length; i++)<a name="line.1223"></a>
-<span class="sourceLineNo">1224</span> if (StringUtils.isEquals(s, values[i]))<a name="line.1224"></a>
-<span class="sourceLineNo">1225</span> return true;<a name="line.1225"></a>
-<span class="sourceLineNo">1226</span> return false;<a name="line.1226"></a>
-<span class="sourceLineNo">1227</span> }<a name="line.1227"></a>
-<span class="sourceLineNo">1228</span><a name="line.1228"></a>
-<span class="sourceLineNo">1229</span> /**<a name="line.1229"></a>
-<span class="sourceLineNo">1230</span> * Trims <js>'/'</js> characters from both the start and end of the specified string.<a name="line.1230"></a>
-<span class="sourceLineNo">1231</span> *<a name="line.1231"></a>
-<span class="sourceLineNo">1232</span> * @param s The string to trim.<a name="line.1232"></a>
-<span class="sourceLineNo">1233</span> * @return A new trimmed string, or the same string if no trimming was necessary.<a name="line.1233"></a>
-<span class="sourceLineNo">1234</span> */<a name="line.1234"></a>
-<span class="sourceLineNo">1235</span> public static String trimSlashes(String s) {<a name="line.1235"></a>
-<span class="sourceLineNo">1236</span> if (s == null)<a name="line.1236"></a>
-<span class="sourceLineNo">1237</span> return null;<a name="line.1237"></a>
-<span class="sourceLineNo">1238</span> while (endsWith(s, '/'))<a name="line.1238"></a>
-<span class="sourceLineNo">1239</span> s = s.substring(0, s.length()-1);<a name="line.1239"></a>
-<span class="sourceLineNo">1240</span> while (s.length() > 0 && s.charAt(0) == '/')<a name="line.1240"></a>
-<span class="sourceLineNo">1241</span> s = s.substring(1);<a name="line.1241"></a>
-<span class="sourceLineNo">1242</span> return s;<a name="line.1242"></a>
-<span class="sourceLineNo">1243</span> }<a name="line.1243"></a>
-<span class="sourceLineNo">1244</span><a name="line.1244"></a>
-<span class="sourceLineNo">1245</span> /**<a name="line.1245"></a>
-<span class="sourceLineNo">1246</span> * Trims <js>'/'</js> characters from the end of the specified string.<a name="line.1246"></a>
-<span class="sourceLineNo">1247</span> *<a name="line.1247"></a>
-<span class="sourceLineNo">1248</span> * @param s The string to trim.<a name="line.1248"></a>
-<span class="sourceLineNo">1249</span> * @return A new trimmed string, or the same string if no trimming was necessary.<a name="line.1249"></a>
-<span class="sourceLineNo">1250</span> */<a name="line.1250"></a>
-<span class="sourceLineNo">1251</span> public static String trimTrailingSlashes(String s) {<a name="line.1251"></a>
-<span class="sourceLineNo">1252</span> if (s == null)<a name="line.1252"></a>
-<span class="sourceLineNo">1253</span> return null;<a name="line.1253"></a>
-<span class="sourceLineNo">1254</span> while (endsWith(s, '/'))<a name="line.1254"></a>
-<span class="sourceLineNo">1255</span> s = s.substring(0, s.length()-1);<a name="line.1255"></a>
-<span class="sourceLineNo">1256</span> return s;<a name="line.1256"></a>
-<span class="sourceLineNo">1257</span> }<a name="line.1257"></a>
-<span class="sourceLineNo">1258</span><a name="line.1258"></a>
-<span class="sourceLineNo">1259</span> /**<a name="line.1259"></a>
-<span class="sourceLineNo">1260</span> * Trims <js>'/'</js> characters from the end of the specified string.<a name="line.1260"></a>
-<span class="sourceLineNo">1261</span> *<a name="line.1261"></a>
-<span class="sourceLineNo">1262</span> * @param s The string to trim.<a name="line.1262"></a>
-<span class="sourceLineNo">1263</span> * @return The same string buffer.<a name="line.1263"></a>
-<span class="sourceLineNo">1264</span> */<a name="line.1264"></a>
-<span class="sourceLineNo">1265</span> public static StringBuffer trimTrailingSlashes(StringBuffer s) {<a name="line.1265"></a>
-<span class="sourceLineNo">1266</span> if (s == null)<a name="line.1266"></a>
-<span class="sourceLineNo">1267</span> return null;<a name="line.1267"></a>
-<span class="sourceLineNo">1268</span> while (s.length() > 0 && s.charAt(s.length()-1) == '/')<a name="line.1268"></a>
-<span class="sourceLineNo">1269</span> s.setLength(s.length()-1);<a name="line.1269"></a>
-<span class="sourceLineNo">1270</span> return s;<a name="line.1270"></a>
-<span class="sourceLineNo">1271</span> }<a name="line.1271"></a>
-<span class="sourceLineNo">1272</span><a name="line.1272"></a>
-<span class="sourceLineNo">1273</span> /**<a name="line.1273"></a>
-<span class="sourceLineNo">1274</span> * Decodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.<a name="line.1274"></a>
-<span class="sourceLineNo">1275</span> *<a name="line.1275"></a>
-<span class="sourceLineNo">1276</span> * @param s The string to decode.<a name="line.1276"></a>
-<span class="sourceLineNo">1277</span> * @return The decoded string, or <jk>null</jk> if input is <jk>null</jk>.<a name="line.1277"></a>
-<span class="sourceLineNo">1278</span> */<a name="line.1278"></a>
-<span class="sourceLineNo">1279</span> public static String urlDecode(String s) {<a name="line.1279"></a>
-<span class="sourceLineNo">1280</span> if (s == null)<a name="line.1280"></a>
-<span class="sourceLineNo">1281</span> return s;<a name="line.1281"></a>
-<span class="sourceLineNo">1282</span> boolean needsDecode = false;<a name="line.1282"></a>
-<span class="sourceLineNo">1283</span> for (int i = 0; i < s.length() && ! needsDecode; i++) {<a name="line.1283"></a>
-<span class="sourceLineNo">1284</span> char c = s.charAt(i);<a name="line.1284"></a>
-<span class="sourceLineNo">1285</span> if (c == '+' || c == '%')<a name="line.1285"></a>
-<span class="sourceLineNo">1286</span> needsDecode = true;<a name="line.1286"></a>
-<span class="sourceLineNo">1287</span> }<a name="line.1287"></a>
-<span class="sourceLineNo">1288</span> if (needsDecode)<a name="line.1288"></a>
-<span class="sourceLineNo">1289</span> try {<a name="line.1289"></a>
-<span class="sourceLineNo">1290</span> return URLDecoder.decode(s, "UTF-8");<a name="line.1290"></a>
-<span class="sourceLineNo">1291</span> } catch (UnsupportedEncodingException e) {/* Won't happen */}<a name="line.1291"></a>
-<span class="sourceLineNo">1292</span> return s;<a name="line.1292"></a>
-<span class="sourceLineNo">1293</span> }<a name="line.1293"></a>
-<span class="sourceLineNo">1294</span><a name="line.1294"></a>
-<span class="sourceLineNo">1295</span> /**<a name="line.1295"></a>
-<span class="sourceLineNo">1296</span> * Encodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.<a name="line.1296"></a>
-<span class="sourceLineNo">1297</span> *<a name="line.1297"></a>
-<span class="sourceLineNo">1298</span> * @param s The string to encode.<a name="line.1298"></a>
-<span class="sourceLineNo">1299</span> * @return The encoded string, or <jk>null</jk> if input is <jk>null</jk>.<a name="line.1299"></a>
-<span class="sourceLineNo">1300</span> */<a name="line.1300"></a>
-<span class="sourceLineNo">1301</span> public static String urlEncode(String s) {<a name="line.1301"></a>
-<span class="sourceLineNo">1302</span> if (s == null)<a name="line.1302"></a>
-<span class="sourceLineNo">1303</span> return null;<a name="line.1303"></a>
-<span class="sourceLineNo">1304</span> boolean needsEncode = false;<a name="line.1304"></a>
-<span class="sourceLineNo">1305</span> for (int i = 0; i < s.length() && ! needsEncode; i++)<a name="line.1305"></a>
-<span class="sourceLineNo">1306</span> needsEncode |= (! unencodedChars.contains(s.charAt(i)));<a name="line.1306"></a>
-<span class="sourceLineNo">1307</span> if (needsEncode) {<a name="line.1307"></a>
-<span class="sourceLineNo">1308</span> try {<a name="line.1308"></a>
-<span class="sourceLineNo">1309</span> return URLEncoder.encode(s, "UTF-8");<a name="line.1309"></a>
-<span class="sourceLineNo">1310</span> } catch (UnsupportedEncodingException e) {/* Won't happen */}<a name="line.1310"></a>
-<span class="sourceLineNo">1311</span> }<a name="line.1311"></a>
+<span class="sourceLineNo">1072</span> * Replaces <js>"\\uXXXX"</js> character sequences with their unicode characters.<a name="line.1072"></a>
+<span class="sourceLineNo">1073</span> *<a name="line.1073"></a>
+<span class="sourceLineNo">1074</span> * @param s The string to replace unicode sequences in.<a name="line.1074"></a>
+<span class="sourceLineNo">1075</span> * @return A string with unicode sequences replaced.<a name="line.1075"></a>
+<span class="sourceLineNo">1076</span> */<a name="line.1076"></a>
+<span class="sourceLineNo">1077</span> public static String replaceUnicodeSequences(String s) {<a name="line.1077"></a>
+<span class="sourceLineNo">1078</span> if (s.indexOf('\\') == -1)<a name="line.1078"></a>
+<span class="sourceLineNo">1079</span> return s;<a name="line.1079"></a>
+<span class="sourceLineNo">1080</span> Pattern p = Pattern.compile("\\\\u(\\p{XDigit}{4})");<a name="line.1080"></a>
+<span class="sourceLineNo">1081</span> Matcher m = p.matcher(s);<a name="line.1081"></a>
+<span class="sourceLineNo">1082</span> StringBuffer sb = new StringBuffer(s.length());<a name="line.1082"></a>
+<span class="sourceLineNo">1083</span> while (m.find()) {<a name="line.1083"></a>
+<span class="sourceLineNo">1084</span> String ch = String.valueOf((char) Integer.parseInt(m.group(1), 16));<a name="line.1084"></a>
+<span class="sourceLineNo">1085</span> m.appendReplacement(sb, Matcher.quoteReplacement(ch));<a name="line.1085"></a>
+<span class="sourceLineNo">1086</span> }<a name="line.1086"></a>
+<span class="sourceLineNo">1087</span> m.appendTai
<TRUNCATED>
[02/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/utils/PojoQuery.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/utils/PojoQuery.html b/content/site/apidocs/src-html/org/apache/juneau/utils/PojoQuery.html
index fe50e73..6b46ec8 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/utils/PojoQuery.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/utils/PojoQuery.html
@@ -31,7 +31,7 @@
<span class="sourceLineNo">023</span>import org.apache.juneau.internal.*;<a name="line.23"></a>
<span class="sourceLineNo">024</span><a name="line.24"></a>
<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * Designed to provide query/view/sort/paging filtering on tabular in-memory POJO models.<a name="line.26"></a>
+<span class="sourceLineNo">026</span> * Designed to provide search/view/sort/paging filtering on tabular in-memory POJO models.<a name="line.26"></a>
<span class="sourceLineNo">027</span> * <p><a name="line.27"></a>
<span class="sourceLineNo">028</span> * It can also perform just view filtering on beans/maps.<a name="line.28"></a>
<span class="sourceLineNo">029</span> * <p><a name="line.29"></a>
@@ -46,1216 +46,1109 @@
<span class="sourceLineNo">038</span> * Tabular POJO models can be thought of as tables of data. For example, a list of the following beans...<a name="line.38"></a>
<span class="sourceLineNo">039</span> * <p class='bcode'><a name="line.39"></a>
<span class="sourceLineNo">040</span> * <jk>public</jk> MyBean {<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * <jk>public int</jk> fi;<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * <jk>public</jk> String fs;<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * <jk>public</jk> Date fd;<a name="line.43"></a>
+<span class="sourceLineNo">041</span> * <jk>public int</jk> myInt;<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * <jk>public</jk> String myString;<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * <jk>public</jk> Date myDate;<a name="line.43"></a>
<span class="sourceLineNo">044</span> * }<a name="line.44"></a>
<span class="sourceLineNo">045</span> * <p><a name="line.45"></a>
<span class="sourceLineNo">046</span> * ... can be thought of a table containing the following columns...<a name="line.46"></a>
<span class="sourceLineNo">047</span> * <p><a name="line.47"></a>
<span class="sourceLineNo">048</span> * <table class='styled code'><a name="line.48"></a>
-<span class="sourceLineNo">049</span> * <tr><th>fi</th><th>fs</th><th>fd</th></tr><a name="line.49"></a>
+<span class="sourceLineNo">049</span> * <tr><th>myInt</th><th>myString</th><th>myDate</th></tr><a name="line.49"></a>
<span class="sourceLineNo">050</span> * <tr><td>123</td><td>'foobar'</td><td>yyyy/MM/dd HH:mm:ss</td></tr><a name="line.50"></a>
<span class="sourceLineNo">051</span> * <tr><td colspan=3>...</td></tr><a name="line.51"></a>
<span class="sourceLineNo">052</span> * </table><a name="line.52"></a>
<span class="sourceLineNo">053</span> * <p><a name="line.53"></a>
<span class="sourceLineNo">054</span> * From this table, you can perform the following functions:<a name="line.54"></a>
<span class="sourceLineNo">055</span> * <ul class='spaced-list'><a name="line.55"></a>
-<span class="sourceLineNo">056</span> * <li>Query - Return only rows where a search pattern matches.<a name="line.56"></a>
+<span class="sourceLineNo">056</span> * <li>Search - Return only rows where a search pattern matches.<a name="line.56"></a>
<span class="sourceLineNo">057</span> * <li>View - Return only the specified subset of columns in the specified order.<a name="line.57"></a>
<span class="sourceLineNo">058</span> * <li>Sort - Sort the table by one or more columns.<a name="line.58"></a>
-<span class="sourceLineNo">059</span> * <li>Page - Only return a subset of rows.<a name="line.59"></a>
+<span class="sourceLineNo">059</span> * <li>Position/limit - Only return a subset of rows.<a name="line.59"></a>
<span class="sourceLineNo">060</span> * </ul><a name="line.60"></a>
<span class="sourceLineNo">061</span> *<a name="line.61"></a>
-<span class="sourceLineNo">062</span> * <h5 class='topic'>Query</h5><a name="line.62"></a>
+<span class="sourceLineNo">062</span> * <h5 class='topic'>Search</h5><a name="line.62"></a>
<span class="sourceLineNo">063</span> * <p><a name="line.63"></a>
-<span class="sourceLineNo">064</span> * The query capabilites allow you to filter based on query patterns against<a name="line.64"></a>
+<span class="sourceLineNo">064</span> * The search capabilities allow you to filter based on query patterns against<a name="line.64"></a>
<span class="sourceLineNo">065</span> * strings, dates, and numbers. Queries take the form of a Map with column names<a name="line.65"></a>
<span class="sourceLineNo">066</span> * as keys, and search patterns as values. <br><a name="line.66"></a>
-<span class="sourceLineNo">067</span> * Search patterns can be either {@code Strings} or {@code Maps}.<br><a name="line.67"></a>
-<span class="sourceLineNo">068</span> * Multiple search patterns are ANDed (i.e. all patterns must match for the row to be returned).<a name="line.68"></a>
-<span class="sourceLineNo">069</span> *<a name="line.69"></a>
-<span class="sourceLineNo">070</span> * <h5 class='section'>Example:</h5><a name="line.70"></a>
-<span class="sourceLineNo">071</span> * <ul class='spaced-list'><a name="line.71"></a>
-<span class="sourceLineNo">072</span> * <li><tt>{fi:'123'}</tt> - Return only rows where the <tt>fi</tt> column is 123.<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * <li><tt>{fs:'foobar'}</tt> - Return only rows where the <tt>fs</tt> column is 'foobar'.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> * <li><tt>{fd:'2001'}</tt> - Return only rows where the <tt>fd</tt> column have dates in the year 2001.<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * <li><tt>{fs:'foobar'}</tt> - Return only rows where the <tt>fs</tt> column is 'foobar'.<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * and the <tt>fs</tt> column starts with <tt>"foo"</tt>.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * </ul><a name="line.77"></a>
-<span class="sourceLineNo">078</span> * <p><a name="line.78"></a>
-<span class="sourceLineNo">079</span> * Search patterns can also be applied to lower level fields. For example, the search term<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * <tt>{f1:{f2:{f3{'foobar'}}}</tt> means only return top level rows where the <tt>f1.getF2().getF3()</tt><a name="line.80"></a>
-<span class="sourceLineNo">081</span> * property is <tt>'foobar'</tt>.<a name="line.81"></a>
-<span class="sourceLineNo">082</span> *<a name="line.82"></a>
-<span class="sourceLineNo">083</span> * <h5 class='topic'>String Patterns</h5><a name="line.83"></a>
-<span class="sourceLineNo">084</span> * <p><a name="line.84"></a>
-<span class="sourceLineNo">085</span> * Any objects can be queried against using string patterns. If the objects being<a name="line.85"></a>
-<span class="sourceLineNo">086</span> * searched are not strings, then the patterns are matched against whatever is<a name="line.86"></a>
-<span class="sourceLineNo">087</span> * return by the {@code Object#toString()} method.<a name="line.87"></a>
-<span class="sourceLineNo">088</span> *<a name="line.88"></a>
-<span class="sourceLineNo">089</span> * <h6 class='topic'>Example string query patterns:</h6><a name="line.89"></a>
-<span class="sourceLineNo">090</span> * <ul><a name="line.90"></a>
-<span class="sourceLineNo">091</span> * <li><tt>foo</tt> - The string 'foo'<a name="line.91"></a>
-<span class="sourceLineNo">092</span> * <li><tt>foo bar</tt> - The string 'foo' or the string 'bar'<a name="line.92"></a>
-<span class="sourceLineNo">093</span> * <li><tt>'foo bar'</tt> - The phrase 'foo bar'<a name="line.93"></a>
-<span class="sourceLineNo">094</span> * <li><tt>"foo bar"</tt> - The phrase 'foo bar'<a name="line.94"></a>
-<span class="sourceLineNo">095</span> * <li><tt>foo*</tt> - <tt>*</tt> matches zero-or-more characters.<a name="line.95"></a>
-<span class="sourceLineNo">096</span> * <li><tt>foo?</tt> - <tt>?</tt> matches exactly one character<a name="line.96"></a>
+<span class="sourceLineNo">067</span> * Multiple search patterns are ANDed (i.e. all patterns must match for the row to be returned).<a name="line.67"></a>
+<span class="sourceLineNo">068</span> *<a name="line.68"></a>
+<span class="sourceLineNo">069</span> * <h5 class='section'>Example:</h5><a name="line.69"></a>
+<span class="sourceLineNo">070</span> * <ul class='spaced-list'><a name="line.70"></a>
+<span class="sourceLineNo">071</span> * <li><tt>{myInt:'123'}</tt> - Return only rows where the <tt>myInt</tt> column is 123.<a name="line.71"></a>
+<span class="sourceLineNo">072</span> * <li><tt>{myString:'foobar'}</tt> - Return only rows where the <tt>myString</tt> column is 'foobar'.<a name="line.72"></a>
+<span class="sourceLineNo">073</span> * <li><tt>{myDate:'2001'}</tt> - Return only rows where the <tt>myDate</tt> column have dates in the year 2001.<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * </ul><a name="line.74"></a>
+<span class="sourceLineNo">075</span> *<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * <h5 class='topic'>String Patterns</h5><a name="line.76"></a>
+<span class="sourceLineNo">077</span> * <p><a name="line.77"></a>
+<span class="sourceLineNo">078</span> * Any objects can be queried against using string patterns. If the objects being<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * searched are not strings, then the patterns are matched against whatever is<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * return by the {@code Object#toString()} method.<a name="line.80"></a>
+<span class="sourceLineNo">081</span> *<a name="line.81"></a>
+<span class="sourceLineNo">082</span> * <h6 class='topic'>Example string query patterns:</h6><a name="line.82"></a>
+<span class="sourceLineNo">083</span> * <ul><a name="line.83"></a>
+<span class="sourceLineNo">084</span> * <li><tt>foo</tt> - The string 'foo'<a name="line.84"></a>
+<span class="sourceLineNo">085</span> * <li><tt>foo bar</tt> - The string 'foo' or the string 'bar'<a name="line.85"></a>
+<span class="sourceLineNo">086</span> * <li><tt>'foo bar'</tt> - The phrase 'foo bar'<a name="line.86"></a>
+<span class="sourceLineNo">087</span> * <li><tt>"foo bar"</tt> - The phrase 'foo bar'<a name="line.87"></a>
+<span class="sourceLineNo">088</span> * <li><tt>foo*</tt> - <tt>*</tt> matches zero-or-more characters.<a name="line.88"></a>
+<span class="sourceLineNo">089</span> * <li><tt>foo?</tt> - <tt>?</tt> matches exactly one character<a name="line.89"></a>
+<span class="sourceLineNo">090</span> * </ul><a name="line.90"></a>
+<span class="sourceLineNo">091</span> *<a name="line.91"></a>
+<span class="sourceLineNo">092</span> * <h5 class='section'>Notes:</h5><a name="line.92"></a>
+<span class="sourceLineNo">093</span> * <ul class='spaced-list'><a name="line.93"></a>
+<span class="sourceLineNo">094</span> * <li>Whitespace is ignored around search patterns.<a name="line.94"></a>
+<span class="sourceLineNo">095</span> * <li>Prepend <tt>+</tt> to tokens that must match. (e.g. <tt>+foo* +*bar</tt>)<a name="line.95"></a>
+<span class="sourceLineNo">096</span> * <li>Prepend <tt>-</tt> to tokens that must not match. (e.g. <tt>+foo* -*bar</tt>)<a name="line.96"></a>
<span class="sourceLineNo">097</span> * </ul><a name="line.97"></a>
<span class="sourceLineNo">098</span> *<a name="line.98"></a>
-<span class="sourceLineNo">099</span> * <h5 class='section'>Notes:</h5><a name="line.99"></a>
-<span class="sourceLineNo">100</span> * <ul class='spaced-list'><a name="line.100"></a>
-<span class="sourceLineNo">101</span> * <li>Whitespace is ignored around search patterns.<a name="line.101"></a>
-<span class="sourceLineNo">102</span> * <li>Prepend <tt>+</tt> to tokens that must match. (e.g. <tt>+foo* +*bar</tt>)<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * <li>Prepend <tt>-</tt> to tokens that must not match. (e.g. <tt>+foo* -*bar</tt>)<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * </ul><a name="line.104"></a>
-<span class="sourceLineNo">105</span> *<a name="line.105"></a>
-<span class="sourceLineNo">106</span> * <h5 class='topic'>Numeric Patterns</h5><a name="line.106"></a>
-<span class="sourceLineNo">107</span> * <p><a name="line.107"></a>
-<span class="sourceLineNo">108</span> * Any object of type {@link Number} (or numeric primitives) can be searched using numeric patterns.<a name="line.108"></a>
-<span class="sourceLineNo">109</span> *<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * <h6 class='topic'>Example numeric query patterns:</h6><a name="line.110"></a>
-<span class="sourceLineNo">111</span> * <ul><a name="line.111"></a>
-<span class="sourceLineNo">112</span> * <li><tt>123</tt> - The single number 123<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * <li><tt>1 2 3</tt> - 1, 2, or 3<a name="line.113"></a>
-<span class="sourceLineNo">114</span> * <li><tt>1-100</tt> - Between 1 and 100<a name="line.114"></a>
-<span class="sourceLineNo">115</span> * <li><tt>1 - 100</tt> - Between 1 and 100<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * <li><tt>1 - 100 200-300</tt> - Between 1 and 100 or between 200 and 300<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * <li><tt>&gt; 100</tt> - Greater than 100<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * <li><tt>&gt;= 100</tt> - Greater than or equal to 100<a name="line.118"></a>
-<span class="sourceLineNo">119</span> * <li><tt>!123</tt> - Not 123<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * </ul><a name="line.120"></a>
-<span class="sourceLineNo">121</span> *<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * <h5 class='section'>Notes:</h5><a name="line.122"></a>
-<span class="sourceLineNo">123</span> * <ul class='spaced-list'><a name="line.123"></a>
-<span class="sourceLineNo">124</span> * <li>Whitespace is ignored in search patterns.<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * <li>Negative numbers are supported.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * </ul><a name="line.126"></a>
-<span class="sourceLineNo">127</span> *<a name="line.127"></a>
-<span class="sourceLineNo">128</span> * <h5 class='topic'>Date Patterns</h5><a name="line.128"></a>
-<span class="sourceLineNo">129</span> * <p><a name="line.129"></a>
-<span class="sourceLineNo">130</span> * Any object of type {@link Date} or {@link Calendar} can be searched using date patterns.<a name="line.130"></a>
-<span class="sourceLineNo">131</span> * <p><a name="line.131"></a>
-<span class="sourceLineNo">132</span> * The default valid input timestamp formats (which can be overridden via the {@link #setValidTimestampFormats(String...)} method are...<a name="line.132"></a>
-<span class="sourceLineNo">133</span> *<a name="line.133"></a>
-<span class="sourceLineNo">134</span> * <ul><a name="line.134"></a>
-<span class="sourceLineNo">135</span> * <li><tt>yyyy.MM.dd.HH.mm.ss</tt><a name="line.135"></a>
-<span class="sourceLineNo">136</span> * <li><tt>yyyy.MM.dd.HH.mm</tt><a name="line.136"></a>
-<span class="sourceLineNo">137</span> * <li><tt>yyyy.MM.dd.HH</tt><a name="line.137"></a>
-<span class="sourceLineNo">138</span> * <li><tt>yyyy.MM.dd</tt><a name="line.138"></a>
-<span class="sourceLineNo">139</span> * <li><tt>yyyy.MM</tt><a name="line.139"></a>
-<span class="sourceLineNo">140</span> * <li><tt>yyyy</tt><a name="line.140"></a>
-<span class="sourceLineNo">141</span> * </ul><a name="line.141"></a>
-<span class="sourceLineNo">142</span> *<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * <h6 class='topic'>Example date query patterns:</h6><a name="line.143"></a>
-<span class="sourceLineNo">144</span> * <ul><a name="line.144"></a>
-<span class="sourceLineNo">145</span> * <li><tt>2001</tt> - A specific year.<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * <li><tt>2001.01.01.10.50</tt> - A specific time.<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * <li><tt>&gt;2001</tt> - After a specific year.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * <li><tt>&gt;=2001</tt> - During or after a specific year.<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * <li><tt>2001 - 2003.06.30</tt> - A date range.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * <li><tt>2001 2003 2005</tt> - Multiple date patterns are ORed.<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * </ul><a name="line.151"></a>
-<span class="sourceLineNo">152</span> *<a name="line.152"></a>
-<span class="sourceLineNo">153</span> * <h5 class='section'>Notes:</h5><a name="line.153"></a>
-<span class="sourceLineNo">154</span> * <ul><a name="line.154"></a>
-<span class="sourceLineNo">155</span> * <li>Whitespace is ignored in search patterns.<a name="line.155"></a>
-<span class="sourceLineNo">156</span> * </ul><a name="line.156"></a>
-<span class="sourceLineNo">157</span> *<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * <h5 class='topic'>View</h5><a name="line.158"></a>
-<span class="sourceLineNo">159</span> * <p><a name="line.159"></a>
-<span class="sourceLineNo">160</span> * The view capability allows you to return only the specified subset of columns in the<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * specified order.<br><a name="line.161"></a>
-<span class="sourceLineNo">162</span> * The view parameter is a list of either <tt>Strings</tt> or <tt>Maps</tt>.<a name="line.162"></a>
-<span class="sourceLineNo">163</span> *<a name="line.163"></a>
-<span class="sourceLineNo">164</span> * <h6 class='topic'>Example view parameters:</h6><a name="line.164"></a>
-<span class="sourceLineNo">165</span> * <ul><a name="line.165"></a>
-<span class="sourceLineNo">166</span> * <li><tt>['f1']</tt> - Return only column 'f1'.<a name="line.166"></a>
-<span class="sourceLineNo">167</span> * <li><tt>['f2','f1']</tt> - Return only columns 'f2' and 'f1'.<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * <li><tt>['f1',{f2:'f3'}]</tt> - Return only columns 'f1' and 'f2', but for 'f2' objects,<a name="line.168"></a>
-<span class="sourceLineNo">169</span> * only show the 'f3' property.<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * </ul><a name="line.170"></a>
-<span class="sourceLineNo">171</span> *<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * <h5 class='topic'>Sort</h5><a name="line.172"></a>
-<span class="sourceLineNo">173</span> * <p><a name="line.173"></a>
-<span class="sourceLineNo">174</span> * The sort capability allows you to sort values by the specified rows.<br><a name="line.174"></a>
-<span class="sourceLineNo">175</span> * The sort parameter is a list of either <tt>Strings</tt> or <tt>Maps</tt>.<br><a name="line.175"></a>
-<span class="sourceLineNo">176</span> * <tt>Strings</tt> represent column names to sort ascending. If you want<a name="line.176"></a>
-<span class="sourceLineNo">177</span> * to sort descending, you need to specify a <tt>Map</tt> of the form <tt>{colname:'d'}</tt><a name="line.177"></a>
-<span class="sourceLineNo">178</span> *<a name="line.178"></a>
-<span class="sourceLineNo">179</span> * <h6 class='topic'>Example sort parameters:</h6><a name="line.179"></a>
-<span class="sourceLineNo">180</span> * <ul><a name="line.180"></a>
-<span class="sourceLineNo">181</span> * <li><tt>['f1']</tt> - Sort rows by column 'f1' ascending.<a name="line.181"></a>
-<span class="sourceLineNo">182</span> * <li><tt>[{f1:'a'}]</tt> - Sort rows by column 'f1' ascending.<a name="line.182"></a>
-<span class="sourceLineNo">183</span> * <li><tt>[{f1:'d'}]</tt> - Sort rows by column 'f1' descending.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> * <li><tt>[{f1:'a'},{f2:'d'}]</tt> - Sort rows by column 'f1' ascending, then 'f2' descending.<a name="line.184"></a>
-<span class="sourceLineNo">185</span> * </ul><a name="line.185"></a>
-<span class="sourceLineNo">186</span> *<a name="line.186"></a>
-<span class="sourceLineNo">187</span> * <h5 class='topic'>Paging</h5><a name="line.187"></a>
-<span class="sourceLineNo">188</span> * <p><a name="line.188"></a>
-<span class="sourceLineNo">189</span> * Use the <tt>pos</tt> and <tt>limit</tt> parameters to specify a subset of rows to<a name="line.189"></a>
-<span class="sourceLineNo">190</span> * return.<a name="line.190"></a>
-<span class="sourceLineNo">191</span> *<a name="line.191"></a>
-<span class="sourceLineNo">192</span> * <h5 class='topic'>Other Notes</h5><a name="line.192"></a>
-<span class="sourceLineNo">193</span> * <ul class='spaced-list'><a name="line.193"></a>
-<span class="sourceLineNo">194</span> * <li>Calling <tt>filterMap()</tt> or <tt>filterCollection()</tt> always returns a new data<a name="line.194"></a>
-<span class="sourceLineNo">195</span> * structure, so the methods can be called multiple times against the same input.<a name="line.195"></a>
-<span class="sourceLineNo">196</span> * </ul><a name="line.196"></a>
-<span class="sourceLineNo">197</span> */<a name="line.197"></a>
-<span class="sourceLineNo">198</span>@SuppressWarnings({"unchecked","rawtypes"})<a name="line.198"></a>
-<span class="sourceLineNo">199</span>public final class PojoQuery {<a name="line.199"></a>
+<span class="sourceLineNo">099</span> * <h5 class='topic'>Numeric Patterns</h5><a name="line.99"></a>
+<span class="sourceLineNo">100</span> * <p><a name="line.100"></a>
+<span class="sourceLineNo">101</span> * Any object of type {@link Number} (or numeric primitives) can be searched using numeric patterns.<a name="line.101"></a>
+<span class="sourceLineNo">102</span> *<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * <h6 class='topic'>Example numeric query patterns:</h6><a name="line.103"></a>
+<span class="sourceLineNo">104</span> * <ul><a name="line.104"></a>
+<span class="sourceLineNo">105</span> * <li><tt>123</tt> - The single number 123<a name="line.105"></a>
+<span class="sourceLineNo">106</span> * <li><tt>1 2 3</tt> - 1, 2, or 3<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * <li><tt>1-100</tt> - Between 1 and 100<a name="line.107"></a>
+<span class="sourceLineNo">108</span> * <li><tt>1 - 100</tt> - Between 1 and 100<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * <li><tt>1 - 100 200-300</tt> - Between 1 and 100 or between 200 and 300<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * <li><tt>&gt; 100</tt> - Greater than 100<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * <li><tt>&gt;= 100</tt> - Greater than or equal to 100<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * <li><tt>!123</tt> - Not 123<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * </ul><a name="line.113"></a>
+<span class="sourceLineNo">114</span> *<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * <h5 class='section'>Notes:</h5><a name="line.115"></a>
+<span class="sourceLineNo">116</span> * <ul class='spaced-list'><a name="line.116"></a>
+<span class="sourceLineNo">117</span> * <li>Whitespace is ignored in search patterns.<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * <li>Negative numbers are supported.<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * </ul><a name="line.119"></a>
+<span class="sourceLineNo">120</span> *<a name="line.120"></a>
+<span class="sourceLineNo">121</span> * <h5 class='topic'>Date Patterns</h5><a name="line.121"></a>
+<span class="sourceLineNo">122</span> * <p><a name="line.122"></a>
+<span class="sourceLineNo">123</span> * Any object of type {@link Date} or {@link Calendar} can be searched using date patterns.<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * <p><a name="line.124"></a>
+<span class="sourceLineNo">125</span> * The default valid input timestamp formats (which can be overridden via the {@link #setValidTimestampFormats(String...)} method are...<a name="line.125"></a>
+<span class="sourceLineNo">126</span> *<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * <ul><a name="line.127"></a>
+<span class="sourceLineNo">128</span> * <li><tt>yyyy.MM.dd.HH.mm.ss</tt><a name="line.128"></a>
+<span class="sourceLineNo">129</span> * <li><tt>yyyy.MM.dd.HH.mm</tt><a name="line.129"></a>
+<span class="sourceLineNo">130</span> * <li><tt>yyyy.MM.dd.HH</tt><a name="line.130"></a>
+<span class="sourceLineNo">131</span> * <li><tt>yyyy.MM.dd</tt><a name="line.131"></a>
+<span class="sourceLineNo">132</span> * <li><tt>yyyy.MM</tt><a name="line.132"></a>
+<span class="sourceLineNo">133</span> * <li><tt>yyyy</tt><a name="line.133"></a>
+<span class="sourceLineNo">134</span> * </ul><a name="line.134"></a>
+<span class="sourceLineNo">135</span> *<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * <h6 class='topic'>Example date query patterns:</h6><a name="line.136"></a>
+<span class="sourceLineNo">137</span> * <ul><a name="line.137"></a>
+<span class="sourceLineNo">138</span> * <li><tt>2001</tt> - A specific year.<a name="line.138"></a>
+<span class="sourceLineNo">139</span> * <li><tt>2001.01.01.10.50</tt> - A specific time.<a name="line.139"></a>
+<span class="sourceLineNo">140</span> * <li><tt>&gt;2001</tt> - After a specific year.<a name="line.140"></a>
+<span class="sourceLineNo">141</span> * <li><tt>&gt;=2001</tt> - During or after a specific year.<a name="line.141"></a>
+<span class="sourceLineNo">142</span> * <li><tt>2001 - 2003.06.30</tt> - A date range.<a name="line.142"></a>
+<span class="sourceLineNo">143</span> * <li><tt>2001 2003 2005</tt> - Multiple date patterns are ORed.<a name="line.143"></a>
+<span class="sourceLineNo">144</span> * </ul><a name="line.144"></a>
+<span class="sourceLineNo">145</span> *<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * <h5 class='section'>Notes:</h5><a name="line.146"></a>
+<span class="sourceLineNo">147</span> * <ul><a name="line.147"></a>
+<span class="sourceLineNo">148</span> * <li>Whitespace is ignored in search patterns.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * </ul><a name="line.149"></a>
+<span class="sourceLineNo">150</span> *<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * <h5 class='topic'>View</h5><a name="line.151"></a>
+<span class="sourceLineNo">152</span> * <p><a name="line.152"></a>
+<span class="sourceLineNo">153</span> * The view capability allows you to return only the specified subset of columns in the<a name="line.153"></a>
+<span class="sourceLineNo">154</span> * specified order.<br><a name="line.154"></a>
+<span class="sourceLineNo">155</span> * The view parameter is a list of either <tt>Strings</tt> or <tt>Maps</tt>.<a name="line.155"></a>
+<span class="sourceLineNo">156</span> *<a name="line.156"></a>
+<span class="sourceLineNo">157</span> * <h6 class='topic'>Example view parameters:</h6><a name="line.157"></a>
+<span class="sourceLineNo">158</span> * <ul><a name="line.158"></a>
+<span class="sourceLineNo">159</span> * <li><tt>column1</tt> - Return only column 'column1'.<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * <li><tt>column2, column1</tt> - Return only columns 'column2' and 'column1' in that order.<a name="line.160"></a>
+<span class="sourceLineNo">161</span> * </ul><a name="line.161"></a>
+<span class="sourceLineNo">162</span> *<a name="line.162"></a>
+<span class="sourceLineNo">163</span> * <h5 class='topic'>Sort</h5><a name="line.163"></a>
+<span class="sourceLineNo">164</span> * <p><a name="line.164"></a>
+<span class="sourceLineNo">165</span> * The sort capability allows you to sort values by the specified rows.<br><a name="line.165"></a>
+<span class="sourceLineNo">166</span> * The sort parameter is a list of strings with an optional <js>'+'</js> or <js>'-'</js> suffix representing<a name="line.166"></a>
+<span class="sourceLineNo">167</span> * ascending and descending order accordingly.<a name="line.167"></a>
+<span class="sourceLineNo">168</span> *<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * <h6 class='topic'>Example sort parameters:</h6><a name="line.169"></a>
+<span class="sourceLineNo">170</span> * <ul><a name="line.170"></a>
+<span class="sourceLineNo">171</span> * <li><tt>column1</tt> - Sort rows by column 'column1' ascending.<a name="line.171"></a>
+<span class="sourceLineNo">172</span> * <li><tt>column1+</tt> - Sort rows by column 'column1' ascending.<a name="line.172"></a>
+<span class="sourceLineNo">173</span> * <li><tt>column1-</tt> - Sort rows by column 'column1' descending.<a name="line.173"></a>
+<span class="sourceLineNo">174</span> * <li><tt>column1, column2-</tt> - Sort rows by column 'column1' ascending, then 'column2' descending.<a name="line.174"></a>
+<span class="sourceLineNo">175</span> * </ul><a name="line.175"></a>
+<span class="sourceLineNo">176</span> *<a name="line.176"></a>
+<span class="sourceLineNo">177</span> * <h5 class='topic'>Paging</h5><a name="line.177"></a>
+<span class="sourceLineNo">178</span> * <p><a name="line.178"></a>
+<span class="sourceLineNo">179</span> * Use the <tt>position</tt> and <tt>limit</tt> parameters to specify a subset of rows to<a name="line.179"></a>
+<span class="sourceLineNo">180</span> * return.<a name="line.180"></a>
+<span class="sourceLineNo">181</span> */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>@SuppressWarnings({"unchecked","rawtypes"})<a name="line.182"></a>
+<span class="sourceLineNo">183</span>public final class PojoQuery {<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span> private Object input;<a name="line.185"></a>
+<span class="sourceLineNo">186</span> private ClassMeta type;<a name="line.186"></a>
+<span class="sourceLineNo">187</span> private BeanSession session;<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span> /**<a name="line.189"></a>
+<span class="sourceLineNo">190</span> * Constructor.<a name="line.190"></a>
+<span class="sourceLineNo">191</span> *<a name="line.191"></a>
+<span class="sourceLineNo">192</span> * @param input The POJO we're going to be filtering.<a name="line.192"></a>
+<span class="sourceLineNo">193</span> * @param session The bean session to use to create bean maps for beans.<a name="line.193"></a>
+<span class="sourceLineNo">194</span> */<a name="line.194"></a>
+<span class="sourceLineNo">195</span> public PojoQuery(Object input, BeanSession session) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span> this.input = input;<a name="line.196"></a>
+<span class="sourceLineNo">197</span> this.type = session.getClassMetaForObject(input);<a name="line.197"></a>
+<span class="sourceLineNo">198</span> this.session = session;<a name="line.198"></a>
+<span class="sourceLineNo">199</span> }<a name="line.199"></a>
<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span> private Object input;<a name="line.201"></a>
-<span class="sourceLineNo">202</span> private ClassMeta type;<a name="line.202"></a>
-<span class="sourceLineNo">203</span> private BeanSession session;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> /**<a name="line.205"></a>
-<span class="sourceLineNo">206</span> * Constructor.<a name="line.206"></a>
-<span class="sourceLineNo">207</span> *<a name="line.207"></a>
-<span class="sourceLineNo">208</span> * @param input The POJO we're going to be filtering.<a name="line.208"></a>
-<span class="sourceLineNo">209</span> * @param session The bean session to use to create bean maps for beans.<a name="line.209"></a>
-<span class="sourceLineNo">210</span> */<a name="line.210"></a>
-<span class="sourceLineNo">211</span> public PojoQuery(Object input, BeanSession session) {<a name="line.211"></a>
-<span class="sourceLineNo">212</span> this.input = input;<a name="line.212"></a>
-<span class="sourceLineNo">213</span> this.type = session.getClassMetaForObject(input);<a name="line.213"></a>
-<span class="sourceLineNo">214</span> this.session = session;<a name="line.214"></a>
-<span class="sourceLineNo">215</span> }<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> /**<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * Filters the input object as a map.<a name="line.218"></a>
-<span class="sourceLineNo">219</span> *<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * @param view The list and order of properties to return from the map. Values must be of type {@code String} or {@code Map}.<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * @return The filtered map<a name="line.221"></a>
-<span class="sourceLineNo">222</span> */<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public Map filterMap(List view) {<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span> if (input == null)<a name="line.225"></a>
-<span class="sourceLineNo">226</span> return null;<a name="line.226"></a>
+<span class="sourceLineNo">201</span> /**<a name="line.201"></a>
+<span class="sourceLineNo">202</span> * Filters the input object as a collection of maps.<a name="line.202"></a>
+<span class="sourceLineNo">203</span> *<a name="line.203"></a>
+<span class="sourceLineNo">204</span> * @param args The search arguments.<a name="line.204"></a>
+<span class="sourceLineNo">205</span> * @return The filtered collection.<a name="line.205"></a>
+<span class="sourceLineNo">206</span> * <br>Returns the unaltered input if the input is not a collection or array of objects.<a name="line.206"></a>
+<span class="sourceLineNo">207</span> */<a name="line.207"></a>
+<span class="sourceLineNo">208</span> public List filter(SearchArgs args) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> if (input == null)<a name="line.210"></a>
+<span class="sourceLineNo">211</span> return null;<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span> if (! type.isCollectionOrArray())<a name="line.213"></a>
+<span class="sourceLineNo">214</span> throw new RuntimeException("Cannot call filterCollection() on class type " + type);<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span> // Create a new ObjectList<a name="line.216"></a>
+<span class="sourceLineNo">217</span> ObjectList l = (ObjectList)replaceWithMutables(input);<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span> // Do the search<a name="line.219"></a>
+<span class="sourceLineNo">220</span> CollectionFilter filter = new CollectionFilter(args.getSearch(), args.isIgnoreCase());<a name="line.220"></a>
+<span class="sourceLineNo">221</span> filter.doQuery(l);<a name="line.221"></a>
+<span class="sourceLineNo">222</span><a name="line.222"></a>
+<span class="sourceLineNo">223</span> // If sort or view isn't empty, then we need to make sure that all entries in the<a name="line.223"></a>
+<span class="sourceLineNo">224</span> // list are maps.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> Map<String,Boolean> sort = args.getSort();<a name="line.225"></a>
+<span class="sourceLineNo">226</span> List<String> view = args.getView();<a name="line.226"></a>
<span class="sourceLineNo">227</span><a name="line.227"></a>
-<span class="sourceLineNo">228</span> if (! type.isMapOrBean())<a name="line.228"></a>
-<span class="sourceLineNo">229</span> throw new RuntimeException("Cannot call filterMap() on class type " + type);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span> Map m = (Map)replaceWithMutables(input);<a name="line.231"></a>
-<span class="sourceLineNo">232</span> doView(m, view);<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span> return m;<a name="line.234"></a>
-<span class="sourceLineNo">235</span> }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span> /**<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * Filters the input object as a collection of maps.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> *<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @param query The query attributes. Keys must be column names and values must be of type {@code String} or {@code Map}.<a name="line.240"></a>
-<span class="sourceLineNo">241</span> * @param view The view attributes. Values must be of type {@code String} or {@code Map}.<a name="line.241"></a>
-<span class="sourceLineNo">242</span> * @param sort The sort attributes. Values must be of type {@code String} or {@code Map}.<a name="line.242"></a>
-<span class="sourceLineNo">243</span> * @param pos The index into the list to start returning results from. Default is {@code 0}.<a name="line.243"></a>
-<span class="sourceLineNo">244</span> * @param limit The number of rows to return. Default is all rows.<a name="line.244"></a>
-<span class="sourceLineNo">245</span> * @param ignoreCase If <jk>true</jk>, then querying is case insensitive. Default is <jk>false</jk>.<a name="line.245"></a>
-<span class="sourceLineNo">246</span> * @return The filtered collection.<a name="line.246"></a>
-<span class="sourceLineNo">247</span> */<a name="line.247"></a>
-<span class="sourceLineNo">248</span> public List filterCollection(Map query, List view, List sort, int pos, int limit, boolean ignoreCase) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> if (input == null)<a name="line.250"></a>
-<span class="sourceLineNo">251</span> return null;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span> if (! type.isCollectionOrArray())<a name="line.253"></a>
-<span class="sourceLineNo">254</span> throw new RuntimeException("Cannot call filterCollection() on class type " + type);<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span> if (view == null)<a name="line.256"></a>
-<span class="sourceLineNo">257</span> view = Collections.EMPTY_LIST;<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span> if (sort == null)<a name="line.259"></a>
-<span class="sourceLineNo">260</span> sort = Collections.EMPTY_LIST;<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span> // Create a new ObjectList<a name="line.262"></a>
-<span class="sourceLineNo">263</span> ObjectList l = (ObjectList)replaceWithMutables(input);<a name="line.263"></a>
-<span class="sourceLineNo">264</span><a name="line.264"></a>
-<span class="sourceLineNo">265</span> // Do the search<a name="line.265"></a>
-<span class="sourceLineNo">266</span> CollectionFilter filter = new CollectionFilter(query, ignoreCase);<a name="line.266"></a>
-<span class="sourceLineNo">267</span> filter.doQuery(l);<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span> // If sort or view isn't empty, then we need to make sure that all entries in the<a name="line.269"></a>
-<span class="sourceLineNo">270</span> // list are maps.<a name="line.270"></a>
-<span class="sourceLineNo">271</span> if ((! sort.isEmpty()) || (! view.isEmpty())) {<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span> if (! sort.isEmpty())<a name="line.273"></a>
-<span class="sourceLineNo">274</span> doSort(l, sort);<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span> if (! view.isEmpty())<a name="line.276"></a>
-<span class="sourceLineNo">277</span> doView(l, view);<a name="line.277"></a>
-<span class="sourceLineNo">278</span> }<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span> // Do the paging.<a name="line.280"></a>
-<span class="sourceLineNo">281</span> if (pos != 0 || limit != 0) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span> int end = (limit == 0 || limit+pos >= l.size()) ? l.size() : limit + pos;<a name="line.282"></a>
-<span class="sourceLineNo">283</span> ObjectList l2 = new DelegateList(((DelegateList)l).getClassMeta());<a name="line.283"></a>
-<span class="sourceLineNo">284</span> l2.addAll(l.subList(pos, end));<a name="line.284"></a>
-<span class="sourceLineNo">285</span> l = l2;<a name="line.285"></a>
-<span class="sourceLineNo">286</span> }<a name="line.286"></a>
+<span class="sourceLineNo">228</span> if ((! sort.isEmpty()) || (! view.isEmpty())) {<a name="line.228"></a>
+<span class="sourceLineNo">229</span> if (! sort.isEmpty())<a name="line.229"></a>
+<span class="sourceLineNo">230</span> doSort(l, sort);<a name="line.230"></a>
+<span class="sourceLineNo">231</span> if (! view.isEmpty())<a name="line.231"></a>
+<span class="sourceLineNo">232</span> doView(l, view);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> }<a name="line.233"></a>
+<span class="sourceLineNo">234</span><a name="line.234"></a>
+<span class="sourceLineNo">235</span> // Do the paging.<a name="line.235"></a>
+<span class="sourceLineNo">236</span> int pos = args.getPosition();<a name="line.236"></a>
+<span class="sourceLineNo">237</span> int limit = args.getLimit();<a name="line.237"></a>
+<span class="sourceLineNo">238</span> if (pos != 0 || limit != 0) {<a name="line.238"></a>
+<span class="sourceLineNo">239</span> int end = (limit == 0 || limit+pos >= l.size()) ? l.size() : limit + pos;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> ObjectList l2 = new DelegateList(((DelegateList)l).getClassMeta());<a name="line.240"></a>
+<span class="sourceLineNo">241</span> l2.addAll(l.subList(pos, end));<a name="line.241"></a>
+<span class="sourceLineNo">242</span> l = l2;<a name="line.242"></a>
+<span class="sourceLineNo">243</span> }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span> return l;<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span> /*<a name="line.248"></a>
+<span class="sourceLineNo">249</span> * If there are any non-Maps in the specified list, replaces them with BeanMaps.<a name="line.249"></a>
+<span class="sourceLineNo">250</span> */<a name="line.250"></a>
+<span class="sourceLineNo">251</span> private Object replaceWithMutables(Object o) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span> if (o == null)<a name="line.252"></a>
+<span class="sourceLineNo">253</span> return null;<a name="line.253"></a>
+<span class="sourceLineNo">254</span> ClassMeta cm = session.getClassMetaForObject(o);<a name="line.254"></a>
+<span class="sourceLineNo">255</span> if (cm.isCollection()) {<a name="line.255"></a>
+<span class="sourceLineNo">256</span> ObjectList l = new DelegateList(session.getClassMetaForObject(o));<a name="line.256"></a>
+<span class="sourceLineNo">257</span> for (Object o2 : (Collection)o)<a name="line.257"></a>
+<span class="sourceLineNo">258</span> l.add(replaceWithMutables(o2));<a name="line.258"></a>
+<span class="sourceLineNo">259</span> return l;<a name="line.259"></a>
+<span class="sourceLineNo">260</span> }<a name="line.260"></a>
+<span class="sourceLineNo">261</span> if (cm.isMap() && o instanceof BeanMap) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span> BeanMap bm = (BeanMap)o;<a name="line.262"></a>
+<span class="sourceLineNo">263</span> DelegateBeanMap dbm = new DelegateBeanMap(bm.getBean(), session);<a name="line.263"></a>
+<span class="sourceLineNo">264</span> for (Object key : bm.keySet())<a name="line.264"></a>
+<span class="sourceLineNo">265</span> dbm.addKey(key.toString());<a name="line.265"></a>
+<span class="sourceLineNo">266</span> return dbm;<a name="line.266"></a>
+<span class="sourceLineNo">267</span> }<a name="line.267"></a>
+<span class="sourceLineNo">268</span> if (cm.isBean()) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span> BeanMap bm = session.toBeanMap(o);<a name="line.269"></a>
+<span class="sourceLineNo">270</span> DelegateBeanMap dbm = new DelegateBeanMap(bm.getBean(), session);<a name="line.270"></a>
+<span class="sourceLineNo">271</span> for (Object key : bm.keySet())<a name="line.271"></a>
+<span class="sourceLineNo">272</span> dbm.addKey(key.toString());<a name="line.272"></a>
+<span class="sourceLineNo">273</span> return dbm;<a name="line.273"></a>
+<span class="sourceLineNo">274</span> }<a name="line.274"></a>
+<span class="sourceLineNo">275</span> if (cm.isMap()) {<a name="line.275"></a>
+<span class="sourceLineNo">276</span> Map m = (Map)o;<a name="line.276"></a>
+<span class="sourceLineNo">277</span> DelegateMap dm = new DelegateMap(session.getClassMetaForObject(m));<a name="line.277"></a>
+<span class="sourceLineNo">278</span> for (Map.Entry e : (Set<Map.Entry>)m.entrySet())<a name="line.278"></a>
+<span class="sourceLineNo">279</span> dm.put(e.getKey().toString(), e.getValue());<a name="line.279"></a>
+<span class="sourceLineNo">280</span> return dm;<a name="line.280"></a>
+<span class="sourceLineNo">281</span> }<a name="line.281"></a>
+<span class="sourceLineNo">282</span> if (cm.isArray()) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span> return replaceWithMutables(Arrays.asList((Object[])o));<a name="line.283"></a>
+<span class="sourceLineNo">284</span> }<a name="line.284"></a>
+<span class="sourceLineNo">285</span> return o;<a name="line.285"></a>
+<span class="sourceLineNo">286</span> }<a name="line.286"></a>
<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span> return l;<a name="line.288"></a>
-<span class="sourceLineNo">289</span> }<a name="line.289"></a>
-<span class="sourceLineNo">290</span><a name="line.290"></a>
-<span class="sourceLineNo">291</span> /*<a name="line.291"></a>
-<span class="sourceLineNo">292</span> * If there are any non-Maps in the specified list, replaces them with BeanMaps.<a name="line.292"></a>
-<span class="sourceLineNo">293</span> */<a name="line.293"></a>
-<span class="sourceLineNo">294</span> private Object replaceWithMutables(Object o) {<a name="line.294"></a>
-<span class="sourceLineNo">295</span> if (o == null)<a name="line.295"></a>
-<span class="sourceLineNo">296</span> return null;<a name="line.296"></a>
-<span class="sourceLineNo">297</span> ClassMeta cm = session.getClassMetaForObject(o);<a name="line.297"></a>
-<span class="sourceLineNo">298</span> if (cm.isCollection()) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span> ObjectList l = new DelegateList(session.getClassMetaForObject(o));<a name="line.299"></a>
-<span class="sourceLineNo">300</span> for (Object o2 : (Collection)o)<a name="line.300"></a>
-<span class="sourceLineNo">301</span> l.add(replaceWithMutables(o2));<a name="line.301"></a>
-<span class="sourceLineNo">302</span> return l;<a name="line.302"></a>
-<span class="sourceLineNo">303</span> }<a name="line.303"></a>
-<span class="sourceLineNo">304</span> if (cm.isMap() && o instanceof BeanMap) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span> BeanMap bm = (BeanMap)o;<a name="line.305"></a>
-<span class="sourceLineNo">306</span> DelegateBeanMap dbm = new DelegateBeanMap(bm.getBean(), session);<a name="line.306"></a>
-<span class="sourceLineNo">307</span> for (BeanMapEntry e : (Set<BeanMapEntry>)bm.entrySet()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span> ClassMeta ct1 = e.getMeta().getClassMeta();<a name="line.308"></a>
-<span class="sourceLineNo">309</span> if (ct1.isCollectionOrArray() || ct1.isMapOrBean() || ct1.isObject())<a name="line.309"></a>
-<span class="sourceLineNo">310</span> dbm.put(e.getKey(), replaceWithMutables(e.getValue()));<a name="line.310"></a>
-<span class="sourceLineNo">311</span> else<a name="line.311"></a>
-<span class="sourceLineNo">312</span> dbm.addKey(e.getKey());<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span> return dbm;<a name="line.314"></a>
-<span class="sourceLineNo">315</span> }<a name="line.315"></a>
-<span class="sourceLineNo">316</span> if (cm.isBean()) {<a name="line.316"></a>
-<span class="sourceLineNo">317</span> BeanMap bm = session.toBeanMap(o);<a name="line.317"></a>
-<span class="sourceLineNo">318</span> DelegateBeanMap dbm = new DelegateBeanMap(bm.getBean(), session);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> for (BeanMapEntry e : (Set<BeanMapEntry>)bm.entrySet()) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span> ClassMeta ct1 = e.getMeta().getClassMeta();<a name="line.320"></a>
-<span class="sourceLineNo">321</span> if (ct1.isCollectionOrArray() || ct1.isMapOrBean() || ct1.isObject()) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span> Object val = null;<a name="line.322"></a>
-<span class="sourceLineNo">323</span> try {<a name="line.323"></a>
-<span class="sourceLineNo">324</span> val = e.getValue();<a name="line.324"></a>
-<span class="sourceLineNo">325</span> } catch (BeanRuntimeException ex) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span> // Ignore.<a name="line.326"></a>
-<span class="sourceLineNo">327</span> }<a name="line.327"></a>
-<span class="sourceLineNo">328</span> dbm.put(e.getKey(), replaceWithMutables(val));<a name="line.328"></a>
-<span class="sourceLineNo">329</span> }<a name="line.329"></a>
-<span class="sourceLineNo">330</span> else<a name="line.330"></a>
-<span class="sourceLineNo">331</span> dbm.addKey(e.getKey());<a name="line.331"></a>
-<span class="sourceLineNo">332</span> }<a name="line.332"></a>
-<span class="sourceLineNo">333</span> return dbm;<a name="line.333"></a>
-<span class="sourceLineNo">334</span> }<a name="line.334"></a>
-<span class="sourceLineNo">335</span> if (cm.isMap()) {<a name="line.335"></a>
-<span class="sourceLineNo">336</span> Map m = (Map)o;<a name="line.336"></a>
-<span class="sourceLineNo">337</span> DelegateMap dm = new DelegateMap(session.getClassMetaForObject(m));<a name="line.337"></a>
-<span class="sourceLineNo">338</span> for (Map.Entry e : (Set<Map.Entry>)m.entrySet())<a name="line.338"></a>
-<span class="sourceLineNo">339</span> dm.put(e.getKey().toString(), replaceWithMutables(e.getValue()));<a name="line.339"></a>
-<span class="sourceLineNo">340</span> return dm;<a name="line.340"></a>
-<span class="sourceLineNo">341</span> }<a name="line.341"></a>
-<span class="sourceLineNo">342</span> if (cm.isArray()) {<a name="line.342"></a>
-<span class="sourceLineNo">343</span> return replaceWithMutables(Arrays.asList((Object[])o));<a name="line.343"></a>
-<span class="sourceLineNo">344</span> }<a name="line.344"></a>
-<span class="sourceLineNo">345</span> return o;<a name="line.345"></a>
-<span class="sourceLineNo">346</span> }<a name="line.346"></a>
-<span class="sourceLineNo">347</span><a name="line.347"></a>
-<span class="sourceLineNo">348</span> /*<a name="line.348"></a>
-<span class="sourceLineNo">349</span> * Sorts the specified list by the sort list.<a name="line.349"></a>
-<span class="sourceLineNo">350</span> */<a name="line.350"></a>
-<span class="sourceLineNo">351</span> private static void doSort(List list, List sortList) {<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span> Map sort = new LinkedHashMap();<a name="line.353"></a>
-<span class="sourceLineNo">354</span> for (Object s : sortList) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span> if (s instanceof String)<a name="line.355"></a>
-<span class="sourceLineNo">356</span> sort.put(s, "a");<a name="line.356"></a>
-<span class="sourceLineNo">357</span> else if (s instanceof Map) {<a name="line.357"></a>
-<span class="sourceLineNo">358</span> Map sm = (Map)s;<a name="line.358"></a>
-<span class="sourceLineNo">359</span> for (Map.Entry e : (Set<Map.Entry>)sm.entrySet())<a name="line.359"></a>
-<span class="sourceLineNo">360</span> sort.put(e.getKey(), e.getValue().toString().toLowerCase(Locale.ENGLISH));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span> }<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span> // Do the sort.<a name="line.364"></a>
-<span class="sourceLineNo">365</span> List<String> columns = new ArrayList<String>(sort.keySet());<a name="line.365"></a>
-<span class="sourceLineNo">366</span> Collections.reverse(columns);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> for (final String c : columns) {<a name="line.367"></a>
-<span class="sourceLineNo">368</span> final boolean isDesc = startsWith(sort.get(c).toString(), 'd');<a name="line.368"></a>
-<span class="sourceLineNo">369</span> Comparator comp = new Comparator<Map>() {<a name="line.369"></a>
-<span class="sourceLineNo">370</span> @Override /* Comparator */<a name="line.370"></a>
-<span class="sourceLineNo">371</span> public int compare(Map m1, Map m2) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span> Comparable v1 = (Comparable)m1.get(c), v2 = (Comparable)m2.get(c);<a name="line.372"></a>
-<span class="sourceLineNo">373</span> if (v1 == null && v2 == null)<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return 0;<a name="line.374"></a>
-<span class="sourceLineNo">375</span> if (v1 == null)<a name="line.375"></a>
-<span class="sourceLineNo">376</span> return (isDesc ? -1 : 1);<a name="line.376"></a>
-<span class="sourceLineNo">377</span> if (v2 == null)<a name="line.377"></a>
-<span class="sourceLineNo">378</span> return (isDesc ? 1 : -1);<a name="line.378"></a>
-<span class="sourceLineNo">379</span> return (isDesc ? v2.compareTo(v1) : v1.compareTo(v2));<a name="line.379"></a>
-<span class="sourceLineNo">380</span> }<a name="line.380"></a>
-<span class="sourceLineNo">381</span> };<a name="line.381"></a>
-<span class="sourceLineNo">382</span> Collections.sort(list, comp);<a name="line.382"></a>
+<span class="sourceLineNo">288</span> /*<a name="line.288"></a>
+<span class="sourceLineNo">289</span> * Sorts the specified list by the sort list.<a name="line.289"></a>
+<span class="sourceLineNo">290</span> */<a name="line.290"></a>
+<span class="sourceLineNo">291</span> private static void doSort(List list, Map<String,Boolean> sortList) {<a name="line.291"></a>
+<span class="sourceLineNo">292</span><a name="line.292"></a>
+<span class="sourceLineNo">293</span> // We reverse the list and sort last to first.<a name="line.293"></a>
+<span class="sourceLineNo">294</span> List<String> columns = new ArrayList<String>(sortList.keySet());<a name="line.294"></a>
+<span class="sourceLineNo">295</span> Collections.reverse(columns);<a name="line.295"></a>
+<span class="sourceLineNo">296</span><a name="line.296"></a>
+<span class="sourceLineNo">297</span> for (final String c : columns) {<a name="line.297"></a>
+<span class="sourceLineNo">298</span> final boolean isDesc = sortList.get(c);<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span> Comparator comp = new Comparator<Map>() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span> @Override /* Comparator */<a name="line.301"></a>
+<span class="sourceLineNo">302</span> public int compare(Map m1, Map m2) {<a name="line.302"></a>
+<span class="sourceLineNo">303</span> Comparable v1 = (Comparable)m1.get(c), v2 = (Comparable)m2.get(c);<a name="line.303"></a>
+<span class="sourceLineNo">304</span> if (v1 == null && v2 == null)<a name="line.304"></a>
+<span class="sourceLineNo">305</span> return 0;<a name="line.305"></a>
+<span class="sourceLineNo">306</span> if (v1 == null)<a name="line.306"></a>
+<span class="sourceLineNo">307</span> return (isDesc ? -1 : 1);<a name="line.307"></a>
+<span class="sourceLineNo">308</span> if (v2 == null)<a name="line.308"></a>
+<span class="sourceLineNo">309</span> return (isDesc ? 1 : -1);<a name="line.309"></a>
+<span class="sourceLineNo">310</span> return (isDesc ? v2.compareTo(v1) : v1.compareTo(v2));<a name="line.310"></a>
+<span class="sourceLineNo">311</span> }<a name="line.311"></a>
+<span class="sourceLineNo">312</span> };<a name="line.312"></a>
+<span class="sourceLineNo">313</span> Collections.sort(list, comp);<a name="line.313"></a>
+<span class="sourceLineNo">314</span> }<a name="line.314"></a>
+<span class="sourceLineNo">315</span> }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span> /*<a name="line.317"></a>
+<span class="sourceLineNo">318</span> * Filters all but the specified view columns on all entries in the specified list.<a name="line.318"></a>
+<span class="sourceLineNo">319</span> */<a name="line.319"></a>
+<span class="sourceLineNo">320</span> private static void doView(List list, List<String> view) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span> for (ListIterator i = list.listIterator(); i.hasNext();) {<a name="line.321"></a>
+<span class="sourceLineNo">322</span> Object o = i.next();<a name="line.322"></a>
+<span class="sourceLineNo">323</span> Map m = (Map)o;<a name="line.323"></a>
+<span class="sourceLineNo">324</span> doView(m, view);<a name="line.324"></a>
+<span class="sourceLineNo">325</span> }<a name="line.325"></a>
+<span class="sourceLineNo">326</span> }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span> /*<a name="line.328"></a>
+<span class="sourceLineNo">329</span> * Creates a new Map with only the entries specified in the view list.<a name="line.329"></a>
+<span class="sourceLineNo">330</span> */<a name="line.330"></a>
+<span class="sourceLineNo">331</span> private static Map doView(Map m, List<String> view) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span> if (m instanceof DelegateMap)<a name="line.332"></a>
+<span class="sourceLineNo">333</span> ((DelegateMap)m).filterKeys(view);<a name="line.333"></a>
+<span class="sourceLineNo">334</span> else<a name="line.334"></a>
+<span class="sourceLineNo">335</span> ((DelegateBeanMap)m).filterKeys(view);<a name="line.335"></a>
+<span class="sourceLineNo">336</span> return m;<a name="line.336"></a>
+<span class="sourceLineNo">337</span> }<a name="line.337"></a>
+<span class="sourceLineNo">338</span><a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span> //====================================================================================================<a name="line.340"></a>
+<span class="sourceLineNo">341</span> // CollectionFilter<a name="line.341"></a>
+<span class="sourceLineNo">342</span> //====================================================================================================<a name="line.342"></a>
+<span class="sourceLineNo">343</span> private class CollectionFilter {<a name="line.343"></a>
+<span class="sourceLineNo">344</span> IMatcher entryMatcher;<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span> public CollectionFilter(Map query, boolean ignoreCase) {<a name="line.346"></a>
+<span class="sourceLineNo">347</span> if (query != null && ! query.isEmpty())<a name="line.347"></a>
+<span class="sourceLineNo">348</span> entryMatcher = new MapMatcher(query, ignoreCase);<a name="line.348"></a>
+<span class="sourceLineNo">349</span> }<a name="line.349"></a>
+<span class="sourceLineNo">350</span><a name="line.350"></a>
+<span class="sourceLineNo">351</span> public void doQuery(List in) {<a name="line.351"></a>
+<span class="sourceLineNo">352</span> if (in == null || entryMatcher == null)<a name="line.352"></a>
+<span class="sourceLineNo">353</span> return;<a name="line.353"></a>
+<span class="sourceLineNo">354</span> for (Iterator i = in.iterator(); i.hasNext();) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span> Object o = i.next();<a name="line.355"></a>
+<span class="sourceLineNo">356</span> if (! entryMatcher.matches(o))<a name="line.356"></a>
+<span class="sourceLineNo">357</span> i.remove();<a name="line.357"></a>
+<span class="sourceLineNo">358</span> }<a name="line.358"></a>
+<span class="sourceLineNo">359</span> }<a name="line.359"></a>
+<span class="sourceLineNo">360</span> }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span> //====================================================================================================<a name="line.362"></a>
+<span class="sourceLineNo">363</span> // IMatcher<a name="line.363"></a>
+<span class="sourceLineNo">364</span> //====================================================================================================<a name="line.364"></a>
+<span class="sourceLineNo">365</span> private interface IMatcher<E> {<a name="line.365"></a>
+<span class="sourceLineNo">366</span> public boolean matches(E o);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> }<a name="line.367"></a>
+<span class="sourceLineNo">368</span><a name="line.368"></a>
+<span class="sourceLineNo">369</span> //====================================================================================================<a name="line.369"></a>
+<span class="sourceLineNo">370</span> // MapMatcher<a name="line.370"></a>
+<span class="sourceLineNo">371</span> //====================================================================================================<a name="line.371"></a>
+<span class="sourceLineNo">372</span> /*<a name="line.372"></a>
+<span class="sourceLineNo">373</span> * Matches on a Map only if all specified entry matchers match.<a name="line.373"></a>
+<span class="sourceLineNo">374</span> */<a name="line.374"></a>
+<span class="sourceLineNo">375</span> private class MapMatcher implements IMatcher<Map> {<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span> Map<String,IMatcher> entryMatchers = new HashMap<String,IMatcher>();<a name="line.377"></a>
+<span class="sourceLineNo">378</span><a name="line.378"></a>
+<span class="sourceLineNo">379</span> public MapMatcher(Map query, boolean ignoreCase) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span> for (Map.Entry e : (Set<Map.Entry>)query.entrySet())<a name="line.380"></a>
+<span class="sourceLineNo">381</span> if (e.getKey() != null && e.getValue() != null)<a name="line.381"></a>
+<span class="sourceLineNo">382</span> entryMatchers.put(e.getKey().toString(), new ObjectMatcher(e.getValue().toString(), ignoreCase));<a name="line.382"></a>
<span class="sourceLineNo">383</span> }<a name="line.383"></a>
-<span class="sourceLineNo">384</span> }<a name="line.384"></a>
-<span class="sourceLineNo">385</span><a name="line.385"></a>
-<span class="sourceLineNo">386</span> /*<a name="line.386"></a>
-<span class="sourceLineNo">387</span> * Filters all but the specified view columns on all entries in the specified list.<a name="line.387"></a>
-<span class="sourceLineNo">388</span> */<a name="line.388"></a>
-<span class="sourceLineNo">389</span> private void doView(List list, List view) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span><a name="line.390"></a>
-<span class="sourceLineNo">391</span> for (ListIterator i = list.listIterator(); i.hasNext();) {<a name="line.391"></a>
-<span class="sourceLineNo">392</span> Object o = i.next();<a name="line.392"></a>
-<span class="sourceLineNo">393</span> Map m = (Map)o;<a name="line.393"></a>
-<span class="sourceLineNo">394</span> doView(m, view);<a name="line.394"></a>
-<span class="sourceLineNo">395</span> }<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span> /*<a name="line.398"></a>
-<span class="sourceLineNo">399</span> * Creates a new Map with only the entries specified in the view list.<a name="line.399"></a>
-<span class="sourceLineNo">400</span> */<a name="line.400"></a>
-<span class="sourceLineNo">401</span> private void doView(Map m, List view) {<a name="line.401"></a>
-<span class="sourceLineNo">402</span> List<String> filterKeys = new LinkedList<String>();<a name="line.402"></a>
-<span class="sourceLineNo">403</span> for (Object v : view) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span> if (v instanceof String) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span> filterKeys.add(v.toString());<a name="line.405"></a>
-<span class="sourceLineNo">406</span> } else if (v instanceof ObjectMap) {<a name="line.406"></a>
-<span class="sourceLineNo">407</span> ObjectMap vm = (ObjectMap)v;<a name="line.407"></a>
-<span class="sourceLineNo">408</span> for (Map.Entry<String,Object> e : vm.entrySet()) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span> String vmKey = e.getKey();<a name="line.409"></a>
-<span class="sourceLineNo">410</span> Object vmVal = e.getValue();<a name="line.410"></a>
-<span class="sourceLineNo">411</span> Object mv = m.get(vmKey);<a name="line.411"></a>
-<span class="sourceLineNo">412</span> filterKeys.add(vmKey);<a name="line.412"></a>
-<span class="sourceLineNo">413</span> if (vmVal instanceof List) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span> List l = (List)vmVal;<a name="line.414"></a>
-<span class="sourceLineNo">415</span> if (mv instanceof List)<a name="line.415"></a>
-<span class="sourceLineNo">416</span> doView((List)mv, l);<a name="line.416"></a>
-<span class="sourceLineNo">417</span> else if (mv instanceof Map)<a name="line.417"></a>
-<span class="sourceLineNo">418</span> doView((Map)mv, l);<a name="line.418"></a>
-<span class="sourceLineNo">419</span> }<a name="line.419"></a>
-<span class="sourceLineNo">420</span> }<a name="line.420"></a>
-<span class="sourceLineNo">421</span> }<a name="line.421"></a>
+<span class="sourceLineNo">384</span><a name="line.384"></a>
+<span class="sourceLineNo">385</span> @Override /* IMatcher */<a name="line.385"></a>
+<span class="sourceLineNo">386</span> public boolean matches(Map m) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span> if (m == null)<a name="line.387"></a>
+<span class="sourceLineNo">388</span> return false;<a name="line.388"></a>
+<span class="sourceLineNo">389</span> for (Map.Entry<String,IMatcher> e : entryMatchers.entrySet()) {<a name="line.389"></a>
+<span class="sourceLineNo">390</span> String key = e.getKey();<a name="line.390"></a>
+<span class="sourceLineNo">391</span> Object val = null;<a name="line.391"></a>
+<span class="sourceLineNo">392</span> if (m instanceof BeanMap) {<a name="line.392"></a>
+<span class="sourceLineNo">393</span> val = ((BeanMap)m).getRaw(key);<a name="line.393"></a>
+<span class="sourceLineNo">394</span> } else {<a name="line.394"></a>
+<span class="sourceLineNo">395</span> val = m.get(key);<a name="line.395"></a>
+<span class="sourceLineNo">396</span> }<a name="line.396"></a>
+<span class="sourceLineNo">397</span> if (! e.getValue().matches(val))<a name="line.397"></a>
+<span class="sourceLineNo">398</span> return false;<a name="line.398"></a>
+<span class="sourceLineNo">399</span> }<a name="line.399"></a>
+<span class="sourceLineNo">400</span> return true;<a name="line.400"></a>
+<span class="sourceLineNo">401</span> }<a name="line.401"></a>
+<span class="sourceLineNo">402</span> }<a name="line.402"></a>
+<span class="sourceLineNo">403</span><a name="line.403"></a>
+<span class="sourceLineNo">404</span> //====================================================================================================<a name="line.404"></a>
+<span class="sourceLineNo">405</span> // ObjectMatcher<a name="line.405"></a>
+<span class="sourceLineNo">406</span> //====================================================================================================<a name="line.406"></a>
+<span class="sourceLineNo">407</span> /*<a name="line.407"></a>
+<span class="sourceLineNo">408</span> * Matcher that uses the correct matcher based on object type.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> * Used for objects when we can't determine the object type beforehand.<a name="line.409"></a>
+<span class="sourceLineNo">410</span> */<a name="line.410"></a>
+<span class="sourceLineNo">411</span> private class ObjectMatcher implements IMatcher<Object> {<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span> String searchPattern;<a name="line.413"></a>
+<span class="sourceLineNo">414</span> boolean ignoreCase;<a name="line.414"></a>
+<span class="sourceLineNo">415</span> DateMatcher dateMatcher;<a name="line.415"></a>
+<span class="sourceLineNo">416</span> NumberMatcher numberMatcher;<a name="line.416"></a>
+<span class="sourceLineNo">417</span> StringMatcher stringMatcher;<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span> ObjectMatcher(String searchPattern, boolean ignoreCase) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span> this.searchPattern = searchPattern;<a name="line.420"></a>
+<span class="sourceLineNo">421</span> this.ignoreCase = ignoreCase;<a name="line.421"></a>
<span class="sourceLineNo">422</span> }<a name="line.422"></a>
-<span class="sourceLineNo">423</span> if (m instanceof DelegateMap)<a name="line.423"></a>
-<span class="sourceLineNo">424</span> ((DelegateMap)m).filterKeys(filterKeys);<a name="line.424"></a>
-<span class="sourceLineNo">425</span> else<a name="line.425"></a>
-<span class="sourceLineNo">426</span> ((DelegateBeanMap)m).filterKeys(filterKeys);<a name="line.426"></a>
-<span class="sourceLineNo">427</span> }<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span><a name="line.429"></a>
-<span class="sourceLineNo">430</span> /*<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * Returns the appropriate IMatcher for the specified class type.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> */<a name="line.432"></a>
-<span class="sourceLineNo">433</span> private IMatcher getObjectMatcherForType(String queryString, boolean ignoreCase, ClassMeta cm) {<a name="line.433"></a>
-<span class="sourceLineNo">434</span> if (cm.isDate())<a name="line.434"></a>
-<span class="sourceLineNo">435</span> return new DateMatcher(queryString);<a name="line.435"></a>
-<span class="sourceLineNo">436</span> if (cm.isNumber())<a name="line.436"></a>
-<span class="sourceLineNo">437</span> return new NumberMatcher(queryString);<a name="line.437"></a>
-<span class="sourceLineNo">438</span> if (cm.isObject())<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return new ObjectMatcher(queryString, ignoreCase);<a name="line.439"></a>
-<span class="sourceLineNo">440</span> return new StringMatcher(queryString, ignoreCase);<a name="line.440"></a>
-<span class="sourceLineNo">441</span> }<a name="line.441"></a>
-<span class="sourceLineNo">442</span><a name="line.442"></a>
-<span class="sourceLineNo">443</span> //====================================================================================================<a name="line.443"></a>
-<span class="sourceLineNo">444</span> // CollectionFilter<a name="line.444"></a>
-<span class="sourceLineNo">445</span> //====================================================================================================<a name="line.445"></a>
-<span class="sourceLineNo">446</span> private class CollectionFilter {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> IMatcher entryMatcher;<a name="line.447"></a>
-<span class="sourceLineNo">448</span><a name="line.448"></a>
-<span class="sourceLineNo">449</span> public CollectionFilter(Map query, boolean ignoreCase) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span> if (query != null && ! query.isEmpty())<a name="line.450"></a>
-<span class="sourceLineNo">451</span> entryMatcher = new MapMatcher(query, ignoreCase);<a name="line.451"></a>
-<span class="sourceLineNo">452</span> }<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span> public void doQuery(List in) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span> if (in == null || entryMatcher == null)<a name="line.455"></a>
-<span class="sourceLineNo">456</span> return;<a name="line.456"></a>
-<span class="sourceLineNo">457</span> for (Iterator i = in.iterator(); i.hasNext();) {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> Object o = i.next();<a name="line.458"></a>
-<span class="sourceLineNo">459</span> if (! entryMatcher.matches(o))<a name="line.459"></a>
-<span class="sourceLineNo">460</span> i.remove();<a name="line.460"></a>
-<span class="sourceLineNo">461</span> }<a name="line.461"></a>
-<span class="sourceLineNo">462</span> }<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span><a name="line.464"></a>
-<span class="sourceLineNo">465</span> //====================================================================================================<a name="line.465"></a>
-<span class="sourceLineNo">466</span> // IMatcher<a name="line.466"></a>
-<span class="sourceLineNo">467</span> //====================================================================================================<a name="line.467"></a>
-<span class="sourceLineNo">468</span> private interface IMatcher<E> {<a name="line.468"></a>
-<span class="sourceLineNo">469</span> public boolean matches(E o);<a name="line.469"></a>
-<span class="sourceLineNo">470</span> }<a name="line.470"></a>
-<span class="sourceLineNo">471</span><a name="line.471"></a>
-<span class="sourceLineNo">472</span> //====================================================================================================<a name="line.472"></a>
-<span class="sourceLineNo">473</span> // MapMatcher<a name="line.473"></a>
-<span class="sourceLineNo">474</span> //====================================================================================================<a name="line.474"></a>
-<span class="sourceLineNo">475</span> /*<a name="line.475"></a>
-<span class="sourceLineNo">476</span> * Matches on a Map only if all specified entry matchers match.<a name="line.476"></a>
-<span class="sourceLineNo">477</span> */<a name="line.477"></a>
-<span class="sourceLineNo">478</span> private class MapMatcher implements IMatcher<Map> {<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span> Map<String,IMatcher> entryMatchers = new HashMap<String,IMatcher>();<a name="line.480"></a>
-<span class="sourceLineNo">481</span><a name="line.481"></a>
-<span class="sourceLineNo">482</span> public MapMatcher(Map query, boolean ignoreCase) {<a name="line.482"></a>
-<span class="sourceLineNo">483</span> for (Map.Entry e : (Set<Map.Entry>)query.entrySet()) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span> String key = e.getKey().toString();<a name="line.484"></a>
-<span class="sourceLineNo">485</span> Object value = e.getValue();<a name="line.485"></a>
-<span class="sourceLineNo">486</span> IMatcher matcher = null;<a name="line.486"></a>
-<span class="sourceLineNo">487</span> if (value instanceof String)<a name="line.487"></a>
-<span class="sourceLineNo">488</span> matcher = getObjectMatcherForType((String)value, ignoreCase, session.object());<a name="line.488"></a>
-<span class="sourceLineNo">489</span> else if (value instanceof ObjectMap)<a name="line.489"></a>
-<span class="sourceLineNo">490</span> matcher = new MapMatcher((ObjectMap)value, ignoreCase);<a name="line.490"></a>
-<span class="sourceLineNo">491</span> else<a name="line.491"></a>
-<span class="sourceLineNo">492</span> throw new RuntimeException("Invalid value type: " + value);<a name="line.492"></a>
-<span class="sourceLineNo">493</span> entryMatchers.put(key, matcher);<a name="line.493"></a>
-<span class="sourceLineNo">494</span> }<a name="line.494"></a>
-<span class="sourceLineNo">495</span> }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span> @Override /* IMatcher */<a name="line.497"></a>
-<span class="sourceLineNo">498</span> public boolean matches(Map m) {<a name="line.498"></a>
-<span class="sourceLineNo">499</span> if (m == null)<a name="line.499"></a>
-<span class="sourceLineNo">500</span> return false;<a name="line.500"></a>
-<span class="sourceLineNo">501</span> for (Map.Entry<String,IMatcher> e : entryMatchers.entrySet()) {<a name="line.501"></a>
-<span class="sourceLineNo">502</span> String key = e.getKey();<a name="line.502"></a>
-<span class="sourceLineNo">503</span> Object val = m.get(key);<a name="line.503"></a>
-<span class="sourceLineNo">504</span> if (! e.getValue().matches(val))<a name="line.504"></a>
-<span class="sourceLineNo">505</span> return false;<a name="line.505"></a>
-<span class="sourceLineNo">506</span> }<a name="line.506"></a>
-<span class="sourceLineNo">507</span> return true;<a name="line.507"></a>
-<span class="sourceLineNo">508</span> }<a name="line.508"></a>
-<span class="sourceLineNo">509</span> }<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span> //====================================================================================================<a name="line.511"></a>
-<span class="sourceLineNo">512</span> // ObjectMatcher<a name="line.512"></a>
-<span class="sourceLineNo">513</span> //====================================================================================================<a name="line.513"></a>
-<span class="sourceLineNo">514</span> /*<a name="line.514"></a>
-<span class="sourceLineNo">515</span> * Matcher that uses the correct matcher based on object type.<a name="line.515"></a>
-<span class="sourceLineNo">516</span> * Used for objects when we can't determine the object type beforehand.<a name="line.516"></a>
-<span class="sourceLineNo">517</span> */<a name="line.517"></a>
-<span class="sourceLineNo">518</span> private class ObjectMatcher implements IMatcher<Object> {<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> String searchPattern;<a name="line.520"></a>
-<span class="sourceLineNo">521</span> boolean ignoreCase;<a name="line.521"></a>
-<span class="sourceLineNo">522</span> DateMatcher dateMatcher;<a name="line.522"></a>
-<span class="sourceLineNo">523</span> NumberMatcher numberMatcher;<a name="line.523"></a>
-<span class="sourceLineNo">524</span> StringMatcher stringMatcher;<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span> ObjectMatcher(String searchPattern, boolean ignoreCase) {<a name="line.526"></a>
-<span class="sourceLineNo">527</span> this.searchPattern = searchPattern;<a name="line.527"></a>
-<span class="sourceLineNo">528</span> this.ignoreCase = ignoreCase;<a name="line.528"></a>
-<span class="sourceLineNo">529</span> }<a name="line.529"></a>
+<span class="sourceLineNo">423</span><a name="line.423"></a>
+<span class="sourceLineNo">424</span> @Override /* IMatcher */<a name="line.424"></a>
+<span class="sourceLineNo">425</span> public boolean matches(Object o) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span> if (o instanceof Number)<a name="line.426"></a>
+<span class="sourceLineNo">427</span> return getNumberMatcher().matches(o);<a name="line.427"></a>
+<span class="sourceLineNo">428</span> if (o instanceof Date || o instanceof Calendar)<a name="line.428"></a>
+<span class="sourceLineNo">429</span> return getDateMatcher().matches(o);<a name="line.429"></a>
+<span class="sourceLineNo">430</span> return getStringMatcher().matches(o);<a name="line.430"></a>
+<span class="sourceLineNo">431</span> }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span> private IMatcher getNumberMatcher() {<a name="line.433"></a>
+<span class="sourceLineNo">434</span> if (numberMatcher == null)<a name="line.434"></a>
+<span class="sourceLineNo">435</span> numberMatcher = new NumberMatcher(searchPattern);<a name="line.435"></a>
+<span class="sourceLineNo">436</span> return numberMatcher;<a name="line.436"></a>
+<span class="sourceLineNo">437</span> }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span> private IMatcher getStringMatcher() {<a name="line.439"></a>
+<span class="sourceLineNo">440</span> if (stringMatcher == null)<a name="line.440"></a>
+<span class="sourceLineNo">441</span> stringMatcher = new StringMatcher(searchPattern, ignor
<TRUNCATED>
[10/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/ObjectList.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/ObjectList.html b/content/site/apidocs/src-html/org/apache/juneau/ObjectList.html
index 795d869..f905c5f 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/ObjectList.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/ObjectList.html
@@ -147,436 +147,440 @@
<span class="sourceLineNo">139</span> this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession());<a name="line.139"></a>
<span class="sourceLineNo">140</span> if (p == null)<a name="line.140"></a>
<span class="sourceLineNo">141</span> p = JsonParser.DEFAULT;<a name="line.141"></a>
-<span class="sourceLineNo">142</span> if (s != null)<a name="line.142"></a>
-<span class="sourceLineNo">143</span> p.parseIntoCollection(s, this, session.object());<a name="line.143"></a>
-<span class="sourceLineNo">144</span> }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span> /**<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * Shortcut for <code><jk>new</jk> ObjectList(String,JsonParser.<jsf>DEFAULT</jsf>);</code><a name="line.147"></a>
-<span class="sourceLineNo">148</span> *<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * @param s The string being parsed.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.150"></a>
-<span class="sourceLineNo">151</span> */<a name="line.151"></a>
-<span class="sourceLineNo">152</span> public ObjectList(CharSequence s) throws ParseException {<a name="line.152"></a>
-<span class="sourceLineNo">153</span> this(s, null);<a name="line.153"></a>
-<span class="sourceLineNo">154</span> }<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span> * Construct a JSON array directly from a reader using the specified parser.<a name="line.157"></a>
-<span class="sourceLineNo">158</span> *<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * @param r The reader to read from. Will automatically be wrapped in a {@link BufferedReader} if it isn't already a BufferedReader.<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * @param p The parser to use to parse the input.<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.161"></a>
-<span class="sourceLineNo">162</span> * @throws IOException If a problem occurred trying to read from the reader.<a name="line.162"></a>
-<span class="sourceLineNo">163</span> */<a name="line.163"></a>
-<span class="sourceLineNo">164</span> public ObjectList(Reader r, Parser p) throws ParseException, IOException {<a name="line.164"></a>
-<span class="sourceLineNo">165</span> this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession());<a name="line.165"></a>
-<span class="sourceLineNo">166</span> parseReader(r, p);<a name="line.166"></a>
-<span class="sourceLineNo">167</span> }<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span> /**<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * Shortcut for <code><jk>new</jk> ObjectList(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>.<a name="line.170"></a>
-<span class="sourceLineNo">171</span> *<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * @param r The reader to read from. The reader will be wrapped in a {@link BufferedReader} if it isn't already.<a name="line.172"></a>
-<span class="sourceLineNo">173</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.173"></a>
-<span class="sourceLineNo">174</span> * @throws IOException If a problem occurred trying to read from the reader.<a name="line.174"></a>
-<span class="sourceLineNo">175</span> */<a name="line.175"></a>
-<span class="sourceLineNo">176</span> public ObjectList(Reader r) throws ParseException, IOException {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> this(BeanContext.DEFAULT.createSession());<a name="line.177"></a>
-<span class="sourceLineNo">178</span> parseReader(r, JsonParser.DEFAULT);<a name="line.178"></a>
-<span class="sourceLineNo">179</span> }<a name="line.179"></a>
-<span class="sourceLineNo">180</span><a name="line.180"></a>
-<span class="sourceLineNo">181</span> private void parseReader(Reader r, Parser p) throws ParseException {<a name="line.181"></a>
-<span class="sourceLineNo">182</span> if (p == null)<a name="line.182"></a>
-<span class="sourceLineNo">183</span> p = JsonParser.DEFAULT;<a name="line.183"></a>
-<span class="sourceLineNo">184</span> p.parseIntoCollection(r, this, session.object());<a name="line.184"></a>
-<span class="sourceLineNo">185</span> }<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span> /**<a name="line.187"></a>
-<span class="sourceLineNo">188</span> * Construct an empty JSON array. (i.e. an empty {@link LinkedList}).<a name="line.188"></a>
-<span class="sourceLineNo">189</span> */<a name="line.189"></a>
-<span class="sourceLineNo">190</span> public ObjectList() {<a name="line.190"></a>
-<span class="sourceLineNo">191</span> this(BeanContext.DEFAULT.createSession());<a name="line.191"></a>
-<span class="sourceLineNo">192</span> }<a name="line.192"></a>
-<span class="sourceLineNo">193</span><a name="line.193"></a>
-<span class="sourceLineNo">194</span> /**<a name="line.194"></a>
-<span class="sourceLineNo">195</span> * Construct an empty JSON array with the specified bean context. (i.e. an empty {@link LinkedList}).<a name="line.195"></a>
-<span class="sourceLineNo">196</span> *<a name="line.196"></a>
-<span class="sourceLineNo">197</span> * @param session The bean context to associate with this object list for creating beans.<a name="line.197"></a>
-<span class="sourceLineNo">198</span> */<a name="line.198"></a>
-<span class="sourceLineNo">199</span> public ObjectList(BeanSession session) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span> super();<a name="line.200"></a>
-<span class="sourceLineNo">201</span> this.session = session;<a name="line.201"></a>
-<span class="sourceLineNo">202</span> }<a name="line.202"></a>
-<span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span> /**<a name="line.204"></a>
-<span class="sourceLineNo">205</span> * Construct a JSON array and fill it with the specified objects.<a name="line.205"></a>
-<span class="sourceLineNo">206</span> *<a name="line.206"></a>
-<span class="sourceLineNo">207</span> * @param o A list of objects to add to this list.<a name="line.207"></a>
-<span class="sourceLineNo">208</span> */<a name="line.208"></a>
-<span class="sourceLineNo">209</span> public ObjectList(Object... o) {<a name="line.209"></a>
-<span class="sourceLineNo">210</span> super(Arrays.asList(o));<a name="line.210"></a>
-<span class="sourceLineNo">211</span> }<a name="line.211"></a>
-<span class="sourceLineNo">212</span><a name="line.212"></a>
-<span class="sourceLineNo">213</span> /**<a name="line.213"></a>
-<span class="sourceLineNo">214</span> * Construct a JSON array and fill it with the specified collection of objects.<a name="line.214"></a>
-<span class="sourceLineNo">215</span> *<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * @param c A list of objects to add to this list.<a name="line.216"></a>
-<span class="sourceLineNo">217</span> */<a name="line.217"></a>
-<span class="sourceLineNo">218</span> public ObjectList(Collection<?> c) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span> super(c);<a name="line.219"></a>
-<span class="sourceLineNo">220</span> }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span> /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span> * Override the default bean session used for converting POJOs.<a name="line.223"></a>
-<span class="sourceLineNo">224</span> * <p><a name="line.224"></a>
-<span class="sourceLineNo">225</span> * Default is {@link BeanContext#DEFAULT}, which is sufficient in most cases.<a name="line.225"></a>
-<span class="sourceLineNo">226</span> * <p><a name="line.226"></a>
-<span class="sourceLineNo">227</span> * Useful if you're serializing/parsing beans with transforms defined.<a name="line.227"></a>
-<span class="sourceLineNo">228</span> *<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * @param session The new bean session.<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * @return This object (for method chaining).<a name="line.230"></a>
-<span class="sourceLineNo">231</span> */<a name="line.231"></a>
-<span class="sourceLineNo">232</span> public ObjectList setBeanSession(BeanSession session) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span> this.session = session;<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return this;<a name="line.234"></a>
-<span class="sourceLineNo">235</span> }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span> /**<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * Convenience method for adding multiple objects to this list.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> * @param o The objects to add to the list.<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @return This object (for method chaining).<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span> public ObjectList append(Object...o) {<a name="line.242"></a>
-<span class="sourceLineNo">243</span> for (Object o2 : o)<a name="line.243"></a>
-<span class="sourceLineNo">244</span> add(o2);<a name="line.244"></a>
-<span class="sourceLineNo">245</span> return this;<a name="line.245"></a>
-<span class="sourceLineNo">246</span> }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span> /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span> * Get the entry at the specified index, converted to the specified type (if possible).<a name="line.249"></a>
-<span class="sourceLineNo">250</span> * <p><a name="line.250"></a>
-<span class="sourceLineNo">251</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.251"></a>
-<span class="sourceLineNo">252</span> *<a name="line.252"></a>
-<span class="sourceLineNo">253</span> * @param type The type of object to convert the entry to.<a name="line.253"></a>
-<span class="sourceLineNo">254</span> * @param index The index into this list.<a name="line.254"></a>
-<span class="sourceLineNo">255</span> * @param <T> The type of object to convert the entry to.<a name="line.255"></a>
-<span class="sourceLineNo">256</span> * @return The converted entry.<a name="line.256"></a>
-<span class="sourceLineNo">257</span> */<a name="line.257"></a>
-<span class="sourceLineNo">258</span> public <T> T get(Class<T> type, int index) {<a name="line.258"></a>
-<span class="sourceLineNo">259</span> return session.convertToType(get(index), type);<a name="line.259"></a>
-<span class="sourceLineNo">260</span> }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span> /**<a name="line.262"></a>
-<span class="sourceLineNo">263</span> * Shortcut for calling <code>get(String.<jk>class</jk>, index)</code>.<a name="line.263"></a>
-<span class="sourceLineNo">264</span> *<a name="line.264"></a>
-<span class="sourceLineNo">265</span> * @param index The index.<a name="line.265"></a>
-<span class="sourceLineNo">266</span> * @return The converted value.<a name="line.266"></a>
-<span class="sourceLineNo">267</span> */<a name="line.267"></a>
-<span class="sourceLineNo">268</span> public String getString(int index) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> return get(String.class, index);<a name="line.269"></a>
-<span class="sourceLineNo">270</span> }<a name="line.270"></a>
-<span class="sourceLineNo">271</span><a name="line.271"></a>
-<span class="sourceLineNo">272</span> /**<a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Shortcut for calling <code>get(Integer.<jk>class</jk>, index)</code>.<a name="line.273"></a>
-<span class="sourceLineNo">274</span> *<a name="line.274"></a>
-<span class="sourceLineNo">275</span> * @param index The index.<a name="line.275"></a>
-<span class="sourceLineNo">276</span> * @return The converted value.<a name="line.276"></a>
-<span class="sourceLineNo">277</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.277"></a>
-<span class="sourceLineNo">278</span> */<a name="line.278"></a>
-<span class="sourceLineNo">279</span> public Integer getInt(int index) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span> return get(Integer.class, index);<a name="line.280"></a>
-<span class="sourceLineNo">281</span> }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span> /**<a name="line.283"></a>
-<span class="sourceLineNo">284</span> * Shortcut for calling <code>get(Boolean.<jk>class</jk>, index)</code>.<a name="line.284"></a>
-<span class="sourceLineNo">285</span> *<a name="line.285"></a>
-<span class="sourceLineNo">286</span> * @param index The index.<a name="line.286"></a>
-<span class="sourceLineNo">287</span> * @return The converted value.<a name="line.287"></a>
-<span class="sourceLineNo">288</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.288"></a>
-<span class="sourceLineNo">289</span> */<a name="line.289"></a>
-<span class="sourceLineNo">290</span> public Boolean getBoolean(int index) {<a name="line.290"></a>
-<span class="sourceLineNo">291</span> return get(Boolean.class, index);<a name="line.291"></a>
-<span class="sourceLineNo">292</span> }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span> /**<a name="line.294"></a>
-<span class="sourceLineNo">295</span> * Shortcut for calling <code>get(Long.<jk>class</jk>, index)</code>.<a name="line.295"></a>
-<span class="sourceLineNo">296</span> *<a name="line.296"></a>
-<span class="sourceLineNo">297</span> * @param index The index.<a name="line.297"></a>
-<span class="sourceLineNo">298</span> * @return The converted value.<a name="line.298"></a>
-<span class="sourceLineNo">299</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.299"></a>
-<span class="sourceLineNo">300</span> */<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public Long getLong(int index) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span> return get(Long.class, index);<a name="line.302"></a>
-<span class="sourceLineNo">303</span> }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span> /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span> * Shortcut for calling <code>get(Map.<jk>class</jk>, index)</code>.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> *<a name="line.307"></a>
-<span class="sourceLineNo">308</span> * @param index The index.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return The converted value.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.310"></a>
-<span class="sourceLineNo">311</span> */<a name="line.311"></a>
-<span class="sourceLineNo">312</span> public Map<?,?> getMap(int index) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span> return get(Map.class, index);<a name="line.313"></a>
-<span class="sourceLineNo">314</span> }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span> /**<a name="line.316"></a>
-<span class="sourceLineNo">317</span> * Shortcut for calling <code>get(List.<jk>class</jk>, index)</code>.<a name="line.317"></a>
-<span class="sourceLineNo">318</span> *<a name="line.318"></a>
-<span class="sourceLineNo">319</span> * @param index The index.<a name="line.319"></a>
-<span class="sourceLineNo">320</span> * @return The converted value.<a name="line.320"></a>
-<span class="sourceLineNo">321</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.321"></a>
-<span class="sourceLineNo">322</span> */<a name="line.322"></a>
-<span class="sourceLineNo">323</span> public List<?> getList(int index) {<a name="line.323"></a>
-<span class="sourceLineNo">324</span> return get(List.class, index);<a name="line.324"></a>
-<span class="sourceLineNo">325</span> }<a name="line.325"></a>
-<span class="sourceLineNo">326</span><a name="line.326"></a>
-<span class="sourceLineNo">327</span> /**<a name="line.327"></a>
-<span class="sourceLineNo">328</span> * Shortcut for calling <code>get(ObjectMap.<jk>class</jk>, index)</code>.<a name="line.328"></a>
-<span class="sourceLineNo">329</span> *<a name="line.329"></a>
-<span class="sourceLineNo">330</span> * @param index The index.<a name="line.330"></a>
-<span class="sourceLineNo">331</span> * @return The converted value.<a name="line.331"></a>
-<span class="sourceLineNo">332</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.332"></a>
-<span class="sourceLineNo">333</span> */<a name="line.333"></a>
-<span class="sourceLineNo">334</span> public ObjectMap getObjectMap(int index) {<a name="line.334"></a>
-<span class="sourceLineNo">335</span> return get(ObjectMap.class, index);<a name="line.335"></a>
-<span class="sourceLineNo">336</span> }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span> /**<a name="line.338"></a>
-<span class="sourceLineNo">339</span> * Shortcut for calling <code>get(ObjectList.<jk>class</jk>, index)</code>.<a name="line.339"></a>
-<span class="sourceLineNo">340</span> *<a name="line.340"></a>
-<span class="sourceLineNo">341</span> * @param index The index.<a name="line.341"></a>
-<span class="sourceLineNo">342</span> * @return The converted value.<a name="line.342"></a>
-<span class="sourceLineNo">343</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.343"></a>
-<span class="sourceLineNo">344</span> */<a name="line.344"></a>
-<span class="sourceLineNo">345</span> public ObjectList getObjectList(int index) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span> return get(ObjectList.class, index);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> }<a name="line.347"></a>
-<span class="sourceLineNo">348</span><a name="line.348"></a>
-<span class="sourceLineNo">349</span> /**<a name="line.349"></a>
-<span class="sourceLineNo">350</span> * Same as {@link #get(Class,int) get(Class,int)}, but the key is a slash-delimited<a name="line.350"></a>
-<span class="sourceLineNo">351</span> * path used to traverse entries in this POJO.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> * <p><a name="line.352"></a>
-<span class="sourceLineNo">353</span> * For example, the following code is equivalent:<a name="line.353"></a>
-<span class="sourceLineNo">354</span> * </p><a name="line.354"></a>
-<span class="sourceLineNo">355</span> * <p class='bcode'><a name="line.355"></a>
-<span class="sourceLineNo">356</span> * ObjectMap m = getObjectMap();<a name="line.356"></a>
-<span class="sourceLineNo">357</span> *<a name="line.357"></a>
-<span class="sourceLineNo">358</span> * <jc>// Long way</jc><a name="line.358"></a>
-<span class="sourceLineNo">359</span> * <jk>long</jk> l = m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).getLong(<js>"baz"</js>);<a name="line.359"></a>
-<span class="sourceLineNo">360</span> *<a name="line.360"></a>
-<span class="sourceLineNo">361</span> * <jc>// Using this method</jc><a name="line.361"></a>
-<span class="sourceLineNo">362</span> * <jk>long</jk> l = m.getAt(<jk>long</jk>.<jk>class</jk>, <js>"foo/bar/0/baz"</js>);<a name="line.362"></a>
-<span class="sourceLineNo">363</span> * </p><a name="line.363"></a>
-<span class="sourceLineNo">364</span> * <p><a name="line.364"></a>
-<span class="sourceLineNo">365</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.365"></a>
-<span class="sourceLineNo">366</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.366"></a>
-<span class="sourceLineNo">367</span> *<a name="line.367"></a>
-<span class="sourceLineNo">368</span> * @param <T> The class type.<a name="line.368"></a>
-<span class="sourceLineNo">369</span> * @param type The class type.<a name="line.369"></a>
-<span class="sourceLineNo">370</span> * @param path The path to the entry.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> * @return The value, or <jk>null</jk> if the entry doesn't exist.<a name="line.371"></a>
-<span class="sourceLineNo">372</span> */<a name="line.372"></a>
-<span class="sourceLineNo">373</span> public <T> T getAt(Class<T> type, String path) {<a name="line.373"></a>
-<span class="sourceLineNo">374</span> return getPojoRest().get(type, path);<a name="line.374"></a>
-<span class="sourceLineNo">375</span> }<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span> /**<a name="line.377"></a>
-<span class="sourceLineNo">378</span> * Same as {@link #set(int,Object) set(int,Object)}, but the key is a slash-delimited<a name="line.378"></a>
-<span class="sourceLineNo">379</span> * path used to traverse entries in this POJO.<a name="line.379"></a>
-<span class="sourceLineNo">380</span> * <p><a name="line.380"></a>
-<span class="sourceLineNo">381</span> * For example, the following code is equivalent:<a name="line.381"></a>
-<span class="sourceLineNo">382</span> * </p><a name="line.382"></a>
-<span class="sourceLineNo">383</span> * <p class='bcode'><a name="line.383"></a>
-<span class="sourceLineNo">384</span> * ObjectMap m = getObjectMap();<a name="line.384"></a>
-<span class="sourceLineNo">385</span> *<a name="line.385"></a>
-<span class="sourceLineNo">386</span> * <jc>// Long way</jc><a name="line.386"></a>
-<span class="sourceLineNo">387</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).put(<js>"baz"</js>, 123);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> *<a name="line.388"></a>
-<span class="sourceLineNo">389</span> * <jc>// Using this method</jc><a name="line.389"></a>
-<span class="sourceLineNo">390</span> * m.putAt(<js>"foo/bar/0/baz"</js>, 123);<a name="line.390"></a>
-<span class="sourceLineNo">391</span> * </p><a name="line.391"></a>
-<span class="sourceLineNo">392</span> * <p><a name="line.392"></a>
-<span class="sourceLineNo">393</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.393"></a>
-<span class="sourceLineNo">394</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.394"></a>
-<span class="sourceLineNo">395</span> *<a name="line.395"></a>
-<span class="sourceLineNo">396</span> * @param path The path to the entry.<a name="line.396"></a>
-<span class="sourceLineNo">397</span> * @param o The new value.<a name="line.397"></a>
-<span class="sourceLineNo">398</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.398"></a>
-<span class="sourceLineNo">399</span> */<a name="line.399"></a>
-<span class="sourceLineNo">400</span> public Object putAt(String path, Object o) {<a name="line.400"></a>
-<span class="sourceLineNo">401</span> return getPojoRest().put(path, o);<a name="line.401"></a>
-<span class="sourceLineNo">402</span> }<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span> /**<a name="line.404"></a>
-<span class="sourceLineNo">405</span> * Similar to {@link #putAt(String,Object) putAt(String,Object)}, but used to append<a name="line.405"></a>
-<span class="sourceLineNo">406</span> * to collections and arrays.<a name="line.406"></a>
-<span class="sourceLineNo">407</span> * <p><a name="line.407"></a>
-<span class="sourceLineNo">408</span> * For example, the following code is equivalent:<a name="line.408"></a>
-<span class="sourceLineNo">409</span> * </p><a name="line.409"></a>
-<span class="sourceLineNo">410</span> * <p class='bcode'><a name="line.410"></a>
-<span class="sourceLineNo">411</span> * ObjectMap m = getObjectMap();<a name="line.411"></a>
-<span class="sourceLineNo">412</span> *<a name="line.412"></a>
-<span class="sourceLineNo">413</span> * <jc>// Long way</jc><a name="line.413"></a>
-<span class="sourceLineNo">414</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).append(123);<a name="line.414"></a>
-<span class="sourceLineNo">415</span> *<a name="line.415"></a>
-<span class="sourceLineNo">416</span> * <jc>// Using this method</jc><a name="line.416"></a>
-<span class="sourceLineNo">417</span> * m.postAt(<js>"foo/bar"</js>, 123);<a name="line.417"></a>
-<span class="sourceLineNo">418</span> * </p><a name="line.418"></a>
-<span class="sourceLineNo">419</span> * <p><a name="line.419"></a>
-<span class="sourceLineNo">420</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.420"></a>
-<span class="sourceLineNo">421</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.421"></a>
-<span class="sourceLineNo">422</span> *<a name="line.422"></a>
-<span class="sourceLineNo">423</span> * @param path The path to the entry.<a name="line.423"></a>
-<span class="sourceLineNo">424</span> * @param o The new value.<a name="line.424"></a>
-<span class="sourceLineNo">425</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.425"></a>
-<span class="sourceLineNo">426</span> */<a name="line.426"></a>
-<span class="sourceLineNo">427</span> public Object postAt(String path, Object o) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span> return getPojoRest().post(path, o);<a name="line.428"></a>
-<span class="sourceLineNo">429</span> }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span> /**<a name="line.431"></a>
-<span class="sourceLineNo">432</span> * Similar to {@link #remove(int) remove(int)},but the key is a slash-delimited<a name="line.432"></a>
-<span class="sourceLineNo">433</span> * path used to traverse entries in this POJO.<a name="line.433"></a>
-<span class="sourceLineNo">434</span> * <p><a name="line.434"></a>
-<span class="sourceLineNo">435</span> * For example, the following code is equivalent:<a name="line.435"></a>
-<span class="sourceLineNo">436</span> * </p><a name="line.436"></a>
-<span class="sourceLineNo">437</span> * <p class='bcode'><a name="line.437"></a>
-<span class="sourceLineNo">438</span> * ObjectMap m = getObjectMap();<a name="line.438"></a>
-<span class="sourceLineNo">439</span> *<a name="line.439"></a>
-<span class="sourceLineNo">440</span> * <jc>// Long way</jc><a name="line.440"></a>
-<span class="sourceLineNo">441</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(1).remove(<js>"baz"</js>);<a name="line.441"></a>
-<span class="sourceLineNo">442</span> *<a name="line.442"></a>
-<span class="sourceLineNo">443</span> * <jc>// Using this method</jc><a name="line.443"></a>
-<span class="sourceLineNo">444</span> * m.deleteAt(<js>"foo/bar/0/baz"</js>);<a name="line.444"></a>
-<span class="sourceLineNo">445</span> * </p><a name="line.445"></a>
-<span class="sourceLineNo">446</span> * <p><a name="line.446"></a>
-<span class="sourceLineNo">447</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.447"></a>
-<span class="sourceLineNo">448</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.448"></a>
-<span class="sourceLineNo">449</span> *<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * @param path The path to the entry.<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.451"></a>
-<span class="sourceLineNo">452</span> */<a name="line.452"></a>
-<span class="sourceLineNo">453</span> public Object deleteAt(String path) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span> return getPojoRest().delete(path);<a name="line.454"></a>
-<span class="sourceLineNo">455</span> }<a name="line.455"></a>
-<span class="sourceLineNo">456</span><a name="line.456"></a>
-<span class="sourceLineNo">457</span> /**<a name="line.457"></a>
-<span class="sourceLineNo">458</span> * Creates an {@link Iterable} with elements of the specified child type.<a name="line.458"></a>
-<span class="sourceLineNo">459</span> * <p><a name="line.459"></a>
-<span class="sourceLineNo">460</span> * Attempts to convert the child objects to the correct type if they aren't already the correct type.<a name="line.460"></a>
-<span class="sourceLineNo">461</span> * <p><a name="line.461"></a>
-<span class="sourceLineNo">462</span> * The <code>next()</code> method on the returned iterator may throw a {@link InvalidDataConversionException} if<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * the next element cannot be converted to the specified type.<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * <p><a name="line.464"></a>
-<span class="sourceLineNo">465</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for a description of valid conversions.<a name="line.465"></a>
-<span class="sourceLineNo">466</span> *<a name="line.466"></a>
-<span class="sourceLineNo">467</span> * <h5 class='section'>Example:</h5><a name="line.467"></a>
-<span class="sourceLineNo">468</span> * <p class='bcode'><a name="line.468"></a>
-<span class="sourceLineNo">469</span> * <jc>// Iterate over a list of ObjectMaps.</jc><a name="line.469"></a>
-<span class="sourceLineNo">470</span> * ObjectList l = <jk>new</jk> ObjectList(<js>"[{foo:'bar'},{baz:123}]"</js>);<a name="line.470"></a>
-<span class="sourceLineNo">471</span> * for (ObjectMap m : l.elements(ObjectMap.<jk>class</jk>)) {<a name="line.471"></a>
-<span class="sourceLineNo">472</span> * <jc>// Do something with m.</jc><a name="line.472"></a>
-<span class="sourceLineNo">473</span> * }<a name="line.473"></a>
-<span class="sourceLineNo">474</span> *<a name="line.474"></a>
-<span class="sourceLineNo">475</span> * <jc>// Iterate over a list of ints.</jc><a name="line.475"></a>
-<span class="sourceLineNo">476</span> * ObjectList l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);<a name="line.476"></a>
-<span class="sourceLineNo">477</span> * for (Integer i : l.elements(Integer.<jk>class</jk>)) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span> * <jc>// Do something with i.</jc><a name="line.478"></a>
-<span class="sourceLineNo">479</span> * }<a name="line.479"></a>
-<span class="sourceLineNo">480</span> *<a name="line.480"></a>
-<span class="sourceLineNo">481</span> * <jc>// Iterate over a list of beans.</jc><a name="line.481"></a>
-<span class="sourceLineNo">482</span> * <jc>// Automatically converts to beans.</jc><a name="line.482"></a>
-<span class="sourceLineNo">483</span> * ObjectList l = <jk>new</jk> ObjectList(<js>"[{name:'John Smith',age:45}]"</js>);<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * for (Person p : l.elements(Person.<jk>class</jk>)) {<a name="line.484"></a>
-<span class="sourceLineNo">485</span> * <jc>// Do something with p.</jc><a name="line.485"></a>
-<span class="sourceLineNo">486</span> * }<a name="line.486"></a>
-<span class="sourceLineNo">487</span> * </p><a name="line.487"></a>
-<span class="sourceLineNo">488</span> *<a name="line.488"></a>
-<span class="sourceLineNo">489</span> * @param <E> The child object type.<a name="line.489"></a>
-<span class="sourceLineNo">490</span> * @param childType The child object type.<a name="line.490"></a>
-<span class="sourceLineNo">491</span> * @return A new <code>Iterable</code> object over this list.<a name="line.491"></a>
-<span class="sourceLineNo">492</span> */<a name="line.492"></a>
-<span class="sourceLineNo">493</span> public <E> Iterable<E> elements(final Class<E> childType) {<a name="line.493"></a>
-<span class="sourceLineNo">494</span> final Iterator<?> i = iterator();<a name="line.494"></a>
-<span class="sourceLineNo">495</span> return new Iterable<E>() {<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span> @Override /* Iterable */<a name="line.497"></a>
-<span class="sourceLineNo">498</span> public Iterator<E> iterator() {<a name="line.498"></a>
-<span class="sourceLineNo">499</span> return new Iterator<E>() {<a name="line.499"></a>
+<span class="sourceLineNo">142</span> try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span> if (s != null)<a name="line.143"></a>
+<span class="sourceLineNo">144</span> p.parseIntoCollection(s, this, session.object());<a name="line.144"></a>
+<span class="sourceLineNo">145</span> } catch (ParseException e) {<a name="line.145"></a>
+<span class="sourceLineNo">146</span> throw new ParseException("Invalid input for {0} parser.\n---start---\n{1}\n---end---", p.getClass().getSimpleName(), s).initCause(e);<a name="line.146"></a>
+<span class="sourceLineNo">147</span> }<a name="line.147"></a>
+<span class="sourceLineNo">148</span> }<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span> /**<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * Shortcut for <code><jk>new</jk> ObjectList(String,JsonParser.<jsf>DEFAULT</jsf>);</code><a name="line.151"></a>
+<span class="sourceLineNo">152</span> *<a name="line.152"></a>
+<span class="sourceLineNo">153</span> * @param s The string being parsed.<a name="line.153"></a>
+<span class="sourceLineNo">154</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.154"></a>
+<span class="sourceLineNo">155</span> */<a name="line.155"></a>
+<span class="sourceLineNo">156</span> public ObjectList(CharSequence s) throws ParseException {<a name="line.156"></a>
+<span class="sourceLineNo">157</span> this(s, null);<a name="line.157"></a>
+<span class="sourceLineNo">158</span> }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span> /**<a name="line.160"></a>
+<span class="sourceLineNo">161</span> * Construct a JSON array directly from a reader using the specified parser.<a name="line.161"></a>
+<span class="sourceLineNo">162</span> *<a name="line.162"></a>
+<span class="sourceLineNo">163</span> * @param r The reader to read from. Will automatically be wrapped in a {@link BufferedReader} if it isn't already a BufferedReader.<a name="line.163"></a>
+<span class="sourceLineNo">164</span> * @param p The parser to use to parse the input.<a name="line.164"></a>
+<span class="sourceLineNo">165</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.165"></a>
+<span class="sourceLineNo">166</span> * @throws IOException If a problem occurred trying to read from the reader.<a name="line.166"></a>
+<span class="sourceLineNo">167</span> */<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public ObjectList(Reader r, Parser p) throws ParseException, IOException {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession());<a name="line.169"></a>
+<span class="sourceLineNo">170</span> parseReader(r, p);<a name="line.170"></a>
+<span class="sourceLineNo">171</span> }<a name="line.171"></a>
+<span class="sourceLineNo">172</span><a name="line.172"></a>
+<span class="sourceLineNo">173</span> /**<a name="line.173"></a>
+<span class="sourceLineNo">174</span> * Shortcut for <code><jk>new</jk> ObjectList(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>.<a name="line.174"></a>
+<span class="sourceLineNo">175</span> *<a name="line.175"></a>
+<span class="sourceLineNo">176</span> * @param r The reader to read from. The reader will be wrapped in a {@link BufferedReader} if it isn't already.<a name="line.176"></a>
+<span class="sourceLineNo">177</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.177"></a>
+<span class="sourceLineNo">178</span> * @throws IOException If a problem occurred trying to read from the reader.<a name="line.178"></a>
+<span class="sourceLineNo">179</span> */<a name="line.179"></a>
+<span class="sourceLineNo">180</span> public ObjectList(Reader r) throws ParseException, IOException {<a name="line.180"></a>
+<span class="sourceLineNo">181</span> this(BeanContext.DEFAULT.createSession());<a name="line.181"></a>
+<span class="sourceLineNo">182</span> parseReader(r, JsonParser.DEFAULT);<a name="line.182"></a>
+<span class="sourceLineNo">183</span> }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span> private void parseReader(Reader r, Parser p) throws ParseException {<a name="line.185"></a>
+<span class="sourceLineNo">186</span> if (p == null)<a name="line.186"></a>
+<span class="sourceLineNo">187</span> p = JsonParser.DEFAULT;<a name="line.187"></a>
+<span class="sourceLineNo">188</span> p.parseIntoCollection(r, this, session.object());<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span> * Construct an empty JSON array. (i.e. an empty {@link LinkedList}).<a name="line.192"></a>
+<span class="sourceLineNo">193</span> */<a name="line.193"></a>
+<span class="sourceLineNo">194</span> public ObjectList() {<a name="line.194"></a>
+<span class="sourceLineNo">195</span> this(BeanContext.DEFAULT.createSession());<a name="line.195"></a>
+<span class="sourceLineNo">196</span> }<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span> /**<a name="line.198"></a>
+<span class="sourceLineNo">199</span> * Construct an empty JSON array with the specified bean context. (i.e. an empty {@link LinkedList}).<a name="line.199"></a>
+<span class="sourceLineNo">200</span> *<a name="line.200"></a>
+<span class="sourceLineNo">201</span> * @param session The bean context to associate with this object list for creating beans.<a name="line.201"></a>
+<span class="sourceLineNo">202</span> */<a name="line.202"></a>
+<span class="sourceLineNo">203</span> public ObjectList(BeanSession session) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span> super();<a name="line.204"></a>
+<span class="sourceLineNo">205</span> this.session = session;<a name="line.205"></a>
+<span class="sourceLineNo">206</span> }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span> /**<a name="line.208"></a>
+<span class="sourceLineNo">209</span> * Construct a JSON array and fill it with the specified objects.<a name="line.209"></a>
+<span class="sourceLineNo">210</span> *<a name="line.210"></a>
+<span class="sourceLineNo">211</span> * @param o A list of objects to add to this list.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> */<a name="line.212"></a>
+<span class="sourceLineNo">213</span> public ObjectList(Object... o) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span> super(Arrays.asList(o));<a name="line.214"></a>
+<span class="sourceLineNo">215</span> }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span> /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span> * Construct a JSON array and fill it with the specified collection of objects.<a name="line.218"></a>
+<span class="sourceLineNo">219</span> *<a name="line.219"></a>
+<span class="sourceLineNo">220</span> * @param c A list of objects to add to this list.<a name="line.220"></a>
+<span class="sourceLineNo">221</span> */<a name="line.221"></a>
+<span class="sourceLineNo">222</span> public ObjectList(Collection<?> c) {<a name="line.222"></a>
+<span class="sourceLineNo">223</span> super(c);<a name="line.223"></a>
+<span class="sourceLineNo">224</span> }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span> /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span> * Override the default bean session used for converting POJOs.<a name="line.227"></a>
+<span class="sourceLineNo">228</span> * <p><a name="line.228"></a>
+<span class="sourceLineNo">229</span> * Default is {@link BeanContext#DEFAULT}, which is sufficient in most cases.<a name="line.229"></a>
+<span class="sourceLineNo">230</span> * <p><a name="line.230"></a>
+<span class="sourceLineNo">231</span> * Useful if you're serializing/parsing beans with transforms defined.<a name="line.231"></a>
+<span class="sourceLineNo">232</span> *<a name="line.232"></a>
+<span class="sourceLineNo">233</span> * @param session The new bean session.<a name="line.233"></a>
+<span class="sourceLineNo">234</span> * @return This object (for method chaining).<a name="line.234"></a>
+<span class="sourceLineNo">235</span> */<a name="line.235"></a>
+<span class="sourceLineNo">236</span> public ObjectList setBeanSession(BeanSession session) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> this.session = session;<a name="line.237"></a>
+<span class="sourceLineNo">238</span> return this;<a name="line.238"></a>
+<span class="sourceLineNo">239</span> }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span> /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span> * Convenience method for adding multiple objects to this list.<a name="line.242"></a>
+<span class="sourceLineNo">243</span> * @param o The objects to add to the list.<a name="line.243"></a>
+<span class="sourceLineNo">244</span> * @return This object (for method chaining).<a name="line.244"></a>
+<span class="sourceLineNo">245</span> */<a name="line.245"></a>
+<span class="sourceLineNo">246</span> public ObjectList append(Object...o) {<a name="line.246"></a>
+<span class="sourceLineNo">247</span> for (Object o2 : o)<a name="line.247"></a>
+<span class="sourceLineNo">248</span> add(o2);<a name="line.248"></a>
+<span class="sourceLineNo">249</span> return this;<a name="line.249"></a>
+<span class="sourceLineNo">250</span> }<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span> /**<a name="line.252"></a>
+<span class="sourceLineNo">253</span> * Get the entry at the specified index, converted to the specified type (if possible).<a name="line.253"></a>
+<span class="sourceLineNo">254</span> * <p><a name="line.254"></a>
+<span class="sourceLineNo">255</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.255"></a>
+<span class="sourceLineNo">256</span> *<a name="line.256"></a>
+<span class="sourceLineNo">257</span> * @param type The type of object to convert the entry to.<a name="line.257"></a>
+<span class="sourceLineNo">258</span> * @param index The index into this list.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> * @param <T> The type of object to convert the entry to.<a name="line.259"></a>
+<span class="sourceLineNo">260</span> * @return The converted entry.<a name="line.260"></a>
+<span class="sourceLineNo">261</span> */<a name="line.261"></a>
+<span class="sourceLineNo">262</span> public <T> T get(Class<T> type, int index) {<a name="line.262"></a>
+<span class="sourceLineNo">263</span> return session.convertToType(get(index), type);<a name="line.263"></a>
+<span class="sourceLineNo">264</span> }<a name="line.264"></a>
+<span class="sourceLineNo">265</span><a name="line.265"></a>
+<span class="sourceLineNo">266</span> /**<a name="line.266"></a>
+<span class="sourceLineNo">267</span> * Shortcut for calling <code>get(String.<jk>class</jk>, index)</code>.<a name="line.267"></a>
+<span class="sourceLineNo">268</span> *<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * @param index The index.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> * @return The converted value.<a name="line.270"></a>
+<span class="sourceLineNo">271</span> */<a name="line.271"></a>
+<span class="sourceLineNo">272</span> public String getString(int index) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span> return get(String.class, index);<a name="line.273"></a>
+<span class="sourceLineNo">274</span> }<a name="line.274"></a>
+<span class="sourceLineNo">275</span><a name="line.275"></a>
+<span class="sourceLineNo">276</span> /**<a name="line.276"></a>
+<span class="sourceLineNo">277</span> * Shortcut for calling <code>get(Integer.<jk>class</jk>, index)</code>.<a name="line.277"></a>
+<span class="sourceLineNo">278</span> *<a name="line.278"></a>
+<span class="sourceLineNo">279</span> * @param index The index.<a name="line.279"></a>
+<span class="sourceLineNo">280</span> * @return The converted value.<a name="line.280"></a>
+<span class="sourceLineNo">281</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.281"></a>
+<span class="sourceLineNo">282</span> */<a name="line.282"></a>
+<span class="sourceLineNo">283</span> public Integer getInt(int index) {<a name="line.283"></a>
+<span class="sourceLineNo">284</span> return get(Integer.class, index);<a name="line.284"></a>
+<span class="sourceLineNo">285</span> }<a name="line.285"></a>
+<span class="sourceLineNo">286</span><a name="line.286"></a>
+<span class="sourceLineNo">287</span> /**<a name="line.287"></a>
+<span class="sourceLineNo">288</span> * Shortcut for calling <code>get(Boolean.<jk>class</jk>, index)</code>.<a name="line.288"></a>
+<span class="sourceLineNo">289</span> *<a name="line.289"></a>
+<span class="sourceLineNo">290</span> * @param index The index.<a name="line.290"></a>
+<span class="sourceLineNo">291</span> * @return The converted value.<a name="line.291"></a>
+<span class="sourceLineNo">292</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.292"></a>
+<span class="sourceLineNo">293</span> */<a name="line.293"></a>
+<span class="sourceLineNo">294</span> public Boolean getBoolean(int index) {<a name="line.294"></a>
+<span class="sourceLineNo">295</span> return get(Boolean.class, index);<a name="line.295"></a>
+<span class="sourceLineNo">296</span> }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span> /**<a name="line.298"></a>
+<span class="sourceLineNo">299</span> * Shortcut for calling <code>get(Long.<jk>class</jk>, index)</code>.<a name="line.299"></a>
+<span class="sourceLineNo">300</span> *<a name="line.300"></a>
+<span class="sourceLineNo">301</span> * @param index The index.<a name="line.301"></a>
+<span class="sourceLineNo">302</span> * @return The converted value.<a name="line.302"></a>
+<span class="sourceLineNo">303</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.303"></a>
+<span class="sourceLineNo">304</span> */<a name="line.304"></a>
+<span class="sourceLineNo">305</span> public Long getLong(int index) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span> return get(Long.class, index);<a name="line.306"></a>
+<span class="sourceLineNo">307</span> }<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span> /**<a name="line.309"></a>
+<span class="sourceLineNo">310</span> * Shortcut for calling <code>get(Map.<jk>class</jk>, index)</code>.<a name="line.310"></a>
+<span class="sourceLineNo">311</span> *<a name="line.311"></a>
+<span class="sourceLineNo">312</span> * @param index The index.<a name="line.312"></a>
+<span class="sourceLineNo">313</span> * @return The converted value.<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.314"></a>
+<span class="sourceLineNo">315</span> */<a name="line.315"></a>
+<span class="sourceLineNo">316</span> public Map<?,?> getMap(int index) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span> return get(Map.class, index);<a name="line.317"></a>
+<span class="sourceLineNo">318</span> }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span> /**<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * Shortcut for calling <code>get(List.<jk>class</jk>, index)</code>.<a name="line.321"></a>
+<span class="sourceLineNo">322</span> *<a name="line.322"></a>
+<span class="sourceLineNo">323</span> * @param index The index.<a name="line.323"></a>
+<span class="sourceLineNo">324</span> * @return The converted value.<a name="line.324"></a>
+<span class="sourceLineNo">325</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.325"></a>
+<span class="sourceLineNo">326</span> */<a name="line.326"></a>
+<span class="sourceLineNo">327</span> public List<?> getList(int index) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span> return get(List.class, index);<a name="line.328"></a>
+<span class="sourceLineNo">329</span> }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span> /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span> * Shortcut for calling <code>get(ObjectMap.<jk>class</jk>, index)</code>.<a name="line.332"></a>
+<span class="sourceLineNo">333</span> *<a name="line.333"></a>
+<span class="sourceLineNo">334</span> * @param index The index.<a name="line.334"></a>
+<span class="sourceLineNo">335</span> * @return The converted value.<a name="line.335"></a>
+<span class="sourceLineNo">336</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.336"></a>
+<span class="sourceLineNo">337</span> */<a name="line.337"></a>
+<span class="sourceLineNo">338</span> public ObjectMap getObjectMap(int index) {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> return get(ObjectMap.class, index);<a name="line.339"></a>
+<span class="sourceLineNo">340</span> }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span> /**<a name="line.342"></a>
+<span class="sourceLineNo">343</span> * Shortcut for calling <code>get(ObjectList.<jk>class</jk>, index)</code>.<a name="line.343"></a>
+<span class="sourceLineNo">344</span> *<a name="line.344"></a>
+<span class="sourceLineNo">345</span> * @param index The index.<a name="line.345"></a>
+<span class="sourceLineNo">346</span> * @return The converted value.<a name="line.346"></a>
+<span class="sourceLineNo">347</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.347"></a>
+<span class="sourceLineNo">348</span> */<a name="line.348"></a>
+<span class="sourceLineNo">349</span> public ObjectList getObjectList(int index) {<a name="line.349"></a>
+<span class="sourceLineNo">350</span> return get(ObjectList.class, index);<a name="line.350"></a>
+<span class="sourceLineNo">351</span> }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span> /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span> * Same as {@link #get(Class,int) get(Class,int)}, but the key is a slash-delimited<a name="line.354"></a>
+<span class="sourceLineNo">355</span> * path used to traverse entries in this POJO.<a name="line.355"></a>
+<span class="sourceLineNo">356</span> * <p><a name="line.356"></a>
+<span class="sourceLineNo">357</span> * For example, the following code is equivalent:<a name="line.357"></a>
+<span class="sourceLineNo">358</span> * </p><a name="line.358"></a>
+<span class="sourceLineNo">359</span> * <p class='bcode'><a name="line.359"></a>
+<span class="sourceLineNo">360</span> * ObjectMap m = getObjectMap();<a name="line.360"></a>
+<span class="sourceLineNo">361</span> *<a name="line.361"></a>
+<span class="sourceLineNo">362</span> * <jc>// Long way</jc><a name="line.362"></a>
+<span class="sourceLineNo">363</span> * <jk>long</jk> l = m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).getLong(<js>"baz"</js>);<a name="line.363"></a>
+<span class="sourceLineNo">364</span> *<a name="line.364"></a>
+<span class="sourceLineNo">365</span> * <jc>// Using this method</jc><a name="line.365"></a>
+<span class="sourceLineNo">366</span> * <jk>long</jk> l = m.getAt(<jk>long</jk>.<jk>class</jk>, <js>"foo/bar/0/baz"</js>);<a name="line.366"></a>
+<span class="sourceLineNo">367</span> * </p><a name="line.367"></a>
+<span class="sourceLineNo">368</span> * <p><a name="line.368"></a>
+<span class="sourceLineNo">369</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.369"></a>
+<span class="sourceLineNo">370</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.370"></a>
+<span class="sourceLineNo">371</span> *<a name="line.371"></a>
+<span class="sourceLineNo">372</span> * @param <T> The class type.<a name="line.372"></a>
+<span class="sourceLineNo">373</span> * @param type The class type.<a name="line.373"></a>
+<span class="sourceLineNo">374</span> * @param path The path to the entry.<a name="line.374"></a>
+<span class="sourceLineNo">375</span> * @return The value, or <jk>null</jk> if the entry doesn't exist.<a name="line.375"></a>
+<span class="sourceLineNo">376</span> */<a name="line.376"></a>
+<span class="sourceLineNo">377</span> public <T> T getAt(Class<T> type, String path) {<a name="line.377"></a>
+<span class="sourceLineNo">378</span> return getPojoRest().get(type, path);<a name="line.378"></a>
+<span class="sourceLineNo">379</span> }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span> /**<a name="line.381"></a>
+<span class="sourceLineNo">382</span> * Same as {@link #set(int,Object) set(int,Object)}, but the key is a slash-delimited<a name="line.382"></a>
+<span class="sourceLineNo">383</span> * path used to traverse entries in this POJO.<a name="line.383"></a>
+<span class="sourceLineNo">384</span> * <p><a name="line.384"></a>
+<span class="sourceLineNo">385</span> * For example, the following code is equivalent:<a name="line.385"></a>
+<span class="sourceLineNo">386</span> * </p><a name="line.386"></a>
+<span class="sourceLineNo">387</span> * <p class='bcode'><a name="line.387"></a>
+<span class="sourceLineNo">388</span> * ObjectMap m = getObjectMap();<a name="line.388"></a>
+<span class="sourceLineNo">389</span> *<a name="line.389"></a>
+<span class="sourceLineNo">390</span> * <jc>// Long way</jc><a name="line.390"></a>
+<span class="sourceLineNo">391</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).put(<js>"baz"</js>, 123);<a name="line.391"></a>
+<span class="sourceLineNo">392</span> *<a name="line.392"></a>
+<span class="sourceLineNo">393</span> * <jc>// Using this method</jc><a name="line.393"></a>
+<span class="sourceLineNo">394</span> * m.putAt(<js>"foo/bar/0/baz"</js>, 123);<a name="line.394"></a>
+<span class="sourceLineNo">395</span> * </p><a name="line.395"></a>
+<span class="sourceLineNo">396</span> * <p><a name="line.396"></a>
+<span class="sourceLineNo">397</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.397"></a>
+<span class="sourceLineNo">398</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.398"></a>
+<span class="sourceLineNo">399</span> *<a name="line.399"></a>
+<span class="sourceLineNo">400</span> * @param path The path to the entry.<a name="line.400"></a>
+<span class="sourceLineNo">401</span> * @param o The new value.<a name="line.401"></a>
+<span class="sourceLineNo">402</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.402"></a>
+<span class="sourceLineNo">403</span> */<a name="line.403"></a>
+<span class="sourceLineNo">404</span> public Object putAt(String path, Object o) {<a name="line.404"></a>
+<span class="sourceLineNo">405</span> return getPojoRest().put(path, o);<a name="line.405"></a>
+<span class="sourceLineNo">406</span> }<a name="line.406"></a>
+<span class="sourceLineNo">407</span><a name="line.407"></a>
+<span class="sourceLineNo">408</span> /**<a name="line.408"></a>
+<span class="sourceLineNo">409</span> * Similar to {@link #putAt(String,Object) putAt(String,Object)}, but used to append<a name="line.409"></a>
+<span class="sourceLineNo">410</span> * to collections and arrays.<a name="line.410"></a>
+<span class="sourceLineNo">411</span> * <p><a name="line.411"></a>
+<span class="sourceLineNo">412</span> * For example, the following code is equivalent:<a name="line.412"></a>
+<span class="sourceLineNo">413</span> * </p><a name="line.413"></a>
+<span class="sourceLineNo">414</span> * <p class='bcode'><a name="line.414"></a>
+<span class="sourceLineNo">415</span> * ObjectMap m = getObjectMap();<a name="line.415"></a>
+<span class="sourceLineNo">416</span> *<a name="line.416"></a>
+<span class="sourceLineNo">417</span> * <jc>// Long way</jc><a name="line.417"></a>
+<span class="sourceLineNo">418</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).append(123);<a name="line.418"></a>
+<span class="sourceLineNo">419</span> *<a name="line.419"></a>
+<span class="sourceLineNo">420</span> * <jc>// Using this method</jc><a name="line.420"></a>
+<span class="sourceLineNo">421</span> * m.postAt(<js>"foo/bar"</js>, 123);<a name="line.421"></a>
+<span class="sourceLineNo">422</span> * </p><a name="line.422"></a>
+<span class="sourceLineNo">423</span> * <p><a name="line.423"></a>
+<span class="sourceLineNo">424</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.424"></a>
+<span class="sourceLineNo">425</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.425"></a>
+<span class="sourceLineNo">426</span> *<a name="line.426"></a>
+<span class="sourceLineNo">427</span> * @param path The path to the entry.<a name="line.427"></a>
+<span class="sourceLineNo">428</span> * @param o The new value.<a name="line.428"></a>
+<span class="sourceLineNo">429</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.429"></a>
+<span class="sourceLineNo">430</span> */<a name="line.430"></a>
+<span class="sourceLineNo">431</span> public Object postAt(String path, Object o) {<a name="line.431"></a>
+<span class="sourceLineNo">432</span> return getPojoRest().post(path, o);<a name="line.432"></a>
+<span class="sourceLineNo">433</span> }<a name="line.433"></a>
+<span class="sourceLineNo">434</span><a name="line.434"></a>
+<span class="sourceLineNo">435</span> /**<a name="line.435"></a>
+<span class="sourceLineNo">436</span> * Similar to {@link #remove(int) remove(int)},but the key is a slash-delimited<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * path used to traverse entries in this POJO.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> * <p><a name="line.438"></a>
+<span class="sourceLineNo">439</span> * For example, the following code is equivalent:<a name="line.439"></a>
+<span class="sourceLineNo">440</span> * </p><a name="line.440"></a>
+<span class="sourceLineNo">441</span> * <p class='bcode'><a name="line.441"></a>
+<span class="sourceLineNo">442</span> * ObjectMap m = getObjectMap();<a name="line.442"></a>
+<span class="sourceLineNo">443</span> *<a name="line.443"></a>
+<span class="sourceLineNo">444</span> * <jc>// Long way</jc><a name="line.444"></a>
+<span class="sourceLineNo">445</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(1).remove(<js>"baz"</js>);<a name="line.445"></a>
+<span class="sourceLineNo">446</span> *<a name="line.446"></a>
+<span class="sourceLineNo">447</span> * <jc>// Using this method</jc><a name="line.447"></a>
+<span class="sourceLineNo">448</span> * m.deleteAt(<js>"foo/bar/0/baz"</js>);<a name="line.448"></a>
+<span class="sourceLineNo">449</span> * </p><a name="line.449"></a>
+<span class="sourceLineNo">450</span> * <p><a name="line.450"></a>
+<span class="sourceLineNo">451</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.451"></a>
+<span class="sourceLineNo">452</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.452"></a>
+<span class="sourceLineNo">453</span> *<a name="line.453"></a>
+<span class="sourceLineNo">454</span> * @param path The path to the entry.<a name="line.454"></a>
+<span class="sourceLineNo">455</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.455"></a>
+<span class="sourceLineNo">456</span> */<a name="line.456"></a>
+<span class="sourceLineNo">457</span> public Object deleteAt(String path) {<a name="line.457"></a>
+<span class="sourceLineNo">458</span> return getPojoRest().delete(path);<a name="line.458"></a>
+<span class="sourceLineNo">459</span> }<a name="line.459"></a>
+<span class="sourceLineNo">460</span><a name="line.460"></a>
+<span class="sourceLineNo">461</span> /**<a name="line.461"></a>
+<span class="sourceLineNo">462</span> * Creates an {@link Iterable} with elements of the specified child type.<a name="line.462"></a>
+<span class="sourceLineNo">463</span> * <p><a name="line.463"></a>
+<span class="sourceLineNo">464</span> * Attempts to convert the child objects to the correct type if they aren't already the correct type.<a name="line.464"></a>
+<span class="sourceLineNo">465</span> * <p><a name="line.465"></a>
+<span class="sourceLineNo">466</span> * The <code>next()</code> method on the returned iterator may throw a {@link InvalidDataConversionException} if<a name="line.466"></a>
+<span class="sourceLineNo">467</span> * the next element cannot be converted to the specified type.<a name="line.467"></a>
+<span class="sourceLineNo">468</span> * <p><a name="line.468"></a>
+<span class="sourceLineNo">469</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for a description of valid conversions.<a name="line.469"></a>
+<span class="sourceLineNo">470</span> *<a name="line.470"></a>
+<span class="sourceLineNo">471</span> * <h5 class='section'>Example:</h5><a name="line.471"></a>
+<span class="sourceLineNo">472</span> * <p class='bcode'><a name="line.472"></a>
+<span class="sourceLineNo">473</span> * <jc>// Iterate over a list of ObjectMaps.</jc><a name="line.473"></a>
+<span class="sourceLineNo">474</span> * ObjectList l = <jk>new</jk> ObjectList(<js>"[{foo:'bar'},{baz:123}]"</js>);<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * for (ObjectMap m : l.elements(ObjectMap.<jk>class</jk>)) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span> * <jc>// Do something with m.</jc><a name="line.476"></a>
+<span class="sourceLineNo">477</span> * }<a name="line.477"></a>
+<span class="sourceLineNo">478</span> *<a name="line.478"></a>
+<span class="sourceLineNo">479</span> * <jc>// Iterate over a list of ints.</jc><a name="line.479"></a>
+<span class="sourceLineNo">480</span> * ObjectList l = <jk>new</jk> ObjectList(<js>"[1,2,3]"</js>);<a name="line.480"></a>
+<span class="sourceLineNo">481</span> * for (Integer i : l.elements(Integer.<jk>class</jk>)) {<a name="line.481"></a>
+<span class="sourceLineNo">482</span> * <jc>// Do something with i.</jc><a name="line.482"></a>
+<span class="sourceLineNo">483</span> * }<a name="line.483"></a>
+<span class="sourceLineNo">484</span> *<a name="line.484"></a>
+<span class="sourceLineNo">485</span> * <jc>// Iterate over a list of beans.</jc><a name="line.485"></a>
+<span class="sourceLineNo">486</span> * <jc>// Automatically converts to beans.</jc><a name="line.486"></a>
+<span class="sourceLineNo">487</span> * ObjectList l = <jk>new</jk> ObjectList(<js>"[{name:'John Smith',age:45}]"</js>);<a name="line.487"></a>
+<span class="sourceLineNo">488</span> * for (Person p : l.elements(Person.<jk>class</jk>)) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> * <jc>// Do something with p.</jc><a name="line.489"></a>
+<span class="sourceLineNo">490</span> * }<a name="line.490"></a>
+<span class="sourceLineNo">491</span> * </p><a name="line.491"></a>
+<span class="sourceLineNo">492</span> *<a name="line.492"></a>
+<span class="sourceLineNo">493</span> * @param <E> The child object type.<a name="line.493"></a>
+<span class="sourceLineNo">494</span> * @param childType The child object type.<a name="line.494"></a>
+<span class="sourceLineNo">495</span> * @return A new <code>Iterable</code> object over this list.<a name="line.495"></a>
+<span class="sourceLineNo">496</span> */<a name="line.496"></a>
+<span class="sourceLineNo">497</span> public <E> Iterable<E> elements(final Class<E> childType) {<a name="line.497"></a>
+<span class="sourceLineNo">498</span> final Iterator<?> i = iterator();<a name="line.498"></a>
+<span class="sourceLineNo">499</span> return new Iterable<E>() {<a name="line.499"></a>
<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span> @Override /* Iterator */<a name="line.501"></a>
-<span class="sourceLineNo">502</span> public boolean hasNext() {<a name="line.502"></a>
-<span class="sourceLineNo">503</span> return i.hasNext();<a name="line.503"></a>
-<span class="sourceLineNo">504</span> }<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span> @Override /* Iterator */<a name="line.506"></a>
-<span class="sourceLineNo">507</span> public E next() {<a name="line.507"></a>
-<span class="sourceLineNo">508</span> return session.convertToType(i.next(), childType);<a name="line.508"></a>
-<span class="sourceLineNo">509</span> }<a name="line.509"></a>
-<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span> @Override /* Iterator */<a name="line.511"></a>
-<span class="sourceLineNo">512</span> public void remove() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span> i.remove();<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span> };<a name="line.516"></a>
-<span class="sourceLineNo">517</span> }<a name="line.517"></a>
-<span class="sourceLineNo">518</span> };<a name="line.518"></a>
-<span class="sourceLineNo">519</span> }<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span> /**<a name="line.521"></a>
-<span class="sourceLineNo">522</span> * Returns the {@link ClassMeta} of the class of the object at the specified index.<a name="line.522"></a>
-<span class="sourceLineNo">523</span> *<a name="line.523"></a>
-<span class="sourceLineNo">524</span> * @param index An index into this list, zero-based.<a name="line.524"></a>
-<span class="sourceLineNo">525</span> * @return The data type of the object at the specified index, or <jk>null</jk> if the value is null.<a name="line.525"></a>
-<span class="sourceLineNo">526</span> */<a name="line.526"></a>
-<span class="sourceLineNo">527</span> public ClassMeta<?> getClassMeta(int index) {<a name="line.527"></a>
-<span class="sourceLineNo">528</span> return session.getClassMetaForObject(get(index));<a name="line.528"></a>
-<span class="sourceLineNo">529</span> }<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span> private PojoRest getPojoRest() {<a name="line.531"></a>
-<span class="sourceLineNo">532</span> if (pojoRest == null)<a name="line.532"></a>
-<span class="sourceLineNo">533</span> pojoRest = new PojoRest(this);<a name="line.533"></a>
-<span class="sourceLineNo">534</span> return pojoRest;<a name="line.534"></a>
-<span class="sourceLineNo">535</span> }<a name="line.535"></a>
-<span class="sourceLineNo">536</span><a name="line.536"></a>
-<span class="sourceLineNo">537</span> /**<a name="line.537"></a>
-<span class="sourceLineNo">538</span> * Serialize this array to a string using the specified serializer.<a name="line.538"></a>
-<span class="sourceLineNo">539</span> *<a name="line.539"></a>
-<span class="sourceLineNo">540</span> * @param serializer The serializer to use to convert this object to a string.<a name="line.540"></a>
-<span class="sourceLineNo">541</span> * @return This object as a serialized string.<a name="line.541"></a>
-<span class="sourceLineNo">542</span> * @throws SerializeException If a problem occurred trying to convert the output.<a name="line.542"></a>
-<span class="sourceLineNo">543</span> */<a name="line.543"></a>
-<span class="sourceLineNo">544</span> public String toString(WriterSerializer serializer) throws SerializeException {<a name="line.544"></a>
-<span class="sourceLineNo">545</span> return serializer.serialize(this);<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span> /**<a name="line.548"></a>
-<span class="sourceLineNo">549</span> * Serialize this array to JSON using the {@link JsonSerializer#DEFAULT} serializer.<a name="line.549"></a>
-<span class="sourceLineNo">550</span> */<a name="line.550"></a>
-<span class="sourceLineNo">551</span> @Override /* Object */<a name="line.551"></a>
-<span class="sourceLineNo">552</span> public String toString() {<a name="line.552"></a>
-<span class="sourceLineNo">553</span> try {<a name="line.553"></a>
-<span class="sourceLineNo">554</span> return this.toString(JsonSerializer.DEFAULT_LAX);<a name="line.554"></a>
-<span class="sourceLineNo">555</span> } catch (SerializeException e) {<a name="line.555"></a>
-<span class="sourceLineNo">556</span> return e.getLocalizedMessage();<a name="line.556"></a>
-<span class="sourceLineNo">557</span> }<a name="line.557"></a>
-<span class="sourceLineNo">558</span> }<a name="line.558"></a>
-<span class="sourceLineNo">559</span><a name="line.559"></a>
-<span class="sourceLineNo">560</span> /**<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * Convenience method for serializing this ObjectList to the specified Writer using<a name="line.561"></a>
-<span class="sourceLineNo">562</span> * the JsonSerializer.DEFAULT serializer.<a name="line.562"></a>
-<span class="sourceLineNo">563</span> *<a name="line.563"></a>
-<span class="sourceLineNo">564</span> * @param w The writer to send the serialized contents of this object.<a name="line.564"></a>
-<span class="sourceLineNo">565</span> * @throws IOException If a problem occurred trying to write to the writer.<a name="line.565"></a>
-<span class="sourceLineNo">566</span> * @throws SerializeException If a problem occurred trying to convert the output.<a name="line.566"></a>
-<span class="sourceLineNo">567</span> */<a name="line.567"></a>
-<span class="sourceLineNo">568</span> public void serializeTo(Writer w) throws IOException, SerializeException {<a name="line.568"></a>
-<span class="sourceLineNo">569</span> JsonSerializer.DEFAULT.serialize(this);<a name="line.569"></a>
-<span class="sourceLineNo">570</span> }<a name="line.570"></a>
-<span class="sourceLineNo">571</span>}<a name="line.571"></a>
+<span class="sourceLineNo">501</span> @Override /* Iterable */<a name="line.501"></a>
+<span class="sourceLineNo">502</span> public Iterator<E> iterator() {<a name="line.502"></a>
+<span class="sourceLineNo">503</span> return new Iterator<E>() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span> @Override /* Iterator */<a name="line.505"></a>
+<span class="sourceLineNo">506</span> public boolean hasNext() {<a name="line.506"></a>
+<span class="sourceLineNo">507</span> return i.hasNext();<a name="line.507"></a>
+<span class="sourceLineNo">508</span> }<a name="line.508"></a>
+<span class="sourceLineNo">509</span><a name="line.509"></a>
+<span class="sourceLineNo">510</span> @Override /* Iterator */<a name="line.510"></a>
+<span class="sourceLineNo">511</span> public E next() {<a name="line.511"></a>
+<span class="sourceLineNo">512</span> return session.convertToType(i.next(), childType);<a name="line.512"></a>
+<span class="sourceLineNo">513</span> }<a name="line.513"></a>
+<span class="sourceLineNo">514</span><a name="line.514"></a>
+<span class="sourceLineNo">515</span> @Override /* Iterator */<a name="line.515"></a>
+<span class="sourceLineNo">516</span> public void remove() {<a name="line.516"></a>
+<span class="sourceLineNo">517</span> i.remove();<a name="line.517"></a>
+<span class="sourceLineNo">518</span> }<a name="line.518"></a>
+<span class="sourceLineNo">519</span><a name="line.519"></a>
+<span class="sourceLineNo">520</span> };<a name="line.520"></a>
+<span class="sourceLineNo">521</span> }<a name="line.521"></a>
+<span class="sourceLineNo">522</span> };<a name="line.522"></a>
+<span class="sourceLineNo">523</span> }<a name="line.523"></a>
+<span class="sourceLineNo">524</span><a name="line.524"></a>
+<span class="sourceLineNo">525</span> /**<a name="line.525"></a>
+<span class="sourceLineNo">526</span> * Returns the {@link ClassMeta} of the class of the object at the specified index.<a name="line.526"></a>
+<span class="sourceLineNo">527</span> *<a name="line.527"></a>
+<span class="sourceLineNo">528</span> * @param index An index into this list, zero-based.<a name="line.528"></a>
+<span class="sourceLineNo">529</span> * @return The data type of the object at the specified index, or <jk>null</jk> if the value is null.<a name="line.529"></a>
+<span class="sourceLineNo">530</span> */<a name="line.530"></a>
+<span class="sourceLineNo">531</span> public ClassMeta<?> getClassMeta(int index) {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> return session.getClassMetaForObject(get(index));<a name="line.532"></a>
+<span class="sourceLineNo">533</span> }<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span> private PojoRest getPojoRest() {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> if (pojoRest == null)<a name="line.536"></a>
+<span class="sourceLineNo">537</span> pojoRest = new PojoRest(this);<a name="line.537"></a>
+<span class="sourceLineNo">538</span> return pojoRest;<a name="line.538"></a>
+<span class="sourceLineNo">539</span> }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span> /**<a name="line.541"></a>
+<span class="sourceLineNo">542</span> * Serialize this array to a string using the specified serializer.<a name="line.542"></a>
+<span class="sourceLineNo">543</span> *<a name="line.543"></a>
+<span class="sourceLineNo">544</span> * @param serializer The serializer to use to convert this object to a string.<a name="line.544"></a>
+<span class="sourceLineNo">545</span> * @return This object as a serialized string.<a name="line.545"></a>
+<span class="sourceLineNo">546</span> * @throws SerializeException If a problem occurred trying to convert the output.<a name="line.546"></a>
+<span class="sourceLineNo">547</span> */<a name="line.547"></a>
+<span class="sourceLineNo">548</span> public String toString(WriterSerializer serializer) throws SerializeException {<a name="line.548"></a>
+<span class="sourceLineNo">549</span> return serializer.serialize(this);<a name="line.549"></a>
+<span class="sourceLineNo">550</span> }<a name="line.550"></a>
+<span class="sourceLineNo">551</span><a name="line.551"></a>
+<span class="sourceLineNo">552</span> /**<a name="line.552"></a>
+<span class="sourceLineNo">553</span> * Serialize this array to JSON using the {@link JsonSerializer#DEFAULT} serializer.<a name="line.553"></a>
+<span class="sourceLineNo">554</span> */<a name="line.554"></a>
+<span class="sourceLineNo">555</span> @Override /* Object */<a name="line.555"></a>
+<span class="sourceLineNo">556</span> public String toString() {<a name="line.556"></a>
+<span class="sourceLineNo">557</span> try {<a name="line.557"></a>
+<span class="sourceLineNo">558</span> return this.toString(JsonSerializer.DEFAULT_LAX);<a name="line.558"></a>
+<span class="sourceLineNo">559</span> } catch (SerializeException e) {<a name="line.559"></a>
+<span class="sourceLineNo">560</span> return e.getLocalizedMessage();<a name="line.560"></a>
+<span class="sourceLineNo">561</span> }<a name="line.561"></a>
+<span class="sourceLineNo">562</span> }<a name="line.562"></a>
+<span class="sourceLineNo">563</span><a name="line.563"></a>
+<span class="sourceLineNo">564</span> /**<a name="line.564"></a>
+<span class="sourceLineNo">565</span> * Convenience method for serializing this ObjectList to the specified Writer using<a name="line.565"></a>
+<span class="sourceLineNo">566</span> * the JsonSerializer.DEFAULT serializer.<a name="line.566"></a>
+<span class="sourceLineNo">567</span> *<a name="line.567"></a>
+<span class="sourceLineNo">568</span> * @param w The writer to send the serialized contents of this object.<a name="line.568"></a>
+<span class="sourceLineNo">569</span> * @throws IOException If a problem occurred trying to write to the writer.<a name="line.569"></a>
+<span class="sourceLineNo">570</span> * @throws SerializeException If a problem occurred trying to convert the output.<a name="line.570"></a>
+<span class="sourceLineNo">571</span> */<a name="line.571"></a>
+<span class="sourceLineNo">572</span> public void serializeTo(Writer w) throws IOException, SerializeException {<a name="line.572"></a>
+<span class="sourceLineNo">573</span> JsonSerializer.DEFAULT.serialize(this);<a name="line.573"></a>
+<span class="sourceLineNo">574</span> }<a name="line.574"></a>
+<span class="sourceLineNo">575</span>}<a name="line.575"></a>
[16/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/RequestFormData.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/RequestFormData.html b/content/site/apidocs/org/apache/juneau/rest/RequestFormData.html
index fafafc4..1b2b0d7 100644
--- a/content/site/apidocs/org/apache/juneau/rest/RequestFormData.html
+++ b/content/site/apidocs/org/apache/juneau/rest/RequestFormData.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -233,30 +233,56 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</td>
</tr>
<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getBoolean-java.lang.String-">getBoolean</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to a boolean.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getBoolean-java.lang.String-boolean-">getBoolean</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ boolean def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to a boolean.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getInt-java.lang.String-">getInt</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to an integer.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getInt-java.lang.String-int-">getInt</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ int def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to an integer.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-">getString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
<div class="block">Returns a form data parameter value.</div>
</td>
</tr>
-<tr id="i7" class="rowColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-java.lang.String-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</code>
-<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-"><code>getFirst(String)</code></a> except returns a default value if <jk>null</jk> or empty.</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-">getString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>getString(String)</code></a> except returns a default value if <jk>null</jk> or empty.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#put-java.lang.String-java.lang.Object-">put</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</code>
<div class="block">Sets a request form data parameter value.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestFormData.html#toString-boolean-">toString</a></span>(boolean sorted)</code>
<div class="block">Converts the form data parameters to a readable string.</div>
@@ -363,13 +389,13 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</dl>
</li>
</ul>
-<a name="getFirst-java.lang.String-">
+<a name="getString-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>getFirst</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.97">getFirst</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<h4>getString</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.97">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns a form data parameter value.
<p>
Parameter lookup is case-insensitive (consistent with WAS, but differs from Tomcat).
@@ -394,21 +420,89 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</dl>
</li>
</ul>
-<a name="getFirst-java.lang.String-java.lang.String-">
+<a name="getString-java.lang.String-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.118">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>getString(String)</code></a> except returns a default value if <jk>null</jk> or empty.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The form data parameter name.</dd>
+<dd><code>def</code> - The default value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or the default value if parameter does not exist or is <jk>null</jk> or empty.</dd>
+</dl>
+</li>
+</ul>
+<a name="getInt-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.129">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to an integer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The form data parameter name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or <code>0</code> if parameter does not exist or is <jk>null</jk> or empty.</dd>
+</dl>
+</li>
+</ul>
+<a name="getInt-java.lang.String-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.140">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ int def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to an integer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The form data parameter name.</dd>
+<dd><code>def</code> - The default value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or the default value if parameter does not exist or is <jk>null</jk> or empty.</dd>
+</dl>
+</li>
+</ul>
+<a name="getBoolean-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.151">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to a boolean.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The form data parameter name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or <jk>false</jk> if parameter does not exist or is <jk>null</jk> or empty.</dd>
+</dl>
+</li>
+</ul>
+<a name="getBoolean-java.lang.String-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>getFirst</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.118">getFirst</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
-<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-"><code>getFirst(String)</code></a> except returns a default value if <jk>null</jk> or empty.</div>
+<h4>getBoolean</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.162">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ boolean def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to a boolean.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The form data parameter name.</dd>
<dd><code>def</code> - The default value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
-<dd>The parameter value, or the default value if <jk>null</jk> or empty.</dd>
+<dd>The parameter value, or the default value if parameter does not exist or is <jk>null</jk> or empty.</dd>
</dl>
</li>
</ul>
@@ -418,7 +512,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.156">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.200">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Returns the specified form data parameter value converted to a POJO using the
@@ -467,7 +561,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.170">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.214">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
T def,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -492,7 +586,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.185">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.229">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestFormData.html#get-java.lang.String-java.lang.Class-"><code>get(String, Class)</code></a> except for use on multi-part parameters
@@ -516,7 +610,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.223">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.267">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>... args)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -564,7 +658,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.242">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.286">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>... args)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -593,7 +687,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.299">toString</a>(boolean sorted)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.343">toString</a>(boolean sorted)</pre>
<div class="block">Converts the form data parameters to a readable string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -609,7 +703,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.309">toString</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestFormData.html#line.353">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#toString--" title="class or interface in java.util">toString</a></code> in class <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true" title="class or interface in java.util">AbstractMap</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]></code></dd>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/RequestHeaders.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/RequestHeaders.html b/content/site/apidocs/org/apache/juneau/rest/RequestHeaders.html
index 872d833..4f96e6a 100644
--- a/content/site/apidocs/org/apache/juneau/rest/RequestHeaders.html
+++ b/content/site/apidocs/org/apache/juneau/rest/RequestHeaders.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -224,54 +224,54 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
</td>
</tr>
<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getBoolean-java.lang.String-">getBoolean</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to a boolean.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getBoolean-java.lang.String-boolean-">getBoolean</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ boolean def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to a boolean.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/CacheControl.html" title="class in org.apache.juneau.http">CacheControl</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getCacheControl--">getCacheControl</a></span>()</code>
<div class="block">Returns the <code>Cache-Control</code> header on the request.</div>
</td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Connection.html" title="class in org.apache.juneau.http">Connection</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getConnection--">getConnection</a></span>()</code>
<div class="block">Returns the <code>Connection</code> header on the request.</div>
</td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/ContentLength.html" title="class in org.apache.juneau.http">ContentLength</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getContentLength--">getContentLength</a></span>()</code>
<div class="block">Returns the <code>Content-Length</code> header on the request.</div>
</td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/ContentType.html" title="class in org.apache.juneau.http">ContentType</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getContentType--">getContentType</a></span>()</code>
<div class="block">Returns the <code>Content-Type</code> header on the request.</div>
</td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Date.html" title="class in org.apache.juneau.http">Date</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getDate--">getDate</a></span>()</code>
<div class="block">Returns the <code>Date</code> header on the request.</div>
</td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Expect.html" title="class in org.apache.juneau.http">Expect</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getExpect--">getExpect</a></span>()</code>
<div class="block">Returns the <code>Expect</code> header on the request.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getFirst-java.lang.String-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
-<div class="block">Returns the specified header value, or <jk>null</jk> if the header doesn't exist.</div>
-</td>
-</tr>
-<tr id="i16" class="altColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getFirst-java.lang.String-java.lang.String-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</code>
-<div class="block">Returns the specified header value, or a default value if the header doesn't exist.</div>
-</td>
-</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/From.html" title="class in org.apache.juneau.http">From</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getFrom--">getFrom</a></span>()</code>
@@ -315,102 +315,128 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
</td>
</tr>
<tr id="i24" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getInt-java.lang.String-">getInt</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to an integer.</div>
+</td>
+</tr>
+<tr id="i25" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getInt-java.lang.String-int-">getInt</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ int def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to an integer.</div>
+</td>
+</tr>
+<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/MaxForwards.html" title="class in org.apache.juneau.http">MaxForwards</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getMaxForwards--">getMaxForwards</a></span>()</code>
<div class="block">Returns the <code>Max-Forwards</code> header on the request.</div>
</td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Pragma.html" title="class in org.apache.juneau.http">Pragma</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getPragma--">getPragma</a></span>()</code>
<div class="block">Returns the <code>Pragma</code> header on the request.</div>
</td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/ProxyAuthorization.html" title="class in org.apache.juneau.http">ProxyAuthorization</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getProxyAuthorization--">getProxyAuthorization</a></span>()</code>
<div class="block">Returns the <code>Proxy-Authorization</code> header on the request.</div>
</td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http">Range</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getRange--">getRange</a></span>()</code>
<div class="block">Returns the <code>Range</code> header on the request.</div>
</td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Referer.html" title="class in org.apache.juneau.http">Referer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getReferer--">getReferer</a></span>()</code>
<div class="block">Returns the <code>Referer</code> header on the request.</div>
</td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i31" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-">getString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Returns the specified header value, or <jk>null</jk> if the header doesn't exist.</div>
+</td>
+</tr>
+<tr id="i32" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-">getString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</code>
+<div class="block">Returns the specified header value, or a default value if the header doesn't exist.</div>
+</td>
+</tr>
+<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/TE.html" title="class in org.apache.juneau.http">TE</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getTE--">getTE</a></span>()</code>
<div class="block">Returns the <code>TE</code> header on the request.</div>
</td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getTimeZone--">getTimeZone</a></span>()</code>
<div class="block">Returns the <code>Time-Zone</code> header value on the request if there is one.</div>
</td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Upgrade.html" title="class in org.apache.juneau.http">Upgrade</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getUpgrade--">getUpgrade</a></span>()</code>
<div class="block">Returns the <code>Upgrade</code> header on the request.</div>
</td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/UserAgent.html" title="class in org.apache.juneau.http">UserAgent</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getUserAgent--">getUserAgent</a></span>()</code>
<div class="block">Returns the <code>User-Agent</code> header on the request.</div>
</td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i37" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Via.html" title="class in org.apache.juneau.http">Via</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getVia--">getVia</a></span>()</code>
<div class="block">Returns the <code>Via</code> header on the request.</div>
</td>
</tr>
-<tr id="i34" class="altColor">
+<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/http/Warning.html" title="class in org.apache.juneau.http">Warning</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getWarning--">getWarning</a></span>()</code>
<div class="block">Returns the <code>Warning</code> header on the request.</div>
</td>
</tr>
-<tr id="i35" class="rowColor">
+<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#put-java.lang.String-java.util.Enumeration-">put</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Enumeration.html?is-external=true" title="class or interface in java.util">Enumeration</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> values)</code>
<div class="block">Adds a set of header values to this object.</div>
</td>
</tr>
-<tr id="i36" class="altColor">
+<tr id="i40" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#put-java.lang.String-java.lang.Object-">put</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</code>
<div class="block">Sets a request header value.</div>
</td>
</tr>
-<tr id="i37" class="rowColor">
+<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#subset-java.lang.String...-">subset</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... headers)</code>
<div class="block">Returns a copy of this object, but only with the specified header names copied.</div>
</td>
</tr>
-<tr id="i38" class="altColor">
+<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#subset-java.lang.String-">subset</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> headers)</code>
<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#subset-java.lang.String...-"><code>subset(String...)</code></a>, but allows you to specify header names as a comma-delimited list.</div>
</td>
</tr>
-<tr id="i39" class="rowColor">
+<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i40" class="altColor">
+<tr id="i44" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestHeaders.html#toString-boolean-">toString</a></span>(boolean sorted)</code>
<div class="block">Converts the headers to a readable string.</div>
@@ -495,13 +521,13 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
</dl>
</li>
</ul>
-<a name="getFirst-java.lang.String-">
+<a name="getString-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>getFirst</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.107">getFirst</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<h4>getString</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.107">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns the specified header value, or <jk>null</jk> if the header doesn't exist.
<p>
If <code>allowHeaderParams</code> init parameter is <jk>true</jk>, then first looks for <code>&HeaderName=x</code> in the URL query string.
@@ -514,14 +540,14 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
</dl>
</li>
</ul>
-<a name="getFirst-java.lang.String-java.lang.String-">
+<a name="getString-java.lang.String-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>getFirst</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.127">getFirst</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
+<h4>getString</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.127">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
<div class="block">Returns the specified header value, or a default value if the header doesn't exist.
<p>
If <code>allowHeaderParams</code> init parameter is <jk>true</jk>, then first looks for <code>&HeaderName=x</code> in the URL query string.</div>
@@ -534,13 +560,81 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
</dl>
</li>
</ul>
+<a name="getInt-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.138">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to an integer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The HTTP header name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The header value, or the default value if the header isn't present.</dd>
+</dl>
+</li>
+</ul>
+<a name="getInt-java.lang.String-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.149">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ int def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to an integer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The HTTP header name.</dd>
+<dd><code>def</code> - The default value to return if the header value isn't found.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The header value, or the default value if the header isn't present.</dd>
+</dl>
+</li>
+</ul>
+<a name="getBoolean-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.160">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to a boolean.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The HTTP header name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The header value, or the default value if the header isn't present.</dd>
+</dl>
+</li>
+</ul>
+<a name="getBoolean-java.lang.String-boolean-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.171">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ boolean def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to a boolean.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The HTTP header name.</dd>
+<dd><code>def</code> - The default value to return if the header value isn't found.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The header value, or the default value if the header isn't present.</dd>
+</dl>
+</li>
+</ul>
<a name="put-java.lang.String-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
-<pre>public void <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.138">put</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public void <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.182">put</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</pre>
<div class="block">Sets a request header value.</div>
<dl>
@@ -556,7 +650,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.162">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.206">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)</pre>
<div class="block">Returns the specified header value converted to a POJO.
<p>
@@ -590,7 +684,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.176">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.220">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
T def,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)</pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#get-java.lang.String-java.lang.Class-"><code>get(String, Class)</code></a> but returns a default value if not found.</div>
@@ -612,7 +706,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.206">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.250">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>... args)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -649,7 +743,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>subset</h4>
-<pre>public <a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.216">subset</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... headers)</pre>
+<pre>public <a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.260">subset</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... headers)</pre>
<div class="block">Returns a copy of this object, but only with the specified header names copied.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -665,7 +759,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>subset</h4>
-<pre>public <a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.229">subset</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> headers)</pre>
+<pre>public <a href="../../../../org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.273">subset</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> headers)</pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#subset-java.lang.String...-"><code>subset(String...)</code></a>, but allows you to specify header names as a comma-delimited list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -681,7 +775,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getAccept</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Accept.html" title="class in org.apache.juneau.http">Accept</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.246">getAccept</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Accept.html" title="class in org.apache.juneau.http">Accept</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.290">getAccept</a>()</pre>
<div class="block">Returns the <code>Accept</code> header on the request.
<p>
Content-Types that are acceptable for the response.
@@ -702,7 +796,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getAcceptCharset</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/AcceptCharset.html" title="class in org.apache.juneau.http">AcceptCharset</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.262">getAcceptCharset</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/AcceptCharset.html" title="class in org.apache.juneau.http">AcceptCharset</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.306">getAcceptCharset</a>()</pre>
<div class="block">Returns the <code>Accept-Charset</code> header on the request.
<p>
Character sets that are acceptable.
@@ -723,7 +817,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getAcceptEncoding</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/AcceptEncoding.html" title="class in org.apache.juneau.http">AcceptEncoding</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.278">getAcceptEncoding</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/AcceptEncoding.html" title="class in org.apache.juneau.http">AcceptEncoding</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.322">getAcceptEncoding</a>()</pre>
<div class="block">Returns the <code>Accept-Encoding</code> header on the request.
<p>
List of acceptable encodings.
@@ -744,7 +838,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getAcceptLanguage</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/AcceptLanguage.html" title="class in org.apache.juneau.http">AcceptLanguage</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.294">getAcceptLanguage</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/AcceptLanguage.html" title="class in org.apache.juneau.http">AcceptLanguage</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.338">getAcceptLanguage</a>()</pre>
<div class="block">Returns the <code>Accept-Language</code> header on the request.
<p>
List of acceptable human languages for response.
@@ -765,7 +859,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getAuthorization</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Authorization.html" title="class in org.apache.juneau.http">Authorization</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.310">getAuthorization</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Authorization.html" title="class in org.apache.juneau.http">Authorization</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.354">getAuthorization</a>()</pre>
<div class="block">Returns the <code>Authorization</code> header on the request.
<p>
Authentication credentials for HTTP authentication.
@@ -786,7 +880,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getCacheControl</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/CacheControl.html" title="class in org.apache.juneau.http">CacheControl</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.326">getCacheControl</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/CacheControl.html" title="class in org.apache.juneau.http">CacheControl</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.370">getCacheControl</a>()</pre>
<div class="block">Returns the <code>Cache-Control</code> header on the request.
<p>
Used to specify directives that must be obeyed by all caching mechanisms along the request-response chain.
@@ -807,7 +901,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getConnection</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Connection.html" title="class in org.apache.juneau.http">Connection</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.343">getConnection</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Connection.html" title="class in org.apache.juneau.http">Connection</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.387">getConnection</a>()</pre>
<div class="block">Returns the <code>Connection</code> header on the request.
<p>
Control options for the current connection and list of hop-by-hop request fields.
@@ -829,7 +923,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getContentLength</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/ContentLength.html" title="class in org.apache.juneau.http">ContentLength</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.359">getContentLength</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/ContentLength.html" title="class in org.apache.juneau.http">ContentLength</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.403">getContentLength</a>()</pre>
<div class="block">Returns the <code>Content-Length</code> header on the request.
<p>
The length of the request body in octets (8-bit bytes).
@@ -850,7 +944,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getContentType</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/ContentType.html" title="class in org.apache.juneau.http">ContentType</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.375">getContentType</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/ContentType.html" title="class in org.apache.juneau.http">ContentType</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.419">getContentType</a>()</pre>
<div class="block">Returns the <code>Content-Type</code> header on the request.
<p>
The MIME type of the body of the request (used with POST and PUT requests).
@@ -871,7 +965,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getDate</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Date.html" title="class in org.apache.juneau.http">Date</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.391">getDate</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Date.html" title="class in org.apache.juneau.http">Date</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.435">getDate</a>()</pre>
<div class="block">Returns the <code>Date</code> header on the request.
<p>
The date and time that the message was originated (in "HTTP-date" format as defined by RFC 7231 Date/Time Formats).
@@ -892,7 +986,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getExpect</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Expect.html" title="class in org.apache.juneau.http">Expect</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.407">getExpect</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Expect.html" title="class in org.apache.juneau.http">Expect</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.451">getExpect</a>()</pre>
<div class="block">Returns the <code>Expect</code> header on the request.
<p>
Indicates that particular server behaviors are required by the client.
@@ -913,7 +1007,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getFrom</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/From.html" title="class in org.apache.juneau.http">From</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.423">getFrom</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/From.html" title="class in org.apache.juneau.http">From</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.467">getFrom</a>()</pre>
<div class="block">Returns the <code>From</code> header on the request.
<p>
The email address of the user making the request.
@@ -934,7 +1028,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getHost</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Host.html" title="class in org.apache.juneau.http">Host</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.441">getHost</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Host.html" title="class in org.apache.juneau.http">Host</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.485">getHost</a>()</pre>
<div class="block">Returns the <code>Host</code> header on the request.
<p>
The domain name of the server (for virtual hosting), and the TCP port number on which the server is listening.
@@ -957,7 +1051,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getIfMatch</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/IfMatch.html" title="class in org.apache.juneau.http">IfMatch</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.458">getIfMatch</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/IfMatch.html" title="class in org.apache.juneau.http">IfMatch</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.502">getIfMatch</a>()</pre>
<div class="block">Returns the <code>If-Match</code> header on the request.
<p>
Only perform the action if the client supplied entity matches the same entity on the server.
@@ -979,7 +1073,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getIfModifiedSince</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/IfModifiedSince.html" title="class in org.apache.juneau.http">IfModifiedSince</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.474">getIfModifiedSince</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/IfModifiedSince.html" title="class in org.apache.juneau.http">IfModifiedSince</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.518">getIfModifiedSince</a>()</pre>
<div class="block">Returns the <code>If-Modified-Since</code> header on the request.
<p>
Allows a 304 Not Modified to be returned if content is unchanged.
@@ -1000,7 +1094,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getIfNoneMatch</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/IfNoneMatch.html" title="class in org.apache.juneau.http">IfNoneMatch</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.490">getIfNoneMatch</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/IfNoneMatch.html" title="class in org.apache.juneau.http">IfNoneMatch</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.534">getIfNoneMatch</a>()</pre>
<div class="block">Returns the <code>If-None-Match</code> header on the request.
<p>
Allows a 304 Not Modified to be returned if content is unchanged, see HTTP ETag.
@@ -1021,7 +1115,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getIfRange</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/IfRange.html" title="class in org.apache.juneau.http">IfRange</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.506">getIfRange</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/IfRange.html" title="class in org.apache.juneau.http">IfRange</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.550">getIfRange</a>()</pre>
<div class="block">Returns the <code>If-Range</code> header on the request.
<p>
If the entity is unchanged, send me the part(s) that I am missing; otherwise, send me the entire new entity.
@@ -1042,7 +1136,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getIfUnmodifiedSince</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/IfUnmodifiedSince.html" title="class in org.apache.juneau.http">IfUnmodifiedSince</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.522">getIfUnmodifiedSince</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/IfUnmodifiedSince.html" title="class in org.apache.juneau.http">IfUnmodifiedSince</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.566">getIfUnmodifiedSince</a>()</pre>
<div class="block">Returns the <code>If-Unmodified-Since</code> header on the request.
<p>
Only send the response if the entity has not been modified since a specific time.
@@ -1063,7 +1157,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getMaxForwards</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/MaxForwards.html" title="class in org.apache.juneau.http">MaxForwards</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.538">getMaxForwards</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/MaxForwards.html" title="class in org.apache.juneau.http">MaxForwards</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.582">getMaxForwards</a>()</pre>
<div class="block">Returns the <code>Max-Forwards</code> header on the request.
<p>
Limit the number of times the message can be forwarded through proxies or gateways.
@@ -1084,7 +1178,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getPragma</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Pragma.html" title="class in org.apache.juneau.http">Pragma</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.554">getPragma</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Pragma.html" title="class in org.apache.juneau.http">Pragma</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.598">getPragma</a>()</pre>
<div class="block">Returns the <code>Pragma</code> header on the request.
<p>
Implementation-specific fields that may have various effects anywhere along the request-response chain.
@@ -1105,7 +1199,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getProxyAuthorization</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/ProxyAuthorization.html" title="class in org.apache.juneau.http">ProxyAuthorization</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.570">getProxyAuthorization</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/ProxyAuthorization.html" title="class in org.apache.juneau.http">ProxyAuthorization</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.614">getProxyAuthorization</a>()</pre>
<div class="block">Returns the <code>Proxy-Authorization</code> header on the request.
<p>
Authorization credentials for connecting to a proxy.
@@ -1126,7 +1220,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getRange</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http">Range</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.586">getRange</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http">Range</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.630">getRange</a>()</pre>
<div class="block">Returns the <code>Range</code> header on the request.
<p>
Request only part of an entity. Bytes are numbered from 0.
@@ -1147,7 +1241,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getReferer</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Referer.html" title="class in org.apache.juneau.http">Referer</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.602">getReferer</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Referer.html" title="class in org.apache.juneau.http">Referer</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.646">getReferer</a>()</pre>
<div class="block">Returns the <code>Referer</code> header on the request.
<p>
This is the address of the previous web page from which a link to the currently requested page was followed.
@@ -1168,7 +1262,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getTE</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/TE.html" title="class in org.apache.juneau.http">TE</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.620">getTE</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/TE.html" title="class in org.apache.juneau.http">TE</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.664">getTE</a>()</pre>
<div class="block">Returns the <code>TE</code> header on the request.
<p>
The transfer encodings the user agent is willing to accept: the same values as for the response header field
@@ -1191,7 +1285,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getTimeZone</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.631">getTimeZone</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html?is-external=true" title="class or interface in java.util">TimeZone</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.675">getTimeZone</a>()</pre>
<div class="block">Returns the <code>Time-Zone</code> header value on the request if there is one.
<p>
Example: <js>"GMT"</js>.</div>
@@ -1207,7 +1301,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getUserAgent</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/UserAgent.html" title="class in org.apache.juneau.http">UserAgent</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.650">getUserAgent</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/UserAgent.html" title="class in org.apache.juneau.http">UserAgent</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.694">getUserAgent</a>()</pre>
<div class="block">Returns the <code>User-Agent</code> header on the request.
<p>
The user agent string of the user agent.
@@ -1228,7 +1322,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getUpgrade</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Upgrade.html" title="class in org.apache.juneau.http">Upgrade</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.666">getUpgrade</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Upgrade.html" title="class in org.apache.juneau.http">Upgrade</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.710">getUpgrade</a>()</pre>
<div class="block">Returns the <code>Upgrade</code> header on the request.
<p>
Ask the server to upgrade to another protocol.
@@ -1249,7 +1343,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getVia</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Via.html" title="class in org.apache.juneau.http">Via</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.682">getVia</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Via.html" title="class in org.apache.juneau.http">Via</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.726">getVia</a>()</pre>
<div class="block">Returns the <code>Via</code> header on the request.
<p>
Informs the server of proxies through which the request was sent.
@@ -1270,7 +1364,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>getWarning</h4>
-<pre>public <a href="../../../../org/apache/juneau/http/Warning.html" title="class in org.apache.juneau.http">Warning</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.698">getWarning</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/http/Warning.html" title="class in org.apache.juneau.http">Warning</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.742">getWarning</a>()</pre>
<div class="block">Returns the <code>Warning</code> header on the request.
<p>
A general warning about possible problems with the entity body.
@@ -1291,7 +1385,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.708">toString</a>(boolean sorted)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.752">toString</a>(boolean sorted)</pre>
<div class="block">Converts the headers to a readable string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1307,7 +1401,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.718">toString</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestHeaders.html#line.762">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#toString--" title="class or interface in java.util">toString</a></code> in class <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true" title="class or interface in java.util">AbstractMap</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]></code></dd>
[18/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerContext.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerContext.html b/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerContext.html
index 8fedb60..52485c5 100644
--- a/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerContext.html
+++ b/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerContext.html
@@ -598,7 +598,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_links</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.281">HTMLDOC_links</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.283">HTMLDOC_links</a></pre>
<div class="block"><b>Configuration property:</b> Page links.
<p>
<ul>
@@ -645,7 +645,9 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
)
)
<jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {
- </p></div>
+ </p>
+ <p>
+ Values that start with <js>'<'</js> are assumed to be HTML and rendered as-is.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.juneau.html.HtmlDocSerializerContext.HTMLDOC_links">Constant Field Values</a></dd>
@@ -658,7 +660,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_links_put</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.286">HTMLDOC_links_put</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.288">HTMLDOC_links_put</a></pre>
<div class="block"><b>Configuration property:</b> Add to the <a href="../../../../org/apache/juneau/html/HtmlDocSerializerContext.html#HTMLDOC_links"><code>HTMLDOC_links</code></a> property.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -672,7 +674,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_nav</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.315">HTMLDOC_nav</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.317">HTMLDOC_nav</a></pre>
<div class="block"><b>Configuration property:</b> Nav section contents.
<p>
<ul>
@@ -710,7 +712,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_aside</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.345">HTMLDOC_aside</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.347">HTMLDOC_aside</a></pre>
<div class="block"><b>Configuration property:</b> Aside section contents.
<p>
<ul>
@@ -749,7 +751,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_footer</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.373">HTMLDOC_footer</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.375">HTMLDOC_footer</a></pre>
<div class="block"><b>Configuration property:</b> Footer section contents.
<p>
<ul>
@@ -786,7 +788,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_noResultsMessage</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.399">HTMLDOC_noResultsMessage</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.401">HTMLDOC_noResultsMessage</a></pre>
<div class="block"><b>Configuration property:</b> No-results message.
<p>
<ul>
@@ -821,7 +823,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_nowrap</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.413">HTMLDOC_nowrap</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.415">HTMLDOC_nowrap</a></pre>
<div class="block"><b>Configuration property:</b> Prevent word wrap on page.
<p>
<ul>
@@ -844,7 +846,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_cssUrl</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.432">HTMLDOC_cssUrl</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.434">HTMLDOC_cssUrl</a></pre>
<div class="block"><b>Configuration property:</b> Stylesheet URL.
<p>
<ul>
@@ -872,7 +874,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_css</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.464">HTMLDOC_css</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.466">HTMLDOC_css</a></pre>
<div class="block"><b>Configuration property:</b> CSS code.
<p>
<ul>
@@ -913,7 +915,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockList">
<li class="blockList">
<h4>HTMLDOC_css_add</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.469">HTMLDOC_css_add</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.471">HTMLDOC_css_add</a></pre>
<div class="block"><b>Configuration property:</b> Add to the <a href="../../../../org/apache/juneau/html/HtmlDocSerializerContext.html#HTMLDOC_css"><code>HTMLDOC_css</code></a> property.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
@@ -927,7 +929,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockListLast">
<li class="blockList">
<h4>HTMLDOC_template</h4>
-<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.495">HTMLDOC_template</a></pre>
+<pre>public static final <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.497">HTMLDOC_template</a></pre>
<div class="block"><b>Configuration property:</b> HTML document template.
<p>
<ul>
@@ -970,7 +972,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockListLast">
<li class="blockList">
<h4>HtmlDocSerializerContext</h4>
-<pre>public <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.511">HtmlDocSerializerContext</a>(<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a> ps)</pre>
+<pre>public <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.513">HtmlDocSerializerContext</a>(<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a> ps)</pre>
<div class="block">Constructor.
<p>
Typically only called from <a href="../../../../org/apache/juneau/PropertyStore.html#getContext-java.lang.Class-"><code>PropertyStore.getContext(Class)</code></a>.</div>
@@ -994,7 +996,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerContext.html"
<ul class="blockListLast">
<li class="blockList">
<h4>asMap</h4>
-<pre>public <a href="../../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.529">asMap</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerContext.html#line.531">asMap</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../org/apache/juneau/Context.html#asMap--">Context</a></code></span></div>
<div class="block">Returns the properties defined on this bean context as a simple map for debugging purposes.</div>
<dl>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerSession.html b/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerSession.html
index fffc41f..0071ee0 100644
--- a/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerSession.html
+++ b/content/site/apidocs/org/apache/juneau/html/HtmlDocSerializerSession.html
@@ -244,7 +244,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerSession.html"
</td>
</tr>
<tr id="i7" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html#getLinks--">getLinks</a></span>()</code>
<div class="block">Returns the <a href="../../../../org/apache/juneau/html/HtmlDocSerializerContext.html#HTMLDOC_links"><code>HtmlDocSerializerContext.HTMLDOC_links</code></a> setting value in this context.</div>
</td>
@@ -493,7 +493,7 @@ extends <a href="../../../../org/apache/juneau/html/HtmlSerializerSession.html"
<ul class="blockList">
<li class="blockList">
<h4>getLinks</h4>
-<pre>public final <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerSession.html#line.161">getLinks</a>()</pre>
+<pre>public final <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> <a href="../../../../src-html/org/apache/juneau/html/HtmlDocSerializerSession.html#line.161">getLinks</a>()</pre>
<div class="block">Returns the <a href="../../../../org/apache/juneau/html/HtmlDocSerializerContext.html#HTMLDOC_links"><code>HtmlDocSerializerContext.HTMLDOC_links</code></a> setting value in this context.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/html/HtmlDocTemplateBasic.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/html/HtmlDocTemplateBasic.html b/content/site/apidocs/org/apache/juneau/html/HtmlDocTemplateBasic.html
index 1a12b99..c8c9828 100644
--- a/content/site/apidocs/org/apache/juneau/html/HtmlDocTemplateBasic.html
+++ b/content/site/apidocs/org/apache/juneau/html/HtmlDocTemplateBasic.html
@@ -430,7 +430,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>aside</h4>
-<pre>public void <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.129">aside</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session,
+<pre>public void <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.133">aside</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session,
<a href="../../../../org/apache/juneau/html/HtmlWriter.html" title="class in org.apache.juneau.html">HtmlWriter</a> w,
<a href="../../../../org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html">HtmlDocSerializer</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)
@@ -456,7 +456,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>article</h4>
-<pre>public void <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.136">article</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session,
+<pre>public void <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.140">article</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session,
<a href="../../../../org/apache/juneau/html/HtmlWriter.html" title="class in org.apache.juneau.html">HtmlWriter</a> w,
<a href="../../../../org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html">HtmlDocSerializer</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)
@@ -482,7 +482,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>footer</h4>
-<pre>public void <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.157">footer</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session,
+<pre>public void <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.161">footer</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session,
<a href="../../../../org/apache/juneau/html/HtmlWriter.html" title="class in org.apache.juneau.html">HtmlWriter</a> w,
<a href="../../../../org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html">HtmlDocSerializer</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)
@@ -508,7 +508,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>hasCss</h4>
-<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.164">hasCss</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.168">hasCss</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html#hasCss-org.apache.juneau.html.HtmlDocSerializerSession-">HtmlDocTemplate</a></code></span></div>
<div class="block">Returns <jk>true</jk> if this page should render a <code><xt><head></xt>/<xt><style</xt> <xa>type</xa>=<xs>"text/css"</xs><xt>></xt></code> element.</div>
<dl>
@@ -527,7 +527,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>hasHeader</h4>
-<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.169">hasHeader</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.173">hasHeader</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html#hasHeader-org.apache.juneau.html.HtmlDocSerializerSession-">HtmlDocTemplate</a></code></span></div>
<div class="block">Returns <jk>true</jk> if this page should render a <code><xt><body></xt>/<xt><header></xt></code> element.</div>
<dl>
@@ -546,7 +546,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>hasNav</h4>
-<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.174">hasNav</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.178">hasNav</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html#hasNav-org.apache.juneau.html.HtmlDocSerializerSession-">HtmlDocTemplate</a></code></span></div>
<div class="block">Returns <jk>true</jk> if this page should render a <code><xt><body></xt>/<xt><nav></xt></code> element.</div>
<dl>
@@ -565,7 +565,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockList">
<li class="blockList">
<h4>hasAside</h4>
-<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.179">hasAside</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.183">hasAside</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html#hasAside-org.apache.juneau.html.HtmlDocSerializerSession-">HtmlDocTemplate</a></code></span></div>
<div class="block">Returns <jk>true</jk> if this page should render a <code><xt><body></xt>/<xt><aside></xt></code> element.</div>
<dl>
@@ -584,7 +584,7 @@ implements <a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html" tit
<ul class="blockListLast">
<li class="blockList">
<h4>hasFooter</h4>
-<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.184">hasFooter</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html#line.188">hasFooter</a>(<a href="../../../../org/apache/juneau/html/HtmlDocSerializerSession.html" title="class in org.apache.juneau.html">HtmlDocSerializerSession</a> session)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../org/apache/juneau/html/HtmlDocTemplate.html#hasFooter-org.apache.juneau.html.HtmlDocSerializerSession-">HtmlDocTemplate</a></code></span></div>
<div class="block">Returns <jk>true</jk> if this page should render a <code><xt><body></xt>/<xt><footer></xt></code> element.</div>
<dl>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html b/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
index 7ca75d7..ad49841 100644
--- a/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
+++ b/content/site/apidocs/org/apache/juneau/internal/DelegateBeanMap.html
@@ -267,7 +267,7 @@ extends <a href="../../../../org/apache/juneau/BeanMap.html" title="class in org
<!-- -->
</a>
<h3>Methods inherited from class org.apache.juneau.<a href="../../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a></h3>
-<code><a href="../../../../org/apache/juneau/BeanMap.html#add-java.lang.String-java.lang.Object-">add</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getBean--">getBean</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getBean-boolean-">getBean</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getBeanSession--">getBeanSession</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getClassMeta--">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getProperty-java.lang.String-">getProperty</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getPropertyMeta-java.lang.String-">getPropertyMeta</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getValues-boolean-org.apache.juneau.BeanPropertyValue...-">getValues</a>, <a href="../../../../org/apache/juneau/BeanMap.html#load-java.util.Map-">load</a>, <a href="../../../../org/apache/juneau/BeanMap.html#load-java.io.Reader-org.apache.juneau.parser.ReaderParser-">load</a>, <a href="../../.
./../org/apache/juneau/BeanMap.html#load-java.lang.String-">load</a>, <a href="../../../../org/apache/juneau/BeanMap.html#resolveVars-java.lang.String-">resolveVars</a></code></li>
+<code><a href="../../../../org/apache/juneau/BeanMap.html#add-java.lang.String-java.lang.Object-">add</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getBean--">getBean</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getBean-boolean-">getBean</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getBeanSession--">getBeanSession</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getClassMeta--">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getProperty-java.lang.String-">getProperty</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getPropertyMeta-java.lang.String-">getPropertyMeta</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-">getRaw</a>, <a href="../../../../org/apache/juneau/BeanMap.html#getValues-boolean-org.apache.juneau.BeanPropertyValue...-">getValues</a>, <a href="../../../../org/apache/juneau/BeanMap.html#load-java.util.Map-">load</a>, <a href="../../../../org/apache/juneau/BeanMap.h
tml#load-java.io.Reader-org.apache.juneau.parser.ReaderParser-">load</a>, <a href="../../../../org/apache/juneau/BeanMap.html#load-java.lang.String-">load</a>, <a href="../../../../org/apache/juneau/BeanMap.html#resolveVars-java.lang.String-">resolveVars</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.AbstractMap">
[15/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/RequestQuery.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/RequestQuery.html b/content/site/apidocs/org/apache/juneau/rest/RequestQuery.html
index 8de564f..72f1080 100644
--- a/content/site/apidocs/org/apache/juneau/rest/RequestQuery.html
+++ b/content/site/apidocs/org/apache/juneau/rest/RequestQuery.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -127,7 +127,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public final class <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.32">RequestQuery</a>
+<pre>public final class <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.33">RequestQuery</a>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html?is-external=true" title="class or interface in java.util">LinkedHashMap</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]></pre>
<div class="block">Represents the query parameters in an HTTP request.</div>
<dl>
@@ -246,30 +246,68 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</td>
</tr>
<tr id="i8" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getBoolean-java.lang.String-">getBoolean</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to a boolean.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getBoolean-java.lang.String-boolean-">getBoolean</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ boolean def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to a boolean.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getInt-java.lang.String-">getInt</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to an integer.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getInt-java.lang.String-int-">getInt</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ int def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to an integer.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getSearchArgs--">getSearchArgs</a></span>()</code>
+<div class="block">Locates the special search query arguments in the query and returns them as a <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-">getString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
<div class="block">Returns a query parameter value.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-java.lang.String-">getFirst</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</code>
-<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-"><code>getFirst(String)</code></a> but returns the specified default value if the query parameter was not specified.</div>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-">getString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>getString(String)</code></a> but returns the specified default value if the query parameter was not specified.</div>
</td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#hasAny-java.lang.String...-">hasAny</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... paramNames)</code>
+<div class="block">Returns <jk>true</jk> if the query parameters contains any of the specified names.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#put-java.lang.String-java.lang.Object-">put</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</code>
<div class="block">Sets a request query parameter value.</div>
</td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#toString--">toString</a></span>()</code> </td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RequestQuery.html#toString-boolean-">toString</a></span>(boolean sorted)</code>
<div class="block">Converts the query parameters to a readable string.</div>
@@ -331,7 +369,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockListLast">
<li class="blockList">
<h4>RequestQuery</h4>
-<pre>public <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.32">RequestQuery</a>()</pre>
+<pre>public <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.33">RequestQuery</a>()</pre>
</li>
</ul>
</li>
@@ -348,7 +386,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>addDefault</h4>
-<pre>public <a href="../../../../org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.56">addDefault</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultEntries)</pre>
+<pre>public <a href="../../../../org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.57">addDefault</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> defaultEntries)</pre>
<div class="block">Adds default entries to these query parameters.
<p>
This includes the default queries defined on the servlet and method levels.</div>
@@ -366,7 +404,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
-<pre>public void <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.74">put</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public void <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.75">put</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</pre>
<div class="block">Sets a request query parameter value.</div>
<dl>
@@ -376,18 +414,20 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</dl>
</li>
</ul>
-<a name="getFirst-java.lang.String-">
+<a name="getString-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>getFirst</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.88">getFirst</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<h4>getString</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.91">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
<div class="block">Returns a query parameter value.
<p>
Same as <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html?is-external=true#getParameter-java.lang.String-" title="class or interface in javax.servlet"><code>ServletRequest.getParameter(String)</code></a> except only looks in the URL string, not parameters from URL-Encoded FORM posts.
<p>
- This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.</div>
+ This method can be used to retrieve a parameter without triggering the underlying servlet API to load and parse the request body.
+ <p>
+ If multiple query parameters have the same name, this returns only the first instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The URL parameter name.</dd>
@@ -396,15 +436,83 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</dl>
</li>
</ul>
-<a name="getFirst-java.lang.String-java.lang.String-">
+<a name="getString-java.lang.String-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getString</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.112">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>getString(String)</code></a> but returns the specified default value if the query parameter was not specified.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The URL parameter name.</dd>
+<dd><code>def</code> - The default value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&foo"</js>.</dd>
+</dl>
+</li>
+</ul>
+<a name="getInt-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInt</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.123">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to an integer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The URL parameter name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or <code>0</code> if parameter not specified or has no value (e.g. <js>"&foo"</js>.</dd>
+</dl>
+</li>
+</ul>
+<a name="getInt-java.lang.String-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>getFirst</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.109">getFirst</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
-<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-"><code>getFirst(String)</code></a> but returns the specified default value if the query parameter was not specified.</div>
+<h4>getInt</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.134">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ int def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to an integer.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The URL parameter name.</dd>
+<dd><code>def</code> - The default value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or the default value if parameter not specified or has no value (e.g. <js>"&foo"</js>.</dd>
+</dl>
+</li>
+</ul>
+<a name="getBoolean-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.145">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>getString(String)</code></a> but converts the value to a boolean.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The URL parameter name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parameter value, or <jk>false</jk> if parameter not specified or has no value (e.g. <js>"&foo"</js>.</dd>
+</dl>
+</li>
+</ul>
+<a name="getBoolean-java.lang.String-boolean-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getBoolean</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.156">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+ boolean def)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>getString(String,String)</code></a> but converts the value to a boolean.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The URL parameter name.</dd>
@@ -420,7 +528,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.143">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.190">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Returns the specified query parameter value converted to a POJO.
@@ -465,7 +573,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.157">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.204">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
T def,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -490,7 +598,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.193">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.240">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>... args)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -537,7 +645,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.211">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.258">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> def,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>... args)
@@ -567,7 +675,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.227">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.274">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> c)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/rest/RequestQuery.html#get-java.lang.String-java.lang.Class-"><code>get(String, Class)</code></a> except for use on multi-part parameters
@@ -593,7 +701,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getAll</h4>
-<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.247">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
+<pre>public <T> T <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.294">getAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</a>... args)
throws <a href="../../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
@@ -624,7 +732,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>containsAnyKeys</h4>
-<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.257">containsAnyKeys</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... params)</pre>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.304">containsAnyKeys</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... params)</pre>
<div class="block">Returns <jk>true</jk> if the request contains any of the specified query parameters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -634,13 +742,64 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
</dl>
</li>
</ul>
+<a name="getSearchArgs--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSearchArgs</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.337">getSearchArgs</a>()</pre>
+<div class="block">Locates the special search query arguments in the query and returns them as a <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object.
+ <p>
+ The query arguments are as follows:
+ <ul>
+ <li><js>"&s="</js> - A comma-delimited list of column-name/search-token pairs.
+ <br>Example: <js>"&s=column1=foo*,column2=*bar"</js>
+ <li><js>"&v="</js> - A comma-delimited list column names to view.
+ <br>Example: <js>"&v=column1,column2"</js>
+ <li><js>"&o="</js> - A comma-delimited list column names to sort by.
+ <br>Column names can be suffixed with <js>'-'</js> to indicate descending order.
+ <br>Example: <js>"&o=column1,column2-"</js>
+ <li><js>"&p="</js> - The zero-index row number of the first row to display.
+ <br>Example: <js>"&p=100"</js>
+ <li><js>"&l="</js> - The number of rows to return.
+ <br><code>0</code> implies return all rows.
+ <br>Example: <js>"&l=100"</js>
+ <li><js>"&i="</js> - The case-insensitive search flag.
+ <br>Example: <js>"&i=true"</js>
+ </ul>
+ <p>
+ Whitespace is trimmed in the parameters.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A new <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object initialized with the special search query arguments.
+ <jk>null</jk> if no search arguments were found.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasAny-java.lang.String...-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasAny</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.357">hasAny</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... paramNames)</pre>
+<div class="block">Returns <jk>true</jk> if the query parameters contains any of the specified names.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>paramNames</code> - The parameter names to check for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><jk>true</jk> if the query parameters contains any of the specified names.</dd>
+</dl>
+</li>
+</ul>
<a name="toString-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.317">toString</a>(boolean sorted)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.417">toString</a>(boolean sorted)</pre>
<div class="block">Converts the query parameters to a readable string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -656,7 +815,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.327">toString</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RequestQuery.html#line.427">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#toString--" title="class or interface in java.util">toString</a></code> in class <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true" title="class or interface in java.util">AbstractMap</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]></code></dd>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/RestRequest.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/RestRequest.html b/content/site/apidocs/org/apache/juneau/rest/RestRequest.html
index 27283a1..c292627 100644
--- a/content/site/apidocs/org/apache/juneau/rest/RestRequest.html
+++ b/content/site/apidocs/org/apache/juneau/rest/RestRequest.html
@@ -231,7 +231,7 @@ extends <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServ
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RestRequest.html#getFormData-java.lang.String-">getFormData</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
-<div class="block">Shortcut for calling <code>getFormData().getFirst(name)</code>.</div>
+<div class="block">Shortcut for calling <code>getFormData().getString(name)</code>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
@@ -326,7 +326,7 @@ extends <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServ
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/rest/RestRequest.html#getQuery-java.lang.String-">getQuery</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code>
-<div class="block">Shortcut for calling <code>getQuery().getFirst(name)</code>.</div>
+<div class="block">Shortcut for calling <code>getQuery().getString(name)</code>.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
@@ -688,7 +688,7 @@ extends <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServ
<li class="blockList">
<h4>getQuery</h4>
<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RestRequest.html#line.356">getQuery</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
-<div class="block">Shortcut for calling <code>getQuery().getFirst(name)</code>.</div>
+<div class="block">Shortcut for calling <code>getQuery().getString(name)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The query parameter name.</dd>
@@ -718,7 +718,7 @@ extends <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServ
<li class="blockList">
<h4>getFormData</h4>
<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/rest/RestRequest.html#line.396">getFormData</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre>
-<div class="block">Shortcut for calling <code>getFormData().getFirst(name)</code>.</div>
+<div class="block">Shortcut for calling <code>getFormData().getString(name)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - The form data parameter name.</dd>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/converters/Queryable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/converters/Queryable.html b/content/site/apidocs/org/apache/juneau/rest/converters/Queryable.html
index 7a1c062..34723c9 100644
--- a/content/site/apidocs/org/apache/juneau/rest/converters/Queryable.html
+++ b/content/site/apidocs/org/apache/juneau/rest/converters/Queryable.html
@@ -112,7 +112,7 @@ var activeTableTab = "activeTableTab";
</dl>
<hr>
<br>
-<pre>public final class <a href="../../../../../src-html/org/apache/juneau/rest/converters/Queryable.html#line.52">Queryable</a>
+<pre>public final class <a href="../../../../../src-html/org/apache/juneau/rest/converters/Queryable.html#line.51">Queryable</a>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" title="interface in org.apache.juneau.rest">RestConverter</a></pre>
<div class="block">Converter for enablement of <a href="../../../../../org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils"><code>PojoQuery</code></a> support on response objects returned by a <code>@RestMethod</code> method.
@@ -122,23 +122,28 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
<p>
The following HTTP request parameters are available for tabular data (e.g. <code>Collections</code> of <code>Maps</code>, arrays of beans, etc...):
<ul class='spaced-list'>
- <li><b>&q=<i>JSON-object</i></b> - Query parameter. Only return rows that match the specified search string. <br>
- The JSON object keys are column names, and the values are search parameter strings.<br>
- Example: <code>&s=(name=Bill*,birthDate=>2000)</code>
- <li><b>&v=<i>JSON-array or comma-delimited list</i></b> - View parameter. Only return the specified columns.<br>
- Example: <code>&v=(name,birthDate)</code>
- <li><b>&s=<i>JSON-object</i></b> - Sort parameter. Sort the results by the specified columns.<br>
- The JSON object keys are the column names, and the values are either <code>'A'</code> for ascending or <code>'D'</code> for descending.
- Example: <code>&s=(name=A,birthDate=D)</code>
- <li><b>&i=<i>true/false</i></b> - Case-insensitive parameter. Specify <jk>true</jk> for case-insensitive matching on the <code>&amp;q</code> parameter.
- <li><b>&p=<i>number</i></b> - Position parameter. Only return rows starting at the specified index position (zero-indexed). Default is <code>0</code>.
- <li><b>&q=<i>number</i></b> - Limit parameter. Only return the specified number of rows. Default is <code>0</code> (meaning return all rows).
+ <li><code>&s=</code> Search arguments.
+ <br>Comma-delimited list of key/value pairs representing column names and search tokens.
+ <br>Example: <js>"&s=name=Bill*,birthDate>2000"</js>
+ <li><code>&v=</code> Visible columns.
+ <br>Comma-delimited list of column names to display.
+ <br>Example: <js>"&v=name,birthDate"</js>
+ <li><code>&o=</code> Sort commands.
+ <br>Comma-delimited list of columns to sort by.
+ <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.
+ <br>The default is ascending order.
+ <br>Example: <js>"&o=name,birthDate-"</js>
+ <li><code>&i=</code> Case-insensitive parameter.
+ <br>Boolean flag for case-insensitive matching on the search parameters.
+ <li><code>&p=</code> - Position parameter.
+ <br>Only return rows starting at the specified index position (zero-indexed).
+ <br>Default is <code>0</code>.
+ <li><code>&l=</code> Limit parameter.
+ <br>Only return the specified number of rows.
+ <br>Default is <code>0</code> (meaning return all rows).
</ul>
<p>
- The <b>&v</b> parameter can also be used on <code>Maps</code> and beans.
-
- <p>
See <a href="../../../../../org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils"><code>PojoQuery</code></a> for additional information on filtering POJO models.</div>
</li>
</ul>
@@ -179,7 +184,7 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/converters/Queryable.html#convert-org.apache.juneau.rest.RestRequest-java.lang.Object-org.apache.juneau.ClassMeta-">convert</a></span>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a> req,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o,
- <a href="../../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a> cm)</code>
+ <a href="../../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> cm)</code>
<div class="block">Performs post-call conversion on the specified response object.</div>
</td>
</tr>
@@ -211,7 +216,7 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
<ul class="blockListLast">
<li class="blockList">
<h4>Queryable</h4>
-<pre>public <a href="../../../../../src-html/org/apache/juneau/rest/converters/Queryable.html#line.52">Queryable</a>()</pre>
+<pre>public <a href="../../../../../src-html/org/apache/juneau/rest/converters/Queryable.html#line.51">Queryable</a>()</pre>
</li>
</ul>
</li>
@@ -228,9 +233,9 @@ implements <a href="../../../../../org/apache/juneau/rest/RestConverter.html" ti
<ul class="blockListLast">
<li class="blockList">
<h4>convert</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/juneau/rest/converters/Queryable.html#line.56">convert</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a> req,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/juneau/rest/converters/Queryable.html#line.54">convert</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a> req,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o,
- <a href="../../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a> cm)</pre>
+ <a href="../../../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> cm)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../org/apache/juneau/rest/RestConverter.html#convert-org.apache.juneau.rest.RestRequest-java.lang.Object-org.apache.juneau.ClassMeta-">RestConverter</a></code></span></div>
<div class="block">Performs post-call conversion on the specified response object.</div>
<dl>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/package-summary.html b/content/site/apidocs/org/apache/juneau/rest/package-summary.html
index e67c130..264e4a9 100644
--- a/content/site/apidocs/org/apache/juneau/rest/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/rest/package-summary.html
@@ -2398,14 +2398,14 @@
<ul>
<li><ck>$R{attribute.X}</ck> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequestWrapper.html?is-external=true#getAttribute-java.lang.String-" title="class or interface in javax.servlet"><code>ServletRequestWrapper.getAttribute(String)</code></a> converted to a string.
<li><ck>$R{contextPath}</ck> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequestWrapper.html?is-external=true#getContextPath--" title="class or interface in javax.servlet.http"><code>HttpServletRequestWrapper.getContextPath()</code></a>.
- <li><ck>$R{formData.X}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-"><code>RequestFormData.getFirst(String)</code></a>.
- <li><ck>$R{header.X}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getFirst-java.lang.String-"><code>RequestHeaders.getFirst(String)</code></a>.
+ <li><ck>$R{formData.X}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>RequestFormData.getString(String)</code></a>.
+ <li><ck>$R{header.X}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>RequestHeaders.getString(String)</code></a>.
<li><ck>$R{method}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getMethod--"><code>RestRequest.getMethod()</code></a>.
<li><ck>$R{methodSummary}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getMethodSummary--"><code>RestRequest.getMethodSummary()</code></a>.
<li><ck>$R{methodDescription}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getMethodDescription--"><code>RestRequest.getMethodDescription()</code></a>.
<li><ck>$R{path.X}</ck> - Value returned by <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>TreeMap.get(Object)</code></a>.
<li><ck>$R{pathInfo}</ck> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequestWrapper.html?is-external=true#getPathInfo--" title="class or interface in javax.servlet.http"><code>HttpServletRequestWrapper.getPathInfo()</code></a>.
- <li><ck>$R{query.X}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-"><code>RequestQuery.getFirst(String)</code></a>.
+ <li><ck>$R{query.X}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>RequestQuery.getString(String)</code></a>.
<li><ck>$R{requestParentURI}</ck> - Value returned by <a href="../../../../org/apache/juneau/UriContext.html#getRootRelativePathInfoParent--"><code>UriContext.getRootRelativePathInfoParent()</code></a>.
<li><ck>$R{requestURI}</ck> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequestWrapper.html?is-external=true#getRequestURI--" title="class or interface in javax.servlet.http"><code>HttpServletRequestWrapper.getRequestURI()</code></a>.
<li><ck>$R{servletDescription}</ck> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getServletDescription--"><code>RestRequest.getServletDescription()</code></a>.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/PoweredByJuneauWidget.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/PoweredByJuneauWidget.html b/content/site/apidocs/org/apache/juneau/rest/widget/PoweredByJuneauWidget.html
index 60a8236..76886d1 100644
--- a/content/site/apidocs/org/apache/juneau/rest/widget/PoweredByJuneauWidget.html
+++ b/content/site/apidocs/org/apache/juneau/rest/widget/PoweredByJuneauWidget.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/juneau/rest/widget/PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" target="_top">Frames</a></li>
@@ -272,7 +272,7 @@ extends <a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/juneau/rest/widget/PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" target="_top">Frames</a></li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/QueryWidget.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/QueryWidget.html b/content/site/apidocs/org/apache/juneau/rest/widget/QueryWidget.html
new file mode 100644
index 0000000..1a5ef15
--- /dev/null
+++ b/content/site/apidocs/org/apache/juneau/rest/widget/QueryWidget.html
@@ -0,0 +1,410 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>QueryWidget (Apache Juneau (incubating) 6.2.1-incubating-SNAPSHOT)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="QueryWidget (Apache Juneau (incubating) 6.2.1-incubating-SNAPSHOT)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/juneau/rest/widget/QueryWidget.html" target="_top">Frames</a></li>
+<li><a href="QueryWidget.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.juneau.rest.widget</div>
+<h2 title="Class QueryWidget" class="title">Class QueryWidget</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">org.apache.juneau.rest.widget.Widget</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.juneau.rest.widget.QueryWidget</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/juneau/rest/widget/QueryWidget.html#line.118">QueryWidget</a>
+extends <a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">Widget</a></pre>
+<div class="block">Adds a <code>QUERY</code> link to the page that allows you to perform search/view/sort/paging on the page data.
+ <p>
+ A typical usage of the query widget is to include it as a navigation link as shown in the example below
+ pulled from the <code>PetStoreResource</code> example:
+ <p class='bcode'>
+ <ja>@RestResource</ja>(
+ widgets={
+ QueryWidget.<jk>class</jk>
+ },
+ htmldoc=<ja>@HtmlDoc</ja>(
+ links=<js>"{up:'...',options:'...',query:'$W{query}',source:'...'}"</js>
+ )
+ )
+ </p>
+ <p>
+ In the above example, this adds a <code>QUERY</code> that displays a search popup that can be used for
+ filtering the page results...
+ <p>
+ <img class='bordered' src='doc-files/PetStore_Query.png'>
+ <p>
+ Tooltips are provided by hovering over the field names.
+ <p>
+ <img class='bordered' src='doc-files/PetStore_Query_tooltip.png'>
+ <p>
+ When submitted, the form submits a GET request against the current URI with special GET search API query parameters.
+ (e.g. <js>"?s=column1=Foo*&v=column1,column2&o=column1,column2-&p=100&l=100"</js>).
+ <p>
+ The search arguments can be retrieved programmatically using <a href="../../../../../org/apache/juneau/rest/RequestQuery.html#getSearchArgs--"><code>RequestQuery.getSearchArgs()</code></a>.
+ <p>
+ Typically, the search functionality is implemented by applying the predefined <a href="../../../../../org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters"><code>Queryable</code></a> converter on the
+ method that's returning a 2-dimensional table of POJOs that you wish to filter:
+ <p class='bcode'>
+ <ja>@RestMethod</ja>(
+ name=<js>"GET"</js>,
+ path=<js>"/"</js>,
+ converters=Queryable.<jk>class</jk>
+ )
+ <jk>public</jk> Collection<Pet> getPets() {
+ </p>
+ <p>
+ The following shows various search arguments and their results on the page:
+ <table style='width:auto'>
+ <tr>
+ <th>Search type</th><th>Query arguments</th><th>Query results</th>
+ </tr>
+ <tr>
+ <td>No arguments</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q1.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r1.png'></td>
+ </tr>
+ <tr>
+ <td>String search</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q2.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r2.png'></td>
+ </tr>
+ <tr>
+ <td>Numeric range</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q3.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r3.png'></td>
+ </tr>
+ <tr>
+ <td>ANDed terms</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q4.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r4.png'></td>
+ </tr>
+ <tr>
+ <td>Date range (entire year)</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q8.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r8.png'></td>
+ </tr>
+ <tr>
+ <td>Date range</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q9.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r9.png'></td>
+ </tr>
+ <tr>
+ <td>Date range</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q10.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r10.png'></td>
+ </tr>
+ <tr>
+ <td>Hide columns</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q5.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r5.png'></td>
+ </tr>
+ <tr>
+ <td>Sort</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q6.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r6.png'></td>
+ </tr>
+ <tr>
+ <td>Sort descending</td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_q7.png'></td>
+ <td><img class='bordered' src='doc-files/PetStore_Query_r7.png'></td>
+ </tr>
+ </table></div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html#QueryWidget--">QueryWidget</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html#getName--">getName</a></span>()</code>
+<div class="block">The widget key (i.e.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html#resolve-org.apache.juneau.rest.RestRequest-">resolve</a></span>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a> req)</code>
+<div class="block">Resolves the value for the variable.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang
/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="QueryWidget--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>QueryWidget</h4>
+<pre>public <a href="../../../../../src-html/org/apache/juneau/rest/widget/QueryWidget.html#line.118">QueryWidget</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/juneau/rest/widget/QueryWidget.html#line.121">getName</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/juneau/rest/widget/Widget.html#getName--">Widget</a></code></span></div>
+<div class="block">The widget key (i.e. The contents of the <js>"$W{...}"</js> variable).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/juneau/rest/widget/Widget.html#getName--">getName</a></code> in class <code><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">Widget</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The widget key.
+ Must not be <jk>null</jk>.</dd>
+</dl>
+</li>
+</ul>
+<a name="resolve-org.apache.juneau.rest.RestRequest-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>resolve</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/juneau/rest/widget/QueryWidget.html#line.126">resolve</a>(<a href="../../../../../org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a> req)
+ throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../../org/apache/juneau/rest/widget/Widget.html#resolve-org.apache.juneau.rest.RestRequest-">Widget</a></code></span></div>
+<div class="block">Resolves the value for the variable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/juneau/rest/widget/Widget.html#resolve-org.apache.juneau.rest.RestRequest-">resolve</a></code> in class <code><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">Widget</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>req</code> - The HTTP request object.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The resolved value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/juneau/rest/widget/QueryWidget.html" target="_top">Frames</a></li>
+<li><a href="QueryWidget.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2017 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/Widget.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/Widget.html b/content/site/apidocs/org/apache/juneau/rest/widget/Widget.html
index b191b11..7bf957e 100644
--- a/content/site/apidocs/org/apache/juneau/rest/widget/Widget.html
+++ b/content/site/apidocs/org/apache/juneau/rest/widget/Widget.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
@@ -108,7 +108,7 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/juneau/rest/widget/ContentTypeLinksColumnWidget.html" title="class in org.apache.juneau.rest.widget">ContentTypeLinksColumnWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/ContentTypeLinksRowWidget.html" title="class in org.apache.juneau.rest.widget">ContentTypeLinksRowWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget">PoweredByApacheWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget">PoweredByJuneauWidget</a></dd>
+<dd><a href="../../../../../org/apache/juneau/rest/widget/ContentTypeLinksColumnWidget.html" title="class in org.apache.juneau.rest.widget">ContentTypeLinksColumnWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/ContentTypeLinksRowWidget.html" title="class in org.apache.juneau.rest.widget">ContentTypeLinksRowWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget">PoweredByApacheWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget">PoweredByJuneauWidget</a>, <a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget">QueryWidget</a></dd>
</dl>
<hr>
<br>
@@ -269,7 +269,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">Prev Class</span></a></li>
<li>Next Class</li>
</ul>
<ul class="navList">
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png
new file mode 100644
index 0000000..0db9c0d
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png
new file mode 100644
index 0000000..65b08dc
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png
new file mode 100644
index 0000000..3ec59c1
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q10.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png
new file mode 100644
index 0000000..935b2f0
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png
new file mode 100644
index 0000000..a0b72c7
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png
new file mode 100644
index 0000000..b324817
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q4.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png
new file mode 100644
index 0000000..3fc6aab
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q5.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png
new file mode 100644
index 0000000..d3fbd7c
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q6.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png
new file mode 100644
index 0000000..ba8c997
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q7.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png
new file mode 100644
index 0000000..e42fbbe
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q8.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png
new file mode 100644
index 0000000..7cd2ffe
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_q9.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png
new file mode 100644
index 0000000..dcc26b3
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r1.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png
new file mode 100644
index 0000000..8cf450b
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r10.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png
new file mode 100644
index 0000000..5904efa
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r2.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png
new file mode 100644
index 0000000..4adf7cc
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r3.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png
new file mode 100644
index 0000000..5904efa
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r4.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png
new file mode 100644
index 0000000..9b6185a
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r5.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png
new file mode 100644
index 0000000..d0f21be
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r6.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png
new file mode 100644
index 0000000..c3450d8
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r8.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png
new file mode 100644
index 0000000..8cf450b
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_r9.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png
new file mode 100644
index 0000000..4373661
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/PetStore_Query_tooltip.png differ
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/Petstore_Query_r7.png
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/Petstore_Query_r7.png b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/Petstore_Query_r7.png
new file mode 100644
index 0000000..472a2ce
Binary files /dev/null and b/content/site/apidocs/org/apache/juneau/rest/widget/doc-files/Petstore_Query_r7.png differ
[13/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/package-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/package-frame.html b/content/site/apidocs/org/apache/juneau/utils/package-frame.html
index b340415..62a375b 100644
--- a/content/site/apidocs/org/apache/juneau/utils/package-frame.html
+++ b/content/site/apidocs/org/apache/juneau/utils/package-frame.html
@@ -32,6 +32,8 @@
<li><a href="PojoRest.html" title="class in org.apache.juneau.utils" target="classFrame">PojoRest</a></li>
<li><a href="ProcBuilder.html" title="class in org.apache.juneau.utils" target="classFrame">ProcBuilder</a></li>
<li><a href="ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils" target="classFrame">ProcBuilder.Matcher</a></li>
+<li><a href="SearchArgs.html" title="class in org.apache.juneau.utils" target="classFrame">SearchArgs</a></li>
+<li><a href="SearchArgs.Builder.html" title="class in org.apache.juneau.utils" target="classFrame">SearchArgs.Builder</a></li>
<li><a href="StringMessage.html" title="class in org.apache.juneau.utils" target="classFrame">StringMessage</a></li>
<li><a href="StringObject.html" title="class in org.apache.juneau.utils" target="classFrame">StringObject</a></li>
<li><a href="ZipFileList.html" title="class in org.apache.juneau.utils" target="classFrame">ZipFileList</a></li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/package-summary.html b/content/site/apidocs/org/apache/juneau/utils/package-summary.html
index 5887d8d..cfa6aee 100644
--- a/content/site/apidocs/org/apache/juneau/utils/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/utils/package-summary.html
@@ -171,7 +171,7 @@
<tr class="altColor">
<td class="colFirst"><a href="../../../../org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></td>
<td class="colLast">
-<div class="block">Designed to provide query/view/sort/paging filtering on tabular in-memory POJO models.</div>
+<div class="block">Designed to provide search/view/sort/paging filtering on tabular in-memory POJO models.</div>
</td>
</tr>
<tr class="rowColor">
@@ -194,6 +194,18 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></td>
+<td class="colLast">
+<div class="block">Encapsulates arguments for basic search/view/sort/position/limit functionality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></td>
+<td class="colLast">
+<div class="block">Builder for <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> class.</div>
+</td>
+</tr>
+<tr class="altColor">
<td class="colFirst"><a href="../../../../org/apache/juneau/utils/StringMessage.html" title="class in org.apache.juneau.utils">StringMessage</a></td>
<td class="colLast">
<div class="block">An encapsulated MessageFormat-style string and arguments.</div>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/package-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/package-tree.html b/content/site/apidocs/org/apache/juneau/utils/package-tree.html
index 0802681..66c8856 100644
--- a/content/site/apidocs/org/apache/juneau/utils/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/utils/package-tree.html
@@ -143,6 +143,8 @@
<li type="circle">org.apache.juneau.utils.<a href="../../../../org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">MessageBundle</span></a></li>
</ul>
</li>
+<li type="circle">org.apache.juneau.utils.<a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">SearchArgs</span></a></li>
+<li type="circle">org.apache.juneau.utils.<a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">SearchArgs.Builder</span></a></li>
<li type="circle">org.apache.juneau.utils.<a href="../../../../org/apache/juneau/utils/StringMessage.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">StringMessage</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang">CharSequence</a>, org.apache.juneau.<a href="../../../../org/apache/juneau/Writable.html" title="interface in org.apache.juneau">Writable</a>)</li>
<li type="circle">org.apache.juneau.utils.<a href="../../../../org/apache/juneau/utils/StringObject.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">StringObject</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang">CharSequence</a>, org.apache.juneau.<a href="../../../../org/apache/juneau/Writable.html" title="interface in org.apache.juneau">Writable</a>)</li>
<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index f375fc1..9c3b5fd 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -6869,6 +6869,7 @@
<li><a href="org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><code>PoweredByJuneauWidget</code></a>
<li><a href="org/apache/juneau/rest/widget/ContentTypeLinksColumnWidget.html" title="class in org.apache.juneau.rest.widget"><code>ContentTypeLinksColumnWidget</code></a>
<li><a href="org/apache/juneau/rest/widget/ContentTypeLinksRowWidget.html" title="class in org.apache.juneau.rest.widget"><code>ContentTypeLinksRowWidget</code></a>
+ <li><a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><code>QueryWidget</code></a>
</ul>
<li><code>devops.css</code> cleaned up.
<li>Removed a bunch of URL-related methods from <a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest"><code>RestRequest</code></a>.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-tree.html b/content/site/apidocs/overview-tree.html
index 0a26bb5..2d4e725 100644
--- a/content/site/apidocs/overview-tree.html
+++ b/content/site/apidocs/overview-tree.html
@@ -1085,6 +1085,8 @@
<li type="circle">org.apache.juneau.dto.jsonschema.<a href="org/apache/juneau/dto/jsonschema/SchemaRef.html" title="class in org.apache.juneau.dto.jsonschema"><span class="typeNameLink">SchemaRef</span></a></li>
</ul>
</li>
+<li type="circle">org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">SearchArgs</span></a></li>
+<li type="circle">org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">SearchArgs.Builder</span></a></li>
<li type="circle">org.apache.juneau.ini.<a href="org/apache/juneau/ini/Section.html" title="class in org.apache.juneau.ini"><span class="typeNameLink">Section</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><K,V>)</li>
<li type="circle">org.apache.juneau.rest.client.<a href="org/apache/juneau/rest/client/SerializedNameValuePair.html" title="class in org.apache.juneau.rest.client"><span class="typeNameLink">SerializedNameValuePair</span></a> (implements org.apache.http.NameValuePair)</li>
<li type="circle">org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer"><span class="typeNameLink">SerializerGroup</span></a></li>
@@ -1284,6 +1286,7 @@
<li type="circle">org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/ContentTypeLinksRowWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">ContentTypeLinksRowWidget</span></a></li>
<li type="circle">org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">PoweredByApacheWidget</span></a></li>
<li type="circle">org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">PoweredByJuneauWidget</span></a></li>
+<li type="circle">org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">QueryWidget</span></a></li>
</ul>
</li>
<li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/WrappedMap.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">WrappedMap</span></a><K,V> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><K,V>)</li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html b/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
index 6ca48ed..8c01ce1 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanContext.html
@@ -1672,9 +1672,11 @@
<span class="sourceLineNo">1664</span> .append("locale", locale)<a name="line.1664"></a>
<span class="sourceLineNo">1665</span> .append("timeZone", timeZone)<a name="line.1665"></a>
<span class="sourceLineNo">1666</span> .append("mediaType", mediaType)<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span> );<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span> }<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>}<a name="line.1669"></a>
+<span class="sourceLineNo">1667</span> .append("includeProperties", includeProperties)<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span> .append("excludeProperties", excludeProperties)<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span> );<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span> }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>}<a name="line.1671"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html b/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
index 9b821db..6bc222e 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanMap.html
@@ -291,257 +291,272 @@
<span class="sourceLineNo">283</span> }<a name="line.283"></a>
<span class="sourceLineNo">284</span><a name="line.284"></a>
<span class="sourceLineNo">285</span> /**<a name="line.285"></a>
-<span class="sourceLineNo">286</span> * Convenience method for setting multiple property values by passing in JSON (or other) text.<a name="line.286"></a>
-<span class="sourceLineNo">287</span> * <p><a name="line.287"></a>
-<span class="sourceLineNo">288</span> * Typically the input is going to be JSON, although the actual data type<a name="line.288"></a>
-<span class="sourceLineNo">289</span> * depends on the default parser specified by the {@link BeanContext#BEAN_defaultParser} property<a name="line.289"></a>
-<span class="sourceLineNo">290</span> * value on the config that created the context that created this map.<a name="line.290"></a>
-<span class="sourceLineNo">291</span> *<a name="line.291"></a>
-<span class="sourceLineNo">292</span> * <h5 class='section'>Example:</h5><a name="line.292"></a>
-<span class="sourceLineNo">293</span> * <p class='bcode'><a name="line.293"></a>
-<span class="sourceLineNo">294</span> * aPersonBean.load(<js>"{name:'John Smith',age:21}"</js>)<a name="line.294"></a>
-<span class="sourceLineNo">295</span> * </p><a name="line.295"></a>
-<span class="sourceLineNo">296</span> *<a name="line.296"></a>
-<span class="sourceLineNo">297</span> * @param input The text that will get parsed into a map and then added to this map.<a name="line.297"></a>
-<span class="sourceLineNo">298</span> * @return This object (for method chaining).<a name="line.298"></a>
-<span class="sourceLineNo">299</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.299"></a>
-<span class="sourceLineNo">300</span> */<a name="line.300"></a>
-<span class="sourceLineNo">301</span> public BeanMap<T> load(String input) throws ParseException {<a name="line.301"></a>
-<span class="sourceLineNo">302</span> putAll(new ObjectMap(input, this.meta.ctx.defaultParser));<a name="line.302"></a>
-<span class="sourceLineNo">303</span> return this;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span> /**<a name="line.306"></a>
-<span class="sourceLineNo">307</span> * Convenience method for setting multiple property values by passing in a reader.<a name="line.307"></a>
-<span class="sourceLineNo">308</span> *<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @param r The text that will get parsed into a map and then added to this map.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> * @param p The parser to use to parse the text.<a name="line.310"></a>
-<span class="sourceLineNo">311</span> * @return This object (for method chaining).<a name="line.311"></a>
-<span class="sourceLineNo">312</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.312"></a>
-<span class="sourceLineNo">313</span> * @throws IOException Thrown by <code>Reader</code>.<a name="line.313"></a>
-<span class="sourceLineNo">314</span> */<a name="line.314"></a>
-<span class="sourceLineNo">315</span> public BeanMap<T> load(Reader r, ReaderParser p) throws ParseException, IOException {<a name="line.315"></a>
-<span class="sourceLineNo">316</span> putAll(new ObjectMap(r, p));<a name="line.316"></a>
-<span class="sourceLineNo">317</span> return this;<a name="line.317"></a>
-<span class="sourceLineNo">318</span> }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span> /**<a name="line.320"></a>
-<span class="sourceLineNo">321</span> * Convenience method for loading this map with the contents of the specified map.<a name="line.321"></a>
-<span class="sourceLineNo">322</span> * <p><a name="line.322"></a>
-<span class="sourceLineNo">323</span> * Identical to {@link #putAll(Map)} except as a fluent-style method.<a name="line.323"></a>
-<span class="sourceLineNo">324</span> *<a name="line.324"></a>
-<span class="sourceLineNo">325</span> * @param entries The map containing the entries to add to this map.<a name="line.325"></a>
+<span class="sourceLineNo">286</span> * Same as {@link #get(Object)} except bypasses the POJO filter associated with the bean property or<a name="line.286"></a>
+<span class="sourceLineNo">287</span> * bean filter associated with the bean class.<a name="line.287"></a>
+<span class="sourceLineNo">288</span> *<a name="line.288"></a>
+<span class="sourceLineNo">289</span> * @param property The name of the property to get.<a name="line.289"></a>
+<span class="sourceLineNo">290</span> * @return The raw property value.<a name="line.290"></a>
+<span class="sourceLineNo">291</span> */<a name="line.291"></a>
+<span class="sourceLineNo">292</span> public Object getRaw(Object property) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span> String pName = StringUtils.toString(property);<a name="line.293"></a>
+<span class="sourceLineNo">294</span> BeanPropertyMeta p = getPropertyMeta(pName);<a name="line.294"></a>
+<span class="sourceLineNo">295</span> if (p == null)<a name="line.295"></a>
+<span class="sourceLineNo">296</span> return null;<a name="line.296"></a>
+<span class="sourceLineNo">297</span> return p.getRaw(this, pName);<a name="line.297"></a>
+<span class="sourceLineNo">298</span> }<a name="line.298"></a>
+<span class="sourceLineNo">299</span><a name="line.299"></a>
+<span class="sourceLineNo">300</span> /**<a name="line.300"></a>
+<span class="sourceLineNo">301</span> * Convenience method for setting multiple property values by passing in JSON (or other) text.<a name="line.301"></a>
+<span class="sourceLineNo">302</span> * <p><a name="line.302"></a>
+<span class="sourceLineNo">303</span> * Typically the input is going to be JSON, although the actual data type<a name="line.303"></a>
+<span class="sourceLineNo">304</span> * depends on the default parser specified by the {@link BeanContext#BEAN_defaultParser} property<a name="line.304"></a>
+<span class="sourceLineNo">305</span> * value on the config that created the context that created this map.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> *<a name="line.306"></a>
+<span class="sourceLineNo">307</span> * <h5 class='section'>Example:</h5><a name="line.307"></a>
+<span class="sourceLineNo">308</span> * <p class='bcode'><a name="line.308"></a>
+<span class="sourceLineNo">309</span> * aPersonBean.load(<js>"{name:'John Smith',age:21}"</js>)<a name="line.309"></a>
+<span class="sourceLineNo">310</span> * </p><a name="line.310"></a>
+<span class="sourceLineNo">311</span> *<a name="line.311"></a>
+<span class="sourceLineNo">312</span> * @param input The text that will get parsed into a map and then added to this map.<a name="line.312"></a>
+<span class="sourceLineNo">313</span> * @return This object (for method chaining).<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.314"></a>
+<span class="sourceLineNo">315</span> */<a name="line.315"></a>
+<span class="sourceLineNo">316</span> public BeanMap<T> load(String input) throws ParseException {<a name="line.316"></a>
+<span class="sourceLineNo">317</span> putAll(new ObjectMap(input, this.meta.ctx.defaultParser));<a name="line.317"></a>
+<span class="sourceLineNo">318</span> return this;<a name="line.318"></a>
+<span class="sourceLineNo">319</span> }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span> /**<a name="line.321"></a>
+<span class="sourceLineNo">322</span> * Convenience method for setting multiple property values by passing in a reader.<a name="line.322"></a>
+<span class="sourceLineNo">323</span> *<a name="line.323"></a>
+<span class="sourceLineNo">324</span> * @param r The text that will get parsed into a map and then added to this map.<a name="line.324"></a>
+<span class="sourceLineNo">325</span> * @param p The parser to use to parse the text.<a name="line.325"></a>
<span class="sourceLineNo">326</span> * @return This object (for method chaining).<a name="line.326"></a>
-<span class="sourceLineNo">327</span> */<a name="line.327"></a>
-<span class="sourceLineNo">328</span> @SuppressWarnings({"unchecked","rawtypes"})<a name="line.328"></a>
-<span class="sourceLineNo">329</span> public BeanMap<T> load(Map entries) {<a name="line.329"></a>
-<span class="sourceLineNo">330</span> putAll(entries);<a name="line.330"></a>
-<span class="sourceLineNo">331</span> return this;<a name="line.331"></a>
-<span class="sourceLineNo">332</span> }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span> /**<a name="line.334"></a>
-<span class="sourceLineNo">335</span> * Returns the names of all properties associated with the bean.<a name="line.335"></a>
-<span class="sourceLineNo">336</span> * <p><a name="line.336"></a>
-<span class="sourceLineNo">337</span> * The returned set is unmodifiable.<a name="line.337"></a>
-<span class="sourceLineNo">338</span> */<a name="line.338"></a>
-<span class="sourceLineNo">339</span> @Override /* Map */<a name="line.339"></a>
-<span class="sourceLineNo">340</span> public Set<String> keySet() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span> if (meta.dynaProperty == null)<a name="line.341"></a>
-<span class="sourceLineNo">342</span> return meta.properties.keySet();<a name="line.342"></a>
-<span class="sourceLineNo">343</span> Set<String> l = new LinkedHashSet<String>();<a name="line.343"></a>
-<span class="sourceLineNo">344</span> for (String p : meta.properties.keySet())<a name="line.344"></a>
-<span class="sourceLineNo">345</span> if (! "*".equals(p))<a name="line.345"></a>
-<span class="sourceLineNo">346</span> l.add(p);<a name="line.346"></a>
-<span class="sourceLineNo">347</span> try {<a name="line.347"></a>
-<span class="sourceLineNo">348</span> l.addAll(meta.dynaProperty.getDynaMap(bean).keySet());<a name="line.348"></a>
-<span class="sourceLineNo">349</span> } catch (Exception e) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span> throw new BeanRuntimeException(e);<a name="line.350"></a>
-<span class="sourceLineNo">351</span> }<a name="line.351"></a>
-<span class="sourceLineNo">352</span> return l;<a name="line.352"></a>
-<span class="sourceLineNo">353</span> }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span> /**<a name="line.355"></a>
-<span class="sourceLineNo">356</span> * Returns the specified property on this bean map.<a name="line.356"></a>
-<span class="sourceLineNo">357</span> * <p><a name="line.357"></a>
-<span class="sourceLineNo">358</span> * Allows you to get and set an individual property on a bean without having a<a name="line.358"></a>
-<span class="sourceLineNo">359</span> * handle to the bean itself by using the {@link BeanMapEntry#getValue()}<a name="line.359"></a>
-<span class="sourceLineNo">360</span> * and {@link BeanMapEntry#setValue(Object)} methods.<a name="line.360"></a>
-<span class="sourceLineNo">361</span> * <p><a name="line.361"></a>
-<span class="sourceLineNo">362</span> * This method can also be used to get metadata on a property by<a name="line.362"></a>
-<span class="sourceLineNo">363</span> * calling the {@link BeanMapEntry#getMeta()} method.<a name="line.363"></a>
-<span class="sourceLineNo">364</span> *<a name="line.364"></a>
-<span class="sourceLineNo">365</span> * @param propertyName The name of the property to look up.<a name="line.365"></a>
-<span class="sourceLineNo">366</span> * @return The bean property, or null if the bean has no such property.<a name="line.366"></a>
-<span class="sourceLineNo">367</span> */<a name="line.367"></a>
-<span class="sourceLineNo">368</span> public BeanMapEntry getProperty(String propertyName) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span> BeanPropertyMeta p = getPropertyMeta(propertyName);<a name="line.369"></a>
-<span class="sourceLineNo">370</span> if (p == null)<a name="line.370"></a>
-<span class="sourceLineNo">371</span> return null;<a name="line.371"></a>
-<span class="sourceLineNo">372</span> return new BeanMapEntry(this, p, propertyName);<a name="line.372"></a>
-<span class="sourceLineNo">373</span> }<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span> /**<a name="line.375"></a>
-<span class="sourceLineNo">376</span> * Returns the metadata on the specified property.<a name="line.376"></a>
-<span class="sourceLineNo">377</span> *<a name="line.377"></a>
-<span class="sourceLineNo">378</span> * @param propertyName The name of the bean property.<a name="line.378"></a>
-<span class="sourceLineNo">379</span> * @return Metadata on the specified property, or <jk>null</jk> if that property does not exist.<a name="line.379"></a>
-<span class="sourceLineNo">380</span> */<a name="line.380"></a>
-<span class="sourceLineNo">381</span> public BeanPropertyMeta getPropertyMeta(String propertyName) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span> BeanPropertyMeta bpMeta = meta.properties.get(propertyName);<a name="line.382"></a>
-<span class="sourceLineNo">383</span> if (bpMeta == null)<a name="line.383"></a>
-<span class="sourceLineNo">384</span> bpMeta = meta.dynaProperty;<a name="line.384"></a>
-<span class="sourceLineNo">385</span> return bpMeta;<a name="line.385"></a>
-<span class="sourceLineNo">386</span> }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span> /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span> * Returns the {@link ClassMeta} of the wrapped bean.<a name="line.389"></a>
-<span class="sourceLineNo">390</span> *<a name="line.390"></a>
-<span class="sourceLineNo">391</span> * @return The class type of the wrapped bean.<a name="line.391"></a>
-<span class="sourceLineNo">392</span> */<a name="line.392"></a>
-<span class="sourceLineNo">393</span> @Override /* Delagate */<a name="line.393"></a>
-<span class="sourceLineNo">394</span> public ClassMeta<T> getClassMeta() {<a name="line.394"></a>
-<span class="sourceLineNo">395</span> return this.meta.getClassMeta();<a name="line.395"></a>
-<span class="sourceLineNo">396</span> }<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span> /**<a name="line.398"></a>
-<span class="sourceLineNo">399</span> * Invokes all the getters on this bean and return the values as a list of {@link BeanPropertyValue} objects.<a name="line.399"></a>
-<span class="sourceLineNo">400</span> * <p><a name="line.400"></a>
-<span class="sourceLineNo">401</span> * This allows a snapshot of all values to be grabbed from a bean in one call.<a name="line.401"></a>
-<span class="sourceLineNo">402</span> *<a name="line.402"></a>
-<span class="sourceLineNo">403</span> * @param ignoreNulls<a name="line.403"></a>
-<span class="sourceLineNo">404</span> * Don't return properties whose values are null.<a name="line.404"></a>
-<span class="sourceLineNo">405</span> * @param prependVals<a name="line.405"></a>
-<span class="sourceLineNo">406</span> * Additional bean property values to prepended to this list.<a name="line.406"></a>
-<span class="sourceLineNo">407</span> * Any <jk>null</jk> values in this list will be ignored.<a name="line.407"></a>
-<span class="sourceLineNo">408</span> * @return The list of all bean property values.<a name="line.408"></a>
-<span class="sourceLineNo">409</span> */<a name="line.409"></a>
-<span class="sourceLineNo">410</span> public List<BeanPropertyValue> getValues(final boolean ignoreNulls, BeanPropertyValue...prependVals) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span> Collection<BeanPropertyMeta> properties = getProperties();<a name="line.411"></a>
-<span class="sourceLineNo">412</span> int capacity = (ignoreNulls && properties.size() > 10) ? 10 : properties.size() + prependVals.length;<a name="line.412"></a>
-<span class="sourceLineNo">413</span> List<BeanPropertyValue> l = new ArrayList<BeanPropertyValue>(capacity);<a name="line.413"></a>
-<span class="sourceLineNo">414</span> for (BeanPropertyValue v : prependVals)<a name="line.414"></a>
-<span class="sourceLineNo">415</span> if (v != null)<a name="line.415"></a>
-<span class="sourceLineNo">416</span> l.add(v);<a name="line.416"></a>
-<span class="sourceLineNo">417</span> for (BeanPropertyMeta bpm : properties) {<a name="line.417"></a>
-<span class="sourceLineNo">418</span> try {<a name="line.418"></a>
-<span class="sourceLineNo">419</span> if (bpm.isDyna()) {<a name="line.419"></a>
-<span class="sourceLineNo">420</span> for (String pName : bpm.getDynaMap(bean).keySet()) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> Object val = bpm.get(this, pName);<a name="line.421"></a>
-<span class="sourceLineNo">422</span> if (val != null || ! ignoreNulls)<a name="line.422"></a>
-<span class="sourceLineNo">423</span> l.add(new BeanPropertyValue(bpm, pName, val, null));<a name="line.423"></a>
-<span class="sourceLineNo">424</span> }<a name="line.424"></a>
-<span class="sourceLineNo">425</span> } else {<a name="line.425"></a>
-<span class="sourceLineNo">426</span> Object val = bpm.get(this, null);<a name="line.426"></a>
-<span class="sourceLineNo">427</span> if (val != null || ! ignoreNulls)<a name="line.427"></a>
-<span class="sourceLineNo">428</span> l.add(new BeanPropertyValue(bpm, bpm.getName(), val, null));<a name="line.428"></a>
-<span class="sourceLineNo">429</span> }<a name="line.429"></a>
-<span class="sourceLineNo">430</span> } catch (Error e) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span> // Errors should always be uncaught.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> throw e;<a name="line.432"></a>
-<span class="sourceLineNo">433</span> } catch (Throwable t) {<a name="line.433"></a>
-<span class="sourceLineNo">434</span> l.add(new BeanPropertyValue(bpm, bpm.getName(), null, t));<a name="line.434"></a>
-<span class="sourceLineNo">435</span> }<a name="line.435"></a>
-<span class="sourceLineNo">436</span> }<a name="line.436"></a>
-<span class="sourceLineNo">437</span> if (meta.sortProperties && meta.dynaProperty != null)<a name="line.437"></a>
-<span class="sourceLineNo">438</span> Collections.sort(l);<a name="line.438"></a>
-<span class="sourceLineNo">439</span> return l;<a name="line.439"></a>
-<span class="sourceLineNo">440</span> }<a name="line.440"></a>
-<span class="sourceLineNo">441</span><a name="line.441"></a>
-<span class="sourceLineNo">442</span> /**<a name="line.442"></a>
-<span class="sourceLineNo">443</span> * Given a string containing variables of the form <code>"{property}"</code>, replaces those variables with<a name="line.443"></a>
-<span class="sourceLineNo">444</span> * property values in this bean.<a name="line.444"></a>
-<span class="sourceLineNo">445</span> *<a name="line.445"></a>
-<span class="sourceLineNo">446</span> * @param s The string containing variables.<a name="line.446"></a>
-<span class="sourceLineNo">447</span> * @return A new string with variables replaced, or the same string if no variables were found.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> */<a name="line.448"></a>
-<span class="sourceLineNo">449</span> public String resolveVars(String s) {<a name="line.449"></a>
-<span class="sourceLineNo">450</span> return StringUtils.replaceVars(s, this);<a name="line.450"></a>
-<span class="sourceLineNo">451</span> }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span> /**<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * Returns a simple collection of properties for this bean map.<a name="line.454"></a>
-<span class="sourceLineNo">455</span> * @return A simple collection of properties for this bean map.<a name="line.455"></a>
-<span class="sourceLineNo">456</span> */<a name="line.456"></a>
-<span class="sourceLineNo">457</span> protected Collection<BeanPropertyMeta> getProperties() {<a name="line.457"></a>
-<span class="sourceLineNo">458</span> return meta.properties.values();<a name="line.458"></a>
-<span class="sourceLineNo">459</span> }<a name="line.459"></a>
-<span class="sourceLineNo">460</span><a name="line.460"></a>
-<span class="sourceLineNo">461</span> /**<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * Returns all the properties associated with the bean.<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * @return A new set.<a name="line.463"></a>
-<span class="sourceLineNo">464</span> */<a name="line.464"></a>
-<span class="sourceLineNo">465</span> @Override<a name="line.465"></a>
-<span class="sourceLineNo">466</span> public Set<Entry<String,Object>> entrySet() {<a name="line.466"></a>
+<span class="sourceLineNo">327</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.327"></a>
+<span class="sourceLineNo">328</span> * @throws IOException Thrown by <code>Reader</code>.<a name="line.328"></a>
+<span class="sourceLineNo">329</span> */<a name="line.329"></a>
+<span class="sourceLineNo">330</span> public BeanMap<T> load(Reader r, ReaderParser p) throws ParseException, IOException {<a name="line.330"></a>
+<span class="sourceLineNo">331</span> putAll(new ObjectMap(r, p));<a name="line.331"></a>
+<span class="sourceLineNo">332</span> return this;<a name="line.332"></a>
+<span class="sourceLineNo">333</span> }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span> /**<a name="line.335"></a>
+<span class="sourceLineNo">336</span> * Convenience method for loading this map with the contents of the specified map.<a name="line.336"></a>
+<span class="sourceLineNo">337</span> * <p><a name="line.337"></a>
+<span class="sourceLineNo">338</span> * Identical to {@link #putAll(Map)} except as a fluent-style method.<a name="line.338"></a>
+<span class="sourceLineNo">339</span> *<a name="line.339"></a>
+<span class="sourceLineNo">340</span> * @param entries The map containing the entries to add to this map.<a name="line.340"></a>
+<span class="sourceLineNo">341</span> * @return This object (for method chaining).<a name="line.341"></a>
+<span class="sourceLineNo">342</span> */<a name="line.342"></a>
+<span class="sourceLineNo">343</span> @SuppressWarnings({"unchecked","rawtypes"})<a name="line.343"></a>
+<span class="sourceLineNo">344</span> public BeanMap<T> load(Map entries) {<a name="line.344"></a>
+<span class="sourceLineNo">345</span> putAll(entries);<a name="line.345"></a>
+<span class="sourceLineNo">346</span> return this;<a name="line.346"></a>
+<span class="sourceLineNo">347</span> }<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span> /**<a name="line.349"></a>
+<span class="sourceLineNo">350</span> * Returns the names of all properties associated with the bean.<a name="line.350"></a>
+<span class="sourceLineNo">351</span> * <p><a name="line.351"></a>
+<span class="sourceLineNo">352</span> * The returned set is unmodifiable.<a name="line.352"></a>
+<span class="sourceLineNo">353</span> */<a name="line.353"></a>
+<span class="sourceLineNo">354</span> @Override /* Map */<a name="line.354"></a>
+<span class="sourceLineNo">355</span> public Set<String> keySet() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span> if (meta.dynaProperty == null)<a name="line.356"></a>
+<span class="sourceLineNo">357</span> return meta.properties.keySet();<a name="line.357"></a>
+<span class="sourceLineNo">358</span> Set<String> l = new LinkedHashSet<String>();<a name="line.358"></a>
+<span class="sourceLineNo">359</span> for (String p : meta.properties.keySet())<a name="line.359"></a>
+<span class="sourceLineNo">360</span> if (! "*".equals(p))<a name="line.360"></a>
+<span class="sourceLineNo">361</span> l.add(p);<a name="line.361"></a>
+<span class="sourceLineNo">362</span> try {<a name="line.362"></a>
+<span class="sourceLineNo">363</span> l.addAll(meta.dynaProperty.getDynaMap(bean).keySet());<a name="line.363"></a>
+<span class="sourceLineNo">364</span> } catch (Exception e) {<a name="line.364"></a>
+<span class="sourceLineNo">365</span> throw new BeanRuntimeException(e);<a name="line.365"></a>
+<span class="sourceLineNo">366</span> }<a name="line.366"></a>
+<span class="sourceLineNo">367</span> return l;<a name="line.367"></a>
+<span class="sourceLineNo">368</span> }<a name="line.368"></a>
+<span class="sourceLineNo">369</span><a name="line.369"></a>
+<span class="sourceLineNo">370</span> /**<a name="line.370"></a>
+<span class="sourceLineNo">371</span> * Returns the specified property on this bean map.<a name="line.371"></a>
+<span class="sourceLineNo">372</span> * <p><a name="line.372"></a>
+<span class="sourceLineNo">373</span> * Allows you to get and set an individual property on a bean without having a<a name="line.373"></a>
+<span class="sourceLineNo">374</span> * handle to the bean itself by using the {@link BeanMapEntry#getValue()}<a name="line.374"></a>
+<span class="sourceLineNo">375</span> * and {@link BeanMapEntry#setValue(Object)} methods.<a name="line.375"></a>
+<span class="sourceLineNo">376</span> * <p><a name="line.376"></a>
+<span class="sourceLineNo">377</span> * This method can also be used to get metadata on a property by<a name="line.377"></a>
+<span class="sourceLineNo">378</span> * calling the {@link BeanMapEntry#getMeta()} method.<a name="line.378"></a>
+<span class="sourceLineNo">379</span> *<a name="line.379"></a>
+<span class="sourceLineNo">380</span> * @param propertyName The name of the property to look up.<a name="line.380"></a>
+<span class="sourceLineNo">381</span> * @return The bean property, or null if the bean has no such property.<a name="line.381"></a>
+<span class="sourceLineNo">382</span> */<a name="line.382"></a>
+<span class="sourceLineNo">383</span> public BeanMapEntry getProperty(String propertyName) {<a name="line.383"></a>
+<span class="sourceLineNo">384</span> BeanPropertyMeta p = getPropertyMeta(propertyName);<a name="line.384"></a>
+<span class="sourceLineNo">385</span> if (p == null)<a name="line.385"></a>
+<span class="sourceLineNo">386</span> return null;<a name="line.386"></a>
+<span class="sourceLineNo">387</span> return new BeanMapEntry(this, p, propertyName);<a name="line.387"></a>
+<span class="sourceLineNo">388</span> }<a name="line.388"></a>
+<span class="sourceLineNo">389</span><a name="line.389"></a>
+<span class="sourceLineNo">390</span> /**<a name="line.390"></a>
+<span class="sourceLineNo">391</span> * Returns the metadata on the specified property.<a name="line.391"></a>
+<span class="sourceLineNo">392</span> *<a name="line.392"></a>
+<span class="sourceLineNo">393</span> * @param propertyName The name of the bean property.<a name="line.393"></a>
+<span class="sourceLineNo">394</span> * @return Metadata on the specified property, or <jk>null</jk> if that property does not exist.<a name="line.394"></a>
+<span class="sourceLineNo">395</span> */<a name="line.395"></a>
+<span class="sourceLineNo">396</span> public BeanPropertyMeta getPropertyMeta(String propertyName) {<a name="line.396"></a>
+<span class="sourceLineNo">397</span> BeanPropertyMeta bpMeta = meta.properties.get(propertyName);<a name="line.397"></a>
+<span class="sourceLineNo">398</span> if (bpMeta == null)<a name="line.398"></a>
+<span class="sourceLineNo">399</span> bpMeta = meta.dynaProperty;<a name="line.399"></a>
+<span class="sourceLineNo">400</span> return bpMeta;<a name="line.400"></a>
+<span class="sourceLineNo">401</span> }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span> /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span> * Returns the {@link ClassMeta} of the wrapped bean.<a name="line.404"></a>
+<span class="sourceLineNo">405</span> *<a name="line.405"></a>
+<span class="sourceLineNo">406</span> * @return The class type of the wrapped bean.<a name="line.406"></a>
+<span class="sourceLineNo">407</span> */<a name="line.407"></a>
+<span class="sourceLineNo">408</span> @Override /* Delagate */<a name="line.408"></a>
+<span class="sourceLineNo">409</span> public ClassMeta<T> getClassMeta() {<a name="line.409"></a>
+<span class="sourceLineNo">410</span> return this.meta.getClassMeta();<a name="line.410"></a>
+<span class="sourceLineNo">411</span> }<a name="line.411"></a>
+<span class="sourceLineNo">412</span><a name="line.412"></a>
+<span class="sourceLineNo">413</span> /**<a name="line.413"></a>
+<span class="sourceLineNo">414</span> * Invokes all the getters on this bean and return the values as a list of {@link BeanPropertyValue} objects.<a name="line.414"></a>
+<span class="sourceLineNo">415</span> * <p><a name="line.415"></a>
+<span class="sourceLineNo">416</span> * This allows a snapshot of all values to be grabbed from a bean in one call.<a name="line.416"></a>
+<span class="sourceLineNo">417</span> *<a name="line.417"></a>
+<span class="sourceLineNo">418</span> * @param ignoreNulls<a name="line.418"></a>
+<span class="sourceLineNo">419</span> * Don't return properties whose values are null.<a name="line.419"></a>
+<span class="sourceLineNo">420</span> * @param prependVals<a name="line.420"></a>
+<span class="sourceLineNo">421</span> * Additional bean property values to prepended to this list.<a name="line.421"></a>
+<span class="sourceLineNo">422</span> * Any <jk>null</jk> values in this list will be ignored.<a name="line.422"></a>
+<span class="sourceLineNo">423</span> * @return The list of all bean property values.<a name="line.423"></a>
+<span class="sourceLineNo">424</span> */<a name="line.424"></a>
+<span class="sourceLineNo">425</span> public List<BeanPropertyValue> getValues(final boolean ignoreNulls, BeanPropertyValue...prependVals) {<a name="line.425"></a>
+<span class="sourceLineNo">426</span> Collection<BeanPropertyMeta> properties = getProperties();<a name="line.426"></a>
+<span class="sourceLineNo">427</span> int capacity = (ignoreNulls && properties.size() > 10) ? 10 : properties.size() + prependVals.length;<a name="line.427"></a>
+<span class="sourceLineNo">428</span> List<BeanPropertyValue> l = new ArrayList<BeanPropertyValue>(capacity);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> for (BeanPropertyValue v : prependVals)<a name="line.429"></a>
+<span class="sourceLineNo">430</span> if (v != null)<a name="line.430"></a>
+<span class="sourceLineNo">431</span> l.add(v);<a name="line.431"></a>
+<span class="sourceLineNo">432</span> for (BeanPropertyMeta bpm : properties) {<a name="line.432"></a>
+<span class="sourceLineNo">433</span> try {<a name="line.433"></a>
+<span class="sourceLineNo">434</span> if (bpm.isDyna()) {<a name="line.434"></a>
+<span class="sourceLineNo">435</span> for (String pName : bpm.getDynaMap(bean).keySet()) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> Object val = bpm.get(this, pName);<a name="line.436"></a>
+<span class="sourceLineNo">437</span> if (val != null || ! ignoreNulls)<a name="line.437"></a>
+<span class="sourceLineNo">438</span> l.add(new BeanPropertyValue(bpm, pName, val, null));<a name="line.438"></a>
+<span class="sourceLineNo">439</span> }<a name="line.439"></a>
+<span class="sourceLineNo">440</span> } else {<a name="line.440"></a>
+<span class="sourceLineNo">441</span> Object val = bpm.get(this, null);<a name="line.441"></a>
+<span class="sourceLineNo">442</span> if (val != null || ! ignoreNulls)<a name="line.442"></a>
+<span class="sourceLineNo">443</span> l.add(new BeanPropertyValue(bpm, bpm.getName(), val, null));<a name="line.443"></a>
+<span class="sourceLineNo">444</span> }<a name="line.444"></a>
+<span class="sourceLineNo">445</span> } catch (Error e) {<a name="line.445"></a>
+<span class="sourceLineNo">446</span> // Errors should always be uncaught.<a name="line.446"></a>
+<span class="sourceLineNo">447</span> throw e;<a name="line.447"></a>
+<span class="sourceLineNo">448</span> } catch (Throwable t) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span> l.add(new BeanPropertyValue(bpm, bpm.getName(), null, t));<a name="line.449"></a>
+<span class="sourceLineNo">450</span> }<a name="line.450"></a>
+<span class="sourceLineNo">451</span> }<a name="line.451"></a>
+<span class="sourceLineNo">452</span> if (meta.sortProperties && meta.dynaProperty != null)<a name="line.452"></a>
+<span class="sourceLineNo">453</span> Collections.sort(l);<a name="line.453"></a>
+<span class="sourceLineNo">454</span> return l;<a name="line.454"></a>
+<span class="sourceLineNo">455</span> }<a name="line.455"></a>
+<span class="sourceLineNo">456</span><a name="line.456"></a>
+<span class="sourceLineNo">457</span> /**<a name="line.457"></a>
+<span class="sourceLineNo">458</span> * Given a string containing variables of the form <code>"{property}"</code>, replaces those variables with<a name="line.458"></a>
+<span class="sourceLineNo">459</span> * property values in this bean.<a name="line.459"></a>
+<span class="sourceLineNo">460</span> *<a name="line.460"></a>
+<span class="sourceLineNo">461</span> * @param s The string containing variables.<a name="line.461"></a>
+<span class="sourceLineNo">462</span> * @return A new string with variables replaced, or the same string if no variables were found.<a name="line.462"></a>
+<span class="sourceLineNo">463</span> */<a name="line.463"></a>
+<span class="sourceLineNo">464</span> public String resolveVars(String s) {<a name="line.464"></a>
+<span class="sourceLineNo">465</span> return StringUtils.replaceVars(s, this);<a name="line.465"></a>
+<span class="sourceLineNo">466</span> }<a name="line.466"></a>
<span class="sourceLineNo">467</span><a name="line.467"></a>
-<span class="sourceLineNo">468</span> // If this bean has a dyna-property, then we need to construct the entire set before returning.<a name="line.468"></a>
-<span class="sourceLineNo">469</span> // Otherwise, we can create an iterator without a new data structure.<a name="line.469"></a>
-<span class="sourceLineNo">470</span> if (meta.dynaProperty != null) {<a name="line.470"></a>
-<span class="sourceLineNo">471</span> Set<Entry<String,Object>> s = new LinkedHashSet<Entry<String,Object>>();<a name="line.471"></a>
-<span class="sourceLineNo">472</span> for (BeanPropertyMeta pMeta : getProperties()) {<a name="line.472"></a>
-<span class="sourceLineNo">473</span> if (pMeta.isDyna()) {<a name="line.473"></a>
-<span class="sourceLineNo">474</span> try {<a name="line.474"></a>
-<span class="sourceLineNo">475</span> for (Map.Entry<String,Object> e : pMeta.getDynaMap(bean).entrySet())<a name="line.475"></a>
-<span class="sourceLineNo">476</span> s.add(new BeanMapEntry(this, pMeta, e.getKey()));<a name="line.476"></a>
-<span class="sourceLineNo">477</span> } catch (Exception e) {<a name="line.477"></a>
-<span class="sourceLineNo">478</span> throw new BeanRuntimeException(e);<a name="line.478"></a>
-<span class="sourceLineNo">479</span> }<a name="line.479"></a>
-<span class="sourceLineNo">480</span> } else {<a name="line.480"></a>
-<span class="sourceLineNo">481</span> s.add(new BeanMapEntry(this, pMeta, pMeta.getName()));<a name="line.481"></a>
-<span class="sourceLineNo">482</span> }<a name="line.482"></a>
-<span class="sourceLineNo">483</span> }<a name="line.483"></a>
-<span class="sourceLineNo">484</span> return s;<a name="line.484"></a>
-<span class="sourceLineNo">485</span> }<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span> // Construct our own anonymous set to implement this function.<a name="line.487"></a>
-<span class="sourceLineNo">488</span> Set<Entry<String,Object>> s = new AbstractSet<Entry<String,Object>>() {<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span> // Get the list of properties from the meta object.<a name="line.490"></a>
-<span class="sourceLineNo">491</span> // Note that the HashMap.values() method caches results, so this collection<a name="line.491"></a>
-<span class="sourceLineNo">492</span> // will really only be constructed once per bean type since the underlying<a name="line.492"></a>
-<span class="sourceLineNo">493</span> // map never changes.<a name="line.493"></a>
-<span class="sourceLineNo">494</span> final Collection<BeanPropertyMeta> pSet = getProperties();<a name="line.494"></a>
-<span class="sourceLineNo">495</span><a name="line.495"></a>
-<span class="sourceLineNo">496</span> @Override /* Set */<a name="line.496"></a>
-<span class="sourceLineNo">497</span> public Iterator<java.util.Map.Entry<String, Object>> iterator() {<a name="line.497"></a>
-<span class="sourceLineNo">498</span><a name="line.498"></a>
-<span class="sourceLineNo">499</span> // Construct our own anonymous iterator that uses iterators against the meta.properties<a name="line.499"></a>
-<span class="sourceLineNo">500</span> // map to maintain position. This prevents us from having to construct any of our own<a name="line.500"></a>
-<span class="sourceLineNo">501</span> // collection objects.<a name="line.501"></a>
-<span class="sourceLineNo">502</span> return new Iterator<Entry<String,Object>>() {<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span> final Iterator<BeanPropertyMeta> pIterator = pSet.iterator();<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span> @Override /* Iterator */<a name="line.506"></a>
-<span class="sourceLineNo">507</span> public boolean hasNext() {<a name="line.507"></a>
-<span class="sourceLineNo">508</span> return pIterator.hasNext();<a name="line.508"></a>
-<span class="sourceLineNo">509</span> }<a name="line.509"></a>
+<span class="sourceLineNo">468</span> /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * Returns a simple collection of properties for this bean map.<a name="line.469"></a>
+<span class="sourceLineNo">470</span> * @return A simple collection of properties for this bean map.<a name="line.470"></a>
+<span class="sourceLineNo">471</span> */<a name="line.471"></a>
+<span class="sourceLineNo">472</span> protected Collection<BeanPropertyMeta> getProperties() {<a name="line.472"></a>
+<span class="sourceLineNo">473</span> return meta.properties.values();<a name="line.473"></a>
+<span class="sourceLineNo">474</span> }<a name="line.474"></a>
+<span class="sourceLineNo">475</span><a name="line.475"></a>
+<span class="sourceLineNo">476</span> /**<a name="line.476"></a>
+<span class="sourceLineNo">477</span> * Returns all the properties associated with the bean.<a name="line.477"></a>
+<span class="sourceLineNo">478</span> * @return A new set.<a name="line.478"></a>
+<span class="sourceLineNo">479</span> */<a name="line.479"></a>
+<span class="sourceLineNo">480</span> @Override<a name="line.480"></a>
+<span class="sourceLineNo">481</span> public Set<Entry<String,Object>> entrySet() {<a name="line.481"></a>
+<span class="sourceLineNo">482</span><a name="line.482"></a>
+<span class="sourceLineNo">483</span> // If this bean has a dyna-property, then we need to construct the entire set before returning.<a name="line.483"></a>
+<span class="sourceLineNo">484</span> // Otherwise, we can create an iterator without a new data structure.<a name="line.484"></a>
+<span class="sourceLineNo">485</span> if (meta.dynaProperty != null) {<a name="line.485"></a>
+<span class="sourceLineNo">486</span> Set<Entry<String,Object>> s = new LinkedHashSet<Entry<String,Object>>();<a name="line.486"></a>
+<span class="sourceLineNo">487</span> for (BeanPropertyMeta pMeta : getProperties()) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span> if (pMeta.isDyna()) {<a name="line.488"></a>
+<span class="sourceLineNo">489</span> try {<a name="line.489"></a>
+<span class="sourceLineNo">490</span> for (Map.Entry<String,Object> e : pMeta.getDynaMap(bean).entrySet())<a name="line.490"></a>
+<span class="sourceLineNo">491</span> s.add(new BeanMapEntry(this, pMeta, e.getKey()));<a name="line.491"></a>
+<span class="sourceLineNo">492</span> } catch (Exception e) {<a name="line.492"></a>
+<span class="sourceLineNo">493</span> throw new BeanRuntimeException(e);<a name="line.493"></a>
+<span class="sourceLineNo">494</span> }<a name="line.494"></a>
+<span class="sourceLineNo">495</span> } else {<a name="line.495"></a>
+<span class="sourceLineNo">496</span> s.add(new BeanMapEntry(this, pMeta, pMeta.getName()));<a name="line.496"></a>
+<span class="sourceLineNo">497</span> }<a name="line.497"></a>
+<span class="sourceLineNo">498</span> }<a name="line.498"></a>
+<span class="sourceLineNo">499</span> return s;<a name="line.499"></a>
+<span class="sourceLineNo">500</span> }<a name="line.500"></a>
+<span class="sourceLineNo">501</span><a name="line.501"></a>
+<span class="sourceLineNo">502</span> // Construct our own anonymous set to implement this function.<a name="line.502"></a>
+<span class="sourceLineNo">503</span> Set<Entry<String,Object>> s = new AbstractSet<Entry<String,Object>>() {<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span> // Get the list of properties from the meta object.<a name="line.505"></a>
+<span class="sourceLineNo">506</span> // Note that the HashMap.values() method caches results, so this collection<a name="line.506"></a>
+<span class="sourceLineNo">507</span> // will really only be constructed once per bean type since the underlying<a name="line.507"></a>
+<span class="sourceLineNo">508</span> // map never changes.<a name="line.508"></a>
+<span class="sourceLineNo">509</span> final Collection<BeanPropertyMeta> pSet = getProperties();<a name="line.509"></a>
<span class="sourceLineNo">510</span><a name="line.510"></a>
-<span class="sourceLineNo">511</span> @Override /* Iterator */<a name="line.511"></a>
-<span class="sourceLineNo">512</span> public Map.Entry<String, Object> next() {<a name="line.512"></a>
-<span class="sourceLineNo">513</span> return new BeanMapEntry(BeanMap.this, pIterator.next(), null);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> }<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span> @Override /* Iterator */<a name="line.516"></a>
-<span class="sourceLineNo">517</span> public void remove() {<a name="line.517"></a>
-<span class="sourceLineNo">518</span> throw new UnsupportedOperationException("Cannot remove item from iterator.");<a name="line.518"></a>
-<span class="sourceLineNo">519</span> }<a name="line.519"></a>
-<span class="sourceLineNo">520</span> };<a name="line.520"></a>
-<span class="sourceLineNo">521</span> }<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span> @Override /* Set */<a name="line.523"></a>
-<span class="sourceLineNo">524</span> public int size() {<a name="line.524"></a>
-<span class="sourceLineNo">525</span> return pSet.size();<a name="line.525"></a>
-<span class="sourceLineNo">526</span> }<a name="line.526"></a>
-<span class="sourceLineNo">527</span> };<a name="line.527"></a>
-<span class="sourceLineNo">528</span><a name="line.528"></a>
-<span class="sourceLineNo">529</span> return s;<a name="line.529"></a>
-<span class="sourceLineNo">530</span> }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span> @SuppressWarnings("unchecked")<a name="line.532"></a>
-<span class="sourceLineNo">533</span> void setBean(Object bean) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span> this.bean = (T)bean;<a name="line.534"></a>
-<span class="sourceLineNo">535</span> }<a name="line.535"></a>
-<span class="sourceLineNo">536</span>}<a name="line.536"></a>
+<span class="sourceLineNo">511</span> @Override /* Set */<a name="line.511"></a>
+<span class="sourceLineNo">512</span> public Iterator<java.util.Map.Entry<String, Object>> iterator() {<a name="line.512"></a>
+<span class="sourceLineNo">513</span><a name="line.513"></a>
+<span class="sourceLineNo">514</span> // Construct our own anonymous iterator that uses iterators against the meta.properties<a name="line.514"></a>
+<span class="sourceLineNo">515</span> // map to maintain position. This prevents us from having to construct any of our own<a name="line.515"></a>
+<span class="sourceLineNo">516</span> // collection objects.<a name="line.516"></a>
+<span class="sourceLineNo">517</span> return new Iterator<Entry<String,Object>>() {<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span> final Iterator<BeanPropertyMeta> pIterator = pSet.iterator();<a name="line.519"></a>
+<span class="sourceLineNo">520</span><a name="line.520"></a>
+<span class="sourceLineNo">521</span> @Override /* Iterator */<a name="line.521"></a>
+<span class="sourceLineNo">522</span> public boolean hasNext() {<a name="line.522"></a>
+<span class="sourceLineNo">523</span> return pIterator.hasNext();<a name="line.523"></a>
+<span class="sourceLineNo">524</span> }<a name="line.524"></a>
+<span class="sourceLineNo">525</span><a name="line.525"></a>
+<span class="sourceLineNo">526</span> @Override /* Iterator */<a name="line.526"></a>
+<span class="sourceLineNo">527</span> public Map.Entry<String, Object> next() {<a name="line.527"></a>
+<span class="sourceLineNo">528</span> return new BeanMapEntry(BeanMap.this, pIterator.next(), null);<a name="line.528"></a>
+<span class="sourceLineNo">529</span> }<a name="line.529"></a>
+<span class="sourceLineNo">530</span><a name="line.530"></a>
+<span class="sourceLineNo">531</span> @Override /* Iterator */<a name="line.531"></a>
+<span class="sourceLineNo">532</span> public void remove() {<a name="line.532"></a>
+<span class="sourceLineNo">533</span> throw new UnsupportedOperationException("Cannot remove item from iterator.");<a name="line.533"></a>
+<span class="sourceLineNo">534</span> }<a name="line.534"></a>
+<span class="sourceLineNo">535</span> };<a name="line.535"></a>
+<span class="sourceLineNo">536</span> }<a name="line.536"></a>
+<span class="sourceLineNo">537</span><a name="line.537"></a>
+<span class="sourceLineNo">538</span> @Override /* Set */<a name="line.538"></a>
+<span class="sourceLineNo">539</span> public int size() {<a name="line.539"></a>
+<span class="sourceLineNo">540</span> return pSet.size();<a name="line.540"></a>
+<span class="sourceLineNo">541</span> }<a name="line.541"></a>
+<span class="sourceLineNo">542</span> };<a name="line.542"></a>
+<span class="sourceLineNo">543</span><a name="line.543"></a>
+<span class="sourceLineNo">544</span> return s;<a name="line.544"></a>
+<span class="sourceLineNo">545</span> }<a name="line.545"></a>
+<span class="sourceLineNo">546</span><a name="line.546"></a>
+<span class="sourceLineNo">547</span> @SuppressWarnings("unchecked")<a name="line.547"></a>
+<span class="sourceLineNo">548</span> void setBean(Object bean) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span> this.bean = (T)bean;<a name="line.549"></a>
+<span class="sourceLineNo">550</span> }<a name="line.550"></a>
+<span class="sourceLineNo">551</span>}<a name="line.551"></a>
[03/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Queryable.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Queryable.html b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Queryable.html
index cbd94df..338bfc5 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Queryable.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/converters/Queryable.html
@@ -20,86 +20,54 @@
<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
<span class="sourceLineNo">013</span>package org.apache.juneau.rest.converters;<a name="line.13"></a>
<span class="sourceLineNo">014</span><a name="line.14"></a>
-<span class="sourceLineNo">015</span>import static javax.servlet.http.HttpServletResponse.*;<a name="line.15"></a>
-<span class="sourceLineNo">016</span><a name="line.16"></a>
-<span class="sourceLineNo">017</span>import java.util.*;<a name="line.17"></a>
+<span class="sourceLineNo">015</span>import org.apache.juneau.*;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.juneau.rest.*;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.juneau.utils.*;<a name="line.17"></a>
<span class="sourceLineNo">018</span><a name="line.18"></a>
-<span class="sourceLineNo">019</span>import org.apache.juneau.*;<a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.juneau.parser.*;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.juneau.rest.*;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.juneau.serializer.*;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.juneau.utils.*;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
-<span class="sourceLineNo">026</span> * Converter for enablement of {@link PojoQuery} support on response objects returned by a <code>@RestMethod</code> method.<a name="line.26"></a>
-<span class="sourceLineNo">027</span> * <p><a name="line.27"></a>
-<span class="sourceLineNo">028</span> * When enabled, objects in a POJO tree can be filtered using the functionality described in the {@link PojoQuery}<a name="line.28"></a>
-<span class="sourceLineNo">029</span> * class.<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * <p><a name="line.30"></a>
-<span class="sourceLineNo">031</span> * The following HTTP request parameters are available for tabular data (e.g. {@code Collections} of {@code Maps}, arrays of beans, etc...):<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * <ul class='spaced-list'><a name="line.32"></a>
-<span class="sourceLineNo">033</span> * <li><b>&amp;q=<i>JSON-object</i></b> - Query parameter. Only return rows that match the specified search string. <br><a name="line.33"></a>
-<span class="sourceLineNo">034</span> * The JSON object keys are column names, and the values are search parameter strings.<br><a name="line.34"></a>
-<span class="sourceLineNo">035</span> * Example: <code>&amp;s=(name=Bill*,birthDate=&gt;2000)</code><a name="line.35"></a>
-<span class="sourceLineNo">036</span> * <li><b>&amp;v=<i>JSON-array or comma-delimited list</i></b> - View parameter. Only return the specified columns.<br><a name="line.36"></a>
-<span class="sourceLineNo">037</span> * Example: <code>&amp;v=(name,birthDate)</code><a name="line.37"></a>
-<span class="sourceLineNo">038</span> * <li><b>&amp;s=<i>JSON-object</i></b> - Sort parameter. Sort the results by the specified columns.<br><a name="line.38"></a>
-<span class="sourceLineNo">039</span> * The JSON object keys are the column names, and the values are either {@code 'A'} for ascending or {@code 'D'} for descending.<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * Example: <code>&amp;s=(name=A,birthDate=D)</code><a name="line.40"></a>
-<span class="sourceLineNo">041</span> * <li><b>&amp;i=<i>true/false</i></b> - Case-insensitive parameter. Specify <jk>true</jk> for case-insensitive matching on the {@code &amp;q} parameter.<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * <li><b>&amp;p=<i>number</i></b> - Position parameter. Only return rows starting at the specified index position (zero-indexed). Default is {@code 0}.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * <li><b>&amp;q=<i>number</i></b> - Limit parameter. Only return the specified number of rows. Default is {@code 0} (meaning return all rows).<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * </ul><a name="line.44"></a>
-<span class="sourceLineNo">045</span> *<a name="line.45"></a>
-<span class="sourceLineNo">046</span> * <p><a name="line.46"></a>
-<span class="sourceLineNo">047</span> * The <b>&amp;v</b> parameter can also be used on {@code Maps} and beans.<a name="line.47"></a>
-<span class="sourceLineNo">048</span> *<a name="line.48"></a>
-<span class="sourceLineNo">049</span> * <p><a name="line.49"></a>
-<span class="sourceLineNo">050</span> * See {@link PojoQuery} for additional information on filtering POJO models.<a name="line.50"></a>
-<span class="sourceLineNo">051</span> */<a name="line.51"></a>
-<span class="sourceLineNo">052</span>public final class Queryable implements RestConverter {<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span> @Override /* RestConverter */<a name="line.54"></a>
-<span class="sourceLineNo">055</span> @SuppressWarnings({ "unchecked", "rawtypes" })<a name="line.55"></a>
-<span class="sourceLineNo">056</span> public Object convert(RestRequest req, Object o, ClassMeta cm) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span> if (o == null)<a name="line.57"></a>
-<span class="sourceLineNo">058</span> return null;<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span> try {<a name="line.60"></a>
-<span class="sourceLineNo">061</span> RequestQuery q = req.getQuery();<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span> // If no actual filtering parameters have been passed in, and there is no map augmenter specified,<a name="line.63"></a>
-<span class="sourceLineNo">064</span> // then just pass the original object back.<a name="line.64"></a>
-<span class="sourceLineNo">065</span> if (q.containsAnyKeys("q","v","s","g","i","p","l")) {<a name="line.65"></a>
-<span class="sourceLineNo">066</span> BeanSession session = req.getBeanSession();<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span> if (cm.getPojoSwap() != null)<a name="line.68"></a>
-<span class="sourceLineNo">069</span> o = cm.getPojoSwap().swap(session, o);<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span> PojoQuery f = new PojoQuery(o, session);<a name="line.71"></a>
-<span class="sourceLineNo">072</span><a name="line.72"></a>
-<span class="sourceLineNo">073</span> if (o instanceof Collection || o.getClass().isArray()) {<a name="line.73"></a>
-<span class="sourceLineNo">074</span> ObjectMap query = q.get("q", ObjectMap.class);<a name="line.74"></a>
-<span class="sourceLineNo">075</span> List<String> view = q.get("v", List.class, String.class);<a name="line.75"></a>
-<span class="sourceLineNo">076</span> List sort = q.get("s", List.class, String.class);<a name="line.76"></a>
-<span class="sourceLineNo">077</span> boolean ignoreCase = q.get("i", false, Boolean.class);<a name="line.77"></a>
-<span class="sourceLineNo">078</span> int pos = q.get("p", 0, Integer.class);<a name="line.78"></a>
-<span class="sourceLineNo">079</span> int limit = q.get("l", 0, Integer.class);<a name="line.79"></a>
-<span class="sourceLineNo">080</span> o = f.filterCollection(query, view, sort, pos, limit, ignoreCase);<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span> } else {<a name="line.82"></a>
-<span class="sourceLineNo">083</span> List<String> view = q.get("v", List.class, String.class);<a name="line.83"></a>
-<span class="sourceLineNo">084</span> o = f.filterMap(view);<a name="line.84"></a>
-<span class="sourceLineNo">085</span> }<a name="line.85"></a>
-<span class="sourceLineNo">086</span> }<a name="line.86"></a>
-<span class="sourceLineNo">087</span> return o;<a name="line.87"></a>
-<span class="sourceLineNo">088</span> } catch (SerializeException e) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span> throw new RestException(SC_BAD_REQUEST, e);<a name="line.89"></a>
-<span class="sourceLineNo">090</span> } catch (ParseException e) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span> throw new RestException(SC_BAD_REQUEST, e);<a name="line.91"></a>
-<span class="sourceLineNo">092</span> }<a name="line.92"></a>
-<span class="sourceLineNo">093</span> }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>}<a name="line.94"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Converter for enablement of {@link PojoQuery} support on response objects returned by a <code>@RestMethod</code> method.<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * <p><a name="line.21"></a>
+<span class="sourceLineNo">022</span> * When enabled, objects in a POJO tree can be filtered using the functionality described in the {@link PojoQuery}<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * class.<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * <p><a name="line.24"></a>
+<span class="sourceLineNo">025</span> * The following HTTP request parameters are available for tabular data (e.g. {@code Collections} of {@code Maps}, arrays of beans, etc...):<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * <ul class='spaced-list'><a name="line.26"></a>
+<span class="sourceLineNo">027</span> * <li><code>&amp;s=</code> Search arguments.<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * <br>Comma-delimited list of key/value pairs representing column names and search tokens.<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * <br>Example: <js>"&amp;s=name=Bill*,birthDate&gt;2000"</js><a name="line.29"></a>
+<span class="sourceLineNo">030</span> * <li><code>&amp;v=</code> Visible columns.<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * <br>Comma-delimited list of column names to display.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * <br>Example: <js>"&amp;v=name,birthDate"</js><a name="line.32"></a>
+<span class="sourceLineNo">033</span> * <li><code>&amp;o=</code> Sort commands.<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * <br>Comma-delimited list of columns to sort by.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * <br>The default is ascending order.<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * <br>Example: <js>"&amp;o=name,birthDate-"</js><a name="line.37"></a>
+<span class="sourceLineNo">038</span> * <li><code>&amp;i=</code> Case-insensitive parameter.<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * <br>Boolean flag for case-insensitive matching on the search parameters.<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * <li><code>&amp;p=</code> - Position parameter.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * <br>Only return rows starting at the specified index position (zero-indexed).<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * <br>Default is {@code 0}.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * <li><code>&amp;l=</code> Limit parameter.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> * <br>Only return the specified number of rows.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * <br>Default is {@code 0} (meaning return all rows).<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * </ul><a name="line.46"></a>
+<span class="sourceLineNo">047</span> *<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * <p><a name="line.48"></a>
+<span class="sourceLineNo">049</span> * See {@link PojoQuery} for additional information on filtering POJO models.<a name="line.49"></a>
+<span class="sourceLineNo">050</span> */<a name="line.50"></a>
+<span class="sourceLineNo">051</span>public final class Queryable implements RestConverter {<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span> @Override /* RestConverter */<a name="line.53"></a>
+<span class="sourceLineNo">054</span> public Object convert(RestRequest req, Object o, ClassMeta<?> cm) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span> if (o == null)<a name="line.55"></a>
+<span class="sourceLineNo">056</span> return null;<a name="line.56"></a>
+<span class="sourceLineNo">057</span> SearchArgs searchArgs = req.getQuery().getSearchArgs();<a name="line.57"></a>
+<span class="sourceLineNo">058</span> if (searchArgs == null)<a name="line.58"></a>
+<span class="sourceLineNo">059</span> return o;<a name="line.59"></a>
+<span class="sourceLineNo">060</span> return new PojoQuery(o, req.getBeanSession()).filter(searchArgs);<a name="line.60"></a>
+<span class="sourceLineNo">061</span> }<a name="line.61"></a>
+<span class="sourceLineNo">062</span>}<a name="line.62"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/response/DefaultHandler.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/response/DefaultHandler.html b/content/site/apidocs/src-html/org/apache/juneau/rest/response/DefaultHandler.html
index dfc897c..4159aa3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/response/DefaultHandler.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/response/DefaultHandler.html
@@ -46,7 +46,7 @@
<span class="sourceLineNo">038</span> @Override /* ResponseHandler */<a name="line.38"></a>
<span class="sourceLineNo">039</span> public boolean handle(RestRequest req, RestResponse res, Object output) throws IOException, RestException {<a name="line.39"></a>
<span class="sourceLineNo">040</span> SerializerGroup g = res.getSerializerGroup();<a name="line.40"></a>
-<span class="sourceLineNo">041</span> String accept = req.getHeaders().getFirst("Accept", "");<a name="line.41"></a>
+<span class="sourceLineNo">041</span> String accept = req.getHeaders().getString("Accept", "");<a name="line.41"></a>
<span class="sourceLineNo">042</span> SerializerMatch sm = g.getSerializerMatch(accept);<a name="line.42"></a>
<span class="sourceLineNo">043</span> if (sm != null) {<a name="line.43"></a>
<span class="sourceLineNo">044</span> Serializer s = sm.getSerializer();<a name="line.44"></a>
@@ -95,7 +95,7 @@
<span class="sourceLineNo">087</span> } else {<a name="line.87"></a>
<span class="sourceLineNo">088</span> throw new RestException(SC_NOT_ACCEPTABLE,<a name="line.88"></a>
<span class="sourceLineNo">089</span> "Unsupported media-type in request header ''Accept'': ''{0}''\n\tSupported media-types: {1}",<a name="line.89"></a>
-<span class="sourceLineNo">090</span> req.getHeaders().getFirst("Accept", ""), g.getSupportedMediaTypes()<a name="line.90"></a>
+<span class="sourceLineNo">090</span> req.getHeaders().getString("Accept", ""), g.getSupportedMediaTypes()<a name="line.90"></a>
<span class="sourceLineNo">091</span> );<a name="line.91"></a>
<span class="sourceLineNo">092</span> }<a name="line.92"></a>
<span class="sourceLineNo">093</span> return true;<a name="line.93"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/vars/RequestVar.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/vars/RequestVar.html b/content/site/apidocs/src-html/org/apache/juneau/rest/vars/RequestVar.html
index b432f34..7020aef 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/vars/RequestVar.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/vars/RequestVar.html
@@ -80,9 +80,9 @@
<span class="sourceLineNo">072</span> if ("path".equals(prefix))<a name="line.72"></a>
<span class="sourceLineNo">073</span> return req.getPathMatch().get(remainder);<a name="line.73"></a>
<span class="sourceLineNo">074</span> if ("query".equals(prefix))<a name="line.74"></a>
-<span class="sourceLineNo">075</span> return req.getQuery().getFirst(remainder);<a name="line.75"></a>
+<span class="sourceLineNo">075</span> return req.getQuery().getString(remainder);<a name="line.75"></a>
<span class="sourceLineNo">076</span> if ("formData".equals(prefix))<a name="line.76"></a>
-<span class="sourceLineNo">077</span> return req.getFormData().getFirst(remainder);<a name="line.77"></a>
+<span class="sourceLineNo">077</span> return req.getFormData().getString(remainder);<a name="line.77"></a>
<span class="sourceLineNo">078</span> if ("header".equals(prefix))<a name="line.78"></a>
<span class="sourceLineNo">079</span> return req.getHeader(remainder);<a name="line.79"></a>
<span class="sourceLineNo">080</span> if ("attribute".equals(prefix))<a name="line.80"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/widget/QueryWidget.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/widget/QueryWidget.html b/content/site/apidocs/src-html/org/apache/juneau/rest/widget/QueryWidget.html
new file mode 100644
index 0000000..a831c30
--- /dev/null
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/widget/QueryWidget.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../javadoc.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>// ***************************************************************************************************************************<a name="line.1"></a>
+<span class="sourceLineNo">002</span>// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *<a name="line.2"></a>
+<span class="sourceLineNo">003</span>// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *<a name="line.3"></a>
+<span class="sourceLineNo">004</span>// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance *<a name="line.4"></a>
+<span class="sourceLineNo">005</span>// * with the License. You may obtain a copy of the License at *<a name="line.5"></a>
+<span class="sourceLineNo">006</span>// * *<a name="line.6"></a>
+<span class="sourceLineNo">007</span>// * http://www.apache.org/licenses/LICENSE-2.0 *<a name="line.7"></a>
+<span class="sourceLineNo">008</span>// * *<a name="line.8"></a>
+<span class="sourceLineNo">009</span>// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an *<a name="line.9"></a>
+<span class="sourceLineNo">010</span>// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the *<a name="line.10"></a>
+<span class="sourceLineNo">011</span>// * specific language governing permissions and limitations under the License. *<a name="line.11"></a>
+<span class="sourceLineNo">012</span>// ***************************************************************************************************************************<a name="line.12"></a>
+<span class="sourceLineNo">013</span>package org.apache.juneau.rest.widget;<a name="line.13"></a>
+<span class="sourceLineNo">014</span><a name="line.14"></a>
+<span class="sourceLineNo">015</span>import org.apache.juneau.internal.*;<a name="line.15"></a>
+<span class="sourceLineNo">016</span>import org.apache.juneau.rest.*;<a name="line.16"></a>
+<span class="sourceLineNo">017</span>import org.apache.juneau.rest.converters.*;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Adds a <code>QUERY</code> link to the page that allows you to perform search/view/sort/paging on the page data.<a name="line.20"></a>
+<span class="sourceLineNo">021</span> * <p><a name="line.21"></a>
+<span class="sourceLineNo">022</span> * A typical usage of the query widget is to include it as a navigation link as shown in the example below<a name="line.22"></a>
+<span class="sourceLineNo">023</span> * pulled from the <code>PetStoreResource</code> example:<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * <p class='bcode'><a name="line.24"></a>
+<span class="sourceLineNo">025</span> * <ja>@RestResource</ja>(<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * widgets={<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * QueryWidget.<jk>class</jk><a name="line.27"></a>
+<span class="sourceLineNo">028</span> * },<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * links=<js>"{up:'...',options:'...',query:'$W{query}',source:'...'}"</js><a name="line.30"></a>
+<span class="sourceLineNo">031</span> * )<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * )<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * </p><a name="line.33"></a>
+<span class="sourceLineNo">034</span> * <p><a name="line.34"></a>
+<span class="sourceLineNo">035</span> * In the above example, this adds a <code>QUERY</code> that displays a search popup that can be used for<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * filtering the page results...<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * <p><a name="line.37"></a>
+<span class="sourceLineNo">038</span> * <img class='bordered' src='doc-files/PetStore_Query.png'><a name="line.38"></a>
+<span class="sourceLineNo">039</span> * <p><a name="line.39"></a>
+<span class="sourceLineNo">040</span> * Tooltips are provided by hovering over the field names.<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * <p><a name="line.41"></a>
+<span class="sourceLineNo">042</span> * <img class='bordered' src='doc-files/PetStore_Query_tooltip.png'><a name="line.42"></a>
+<span class="sourceLineNo">043</span> * <p><a name="line.43"></a>
+<span class="sourceLineNo">044</span> * When submitted, the form submits a GET request against the current URI with special GET search API query parameters.<a name="line.44"></a>
+<span class="sourceLineNo">045</span> * (e.g. <js>"?s=column1=Foo*&amp;v=column1,column2&amp;o=column1,column2-&amp;p=100&amp;l=100"</js>).<a name="line.45"></a>
+<span class="sourceLineNo">046</span> * <p><a name="line.46"></a>
+<span class="sourceLineNo">047</span> * The search arguments can be retrieved programmatically using {@link RequestQuery#getSearchArgs()}.<a name="line.47"></a>
+<span class="sourceLineNo">048</span> * <p><a name="line.48"></a>
+<span class="sourceLineNo">049</span> * Typically, the search functionality is implemented by applying the predefined {@link Queryable} converter on the<a name="line.49"></a>
+<span class="sourceLineNo">050</span> * method that's returning a 2-dimensional table of POJOs that you wish to filter:<a name="line.50"></a>
+<span class="sourceLineNo">051</span> * <p class='bcode'><a name="line.51"></a>
+<span class="sourceLineNo">052</span> * <ja>@RestMethod</ja>(<a name="line.52"></a>
+<span class="sourceLineNo">053</span> * name=<js>"GET"</js>,<a name="line.53"></a>
+<span class="sourceLineNo">054</span> * path=<js>"/"</js>,<a name="line.54"></a>
+<span class="sourceLineNo">055</span> * converters=Queryable.<jk>class</jk><a name="line.55"></a>
+<span class="sourceLineNo">056</span> * )<a name="line.56"></a>
+<span class="sourceLineNo">057</span> * <jk>public</jk> Collection&lt;Pet&gt; getPets() {<a name="line.57"></a>
+<span class="sourceLineNo">058</span> * </p><a name="line.58"></a>
+<span class="sourceLineNo">059</span> * <p><a name="line.59"></a>
+<span class="sourceLineNo">060</span> * The following shows various search arguments and their results on the page:<a name="line.60"></a>
+<span class="sourceLineNo">061</span> * <table style='width:auto'><a name="line.61"></a>
+<span class="sourceLineNo">062</span> * <tr><a name="line.62"></a>
+<span class="sourceLineNo">063</span> * <th>Search type</th><th>Query arguments</th><th>Query results</th><a name="line.63"></a>
+<span class="sourceLineNo">064</span> * </tr><a name="line.64"></a>
+<span class="sourceLineNo">065</span> * <tr><a name="line.65"></a>
+<span class="sourceLineNo">066</span> * <td>No arguments</td><a name="line.66"></a>
+<span class="sourceLineNo">067</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q1.png'></td><a name="line.67"></a>
+<span class="sourceLineNo">068</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r1.png'></td><a name="line.68"></a>
+<span class="sourceLineNo">069</span> * </tr><a name="line.69"></a>
+<span class="sourceLineNo">070</span> * <tr><a name="line.70"></a>
+<span class="sourceLineNo">071</span> * <td>String search</td><a name="line.71"></a>
+<span class="sourceLineNo">072</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q2.png'></td><a name="line.72"></a>
+<span class="sourceLineNo">073</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r2.png'></td><a name="line.73"></a>
+<span class="sourceLineNo">074</span> * </tr><a name="line.74"></a>
+<span class="sourceLineNo">075</span> * <tr><a name="line.75"></a>
+<span class="sourceLineNo">076</span> * <td>Numeric range</td><a name="line.76"></a>
+<span class="sourceLineNo">077</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q3.png'></td><a name="line.77"></a>
+<span class="sourceLineNo">078</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r3.png'></td><a name="line.78"></a>
+<span class="sourceLineNo">079</span> * </tr><a name="line.79"></a>
+<span class="sourceLineNo">080</span> * <tr><a name="line.80"></a>
+<span class="sourceLineNo">081</span> * <td>ANDed terms</td><a name="line.81"></a>
+<span class="sourceLineNo">082</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q4.png'></td><a name="line.82"></a>
+<span class="sourceLineNo">083</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r4.png'></td><a name="line.83"></a>
+<span class="sourceLineNo">084</span> * </tr><a name="line.84"></a>
+<span class="sourceLineNo">085</span> * <tr><a name="line.85"></a>
+<span class="sourceLineNo">086</span> * <td>Date range (entire year)</td><a name="line.86"></a>
+<span class="sourceLineNo">087</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q8.png'></td><a name="line.87"></a>
+<span class="sourceLineNo">088</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r8.png'></td><a name="line.88"></a>
+<span class="sourceLineNo">089</span> * </tr><a name="line.89"></a>
+<span class="sourceLineNo">090</span> * <tr><a name="line.90"></a>
+<span class="sourceLineNo">091</span> * <td>Date range</td><a name="line.91"></a>
+<span class="sourceLineNo">092</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q9.png'></td><a name="line.92"></a>
+<span class="sourceLineNo">093</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r9.png'></td><a name="line.93"></a>
+<span class="sourceLineNo">094</span> * </tr><a name="line.94"></a>
+<span class="sourceLineNo">095</span> * <tr><a name="line.95"></a>
+<span class="sourceLineNo">096</span> * <td>Date range</td><a name="line.96"></a>
+<span class="sourceLineNo">097</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q10.png'></td><a name="line.97"></a>
+<span class="sourceLineNo">098</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r10.png'></td><a name="line.98"></a>
+<span class="sourceLineNo">099</span> * </tr><a name="line.99"></a>
+<span class="sourceLineNo">100</span> * <tr><a name="line.100"></a>
+<span class="sourceLineNo">101</span> * <td>Hide columns</td><a name="line.101"></a>
+<span class="sourceLineNo">102</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q5.png'></td><a name="line.102"></a>
+<span class="sourceLineNo">103</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r5.png'></td><a name="line.103"></a>
+<span class="sourceLineNo">104</span> * </tr><a name="line.104"></a>
+<span class="sourceLineNo">105</span> * <tr><a name="line.105"></a>
+<span class="sourceLineNo">106</span> * <td>Sort</td><a name="line.106"></a>
+<span class="sourceLineNo">107</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q6.png'></td><a name="line.107"></a>
+<span class="sourceLineNo">108</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r6.png'></td><a name="line.108"></a>
+<span class="sourceLineNo">109</span> * </tr><a name="line.109"></a>
+<span class="sourceLineNo">110</span> * <tr><a name="line.110"></a>
+<span class="sourceLineNo">111</span> * <td>Sort descending</td><a name="line.111"></a>
+<span class="sourceLineNo">112</span> * <td><img class='bordered' src='doc-files/PetStore_Query_q7.png'></td><a name="line.112"></a>
+<span class="sourceLineNo">113</span> * <td><img class='bordered' src='doc-files/PetStore_Query_r7.png'></td><a name="line.113"></a>
+<span class="sourceLineNo">114</span> * </tr><a name="line.114"></a>
+<span class="sourceLineNo">115</span> * </table><a name="line.115"></a>
+<span class="sourceLineNo">116</span> *<a name="line.116"></a>
+<span class="sourceLineNo">117</span> */<a name="line.117"></a>
+<span class="sourceLineNo">118</span>public class QueryWidget extends Widget {<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span> @Override<a name="line.120"></a>
+<span class="sourceLineNo">121</span> public String getName() {<a name="line.121"></a>
+<span class="sourceLineNo">122</span> return "query";<a name="line.122"></a>
+<span class="sourceLineNo">123</span> }<a name="line.123"></a>
+<span class="sourceLineNo">124</span><a name="line.124"></a>
+<span class="sourceLineNo">125</span> @Override /* Widget */<a name="line.125"></a>
+<span class="sourceLineNo">126</span> public String resolve(RestRequest req) throws Exception {<a name="line.126"></a>
+<span class="sourceLineNo">127</span> // Note we're stripping off the license header.<a name="line.127"></a>
+<span class="sourceLineNo">128</span> return IOUtils.read(getClass().getResourceAsStream("QueryWidget.html")).replaceFirst("(?s)<!--(.*?)-->\\s*", "");<a name="line.128"></a>
+<span class="sourceLineNo">129</span> }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>}<a name="line.130"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
index 1a8a2d4..88331a3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/serializer/SerializerGroup.html
@@ -76,143 +76,154 @@
<span class="sourceLineNo">068</span> private final Serializer[] mediaTypeSerializers;<a name="line.68"></a>
<span class="sourceLineNo">069</span> private final List<Serializer> serializers;<a name="line.69"></a>
<span class="sourceLineNo">070</span> private final PropertyStore propertyStore;<a name="line.70"></a>
-<span class="sourceLineNo">071</span><a name="line.71"></a>
-<span class="sourceLineNo">072</span> /**<a name="line.72"></a>
-<span class="sourceLineNo">073</span> * Constructor.<a name="line.73"></a>
-<span class="sourceLineNo">074</span> *<a name="line.74"></a>
-<span class="sourceLineNo">075</span> * @param propertyStore The modifiable properties that were used to initialize the serializers.<a name="line.75"></a>
-<span class="sourceLineNo">076</span> * A snapshot of these will be made so that we can clone and modify this group.<a name="line.76"></a>
-<span class="sourceLineNo">077</span> * @param serializers The serializers defined in this group.<a name="line.77"></a>
-<span class="sourceLineNo">078</span> * The order is important because they will be tried in reverse order (e.g.<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * newer first) in which they will be tried to match against media types.<a name="line.79"></a>
-<span class="sourceLineNo">080</span> */<a name="line.80"></a>
-<span class="sourceLineNo">081</span> public SerializerGroup(PropertyStore propertyStore, Serializer[] serializers) {<a name="line.81"></a>
-<span class="sourceLineNo">082</span> this.propertyStore = PropertyStore.create(propertyStore);<a name="line.82"></a>
-<span class="sourceLineNo">083</span> this.serializers = Collections.unmodifiableList(new ArrayList<Serializer>(Arrays.asList(serializers)));<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span> List<MediaType> lmt = new ArrayList<MediaType>();<a name="line.85"></a>
-<span class="sourceLineNo">086</span> List<Serializer> l = new ArrayList<Serializer>();<a name="line.86"></a>
-<span class="sourceLineNo">087</span> for (Serializer s : serializers) {<a name="line.87"></a>
-<span class="sourceLineNo">088</span> for (MediaType m: s.getMediaTypes()) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span> lmt.add(m);<a name="line.89"></a>
-<span class="sourceLineNo">090</span> l.add(s);<a name="line.90"></a>
-<span class="sourceLineNo">091</span> }<a name="line.91"></a>
-<span class="sourceLineNo">092</span> }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span> this.mediaTypes = lmt.toArray(new MediaType[lmt.size()]);<a name="line.94"></a>
-<span class="sourceLineNo">095</span> this.mediaTypesList = Collections.unmodifiableList(lmt);<a name="line.95"></a>
-<span class="sourceLineNo">096</span> this.mediaTypeSerializers = l.toArray(new Serializer[l.size()]);<a name="line.96"></a>
-<span class="sourceLineNo">097</span> }<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span> /**<a name="line.99"></a>
-<span class="sourceLineNo">100</span> * Searches the group for a serializer that can handle the specified <code>Accept</code> value.<a name="line.100"></a>
-<span class="sourceLineNo">101</span> * <p><a name="line.101"></a>
-<span class="sourceLineNo">102</span> * The <code>accept</code> value complies with the syntax described in RFC2616, Section 14.1, as described below:<a name="line.102"></a>
-<span class="sourceLineNo">103</span> * <p class='bcode'><a name="line.103"></a>
-<span class="sourceLineNo">104</span> * Accept = "Accept" ":"<a name="line.104"></a>
-<span class="sourceLineNo">105</span> * #( media-range [ accept-params ] )<a name="line.105"></a>
-<span class="sourceLineNo">106</span> *<a name="line.106"></a>
-<span class="sourceLineNo">107</span> * media-range = ( "*\/*"<a name="line.107"></a>
-<span class="sourceLineNo">108</span> * | ( type "/" "*" )<a name="line.108"></a>
-<span class="sourceLineNo">109</span> * | ( type "/" subtype )<a name="line.109"></a>
-<span class="sourceLineNo">110</span> * ) *( ";" parameter )<a name="line.110"></a>
-<span class="sourceLineNo">111</span> * accept-params = ";" "q" "=" qvalue *( accept-extension )<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * accept-extension = ";" token [ "=" ( token | quoted-string ) ]<a name="line.112"></a>
-<span class="sourceLineNo">113</span> * </p><a name="line.113"></a>
-<span class="sourceLineNo">114</span> * <p><a name="line.114"></a>
-<span class="sourceLineNo">115</span> * The general idea behind having the serializer resolution be a two-step process is so that<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * the matched media type can be passed in to the {@link WriterSerializer#doSerialize(SerializerSession, Object)} method.<a name="line.116"></a>
-<span class="sourceLineNo">117</span> * For example...<a name="line.117"></a>
-<span class="sourceLineNo">118</span> * <p class='bcode'><a name="line.118"></a>
-<span class="sourceLineNo">119</span> * String acceptHeaderValue = request.getHeader(<js>"Accept"</js>);<a name="line.119"></a>
-<span class="sourceLineNo">120</span> * String matchingMediaType = group.findMatch(acceptHeaderValue);<a name="line.120"></a>
-<span class="sourceLineNo">121</span> * if (matchingMediaType == <jk>null</jk>)<a name="line.121"></a>
-<span class="sourceLineNo">122</span> * <jk>throw new</jk> RestException(<jsf>SC_NOT_ACCEPTABLE</jsf>);<a name="line.122"></a>
-<span class="sourceLineNo">123</span> * WriterSerializer s = (WriterSerializer)group.getSerializer(matchingMediaType);<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * s.serialize(getPojo(), response.getWriter(), response.getProperties(), matchingMediaType);<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * </p><a name="line.125"></a>
-<span class="sourceLineNo">126</span> *<a name="line.126"></a>
-<span class="sourceLineNo">127</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.127"></a>
-<span class="sourceLineNo">128</span> * @return The serializer and media type that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.128"></a>
-<span class="sourceLineNo">129</span> */<a name="line.129"></a>
-<span class="sourceLineNo">130</span> public SerializerMatch getSerializerMatch(String acceptHeader) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span> SerializerMatch sm = cache.get(acceptHeader);<a name="line.131"></a>
-<span class="sourceLineNo">132</span> if (sm != null)<a name="line.132"></a>
-<span class="sourceLineNo">133</span> return sm;<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> Accept a = Accept.forString(acceptHeader);<a name="line.135"></a>
-<span class="sourceLineNo">136</span> int match = a.findMatch(mediaTypes);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> if (match >= 0) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span> sm = new SerializerMatch(mediaTypes[match], mediaTypeSerializers[match]);<a name="line.138"></a>
-<span class="sourceLineNo">139</span> cache.putIfAbsent(acceptHeader, sm);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> return cache.get(acceptHeader);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span> /**<a name="line.145"></a>
-<span class="sourceLineNo">146</span> * Same as {@link #getSerializerMatch(String)} but matches using a {@link MediaType} instance.<a name="line.146"></a>
-<span class="sourceLineNo">147</span> *<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * @param mediaType The HTTP media type.<a name="line.148"></a>
-<span class="sourceLineNo">149</span> * @return The serializer and media type that matched the media type, or <jk>null</jk> if no match was made.<a name="line.149"></a>
-<span class="sourceLineNo">150</span> */<a name="line.150"></a>
-<span class="sourceLineNo">151</span> public SerializerMatch getSerializerMatch(MediaType mediaType) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span> return getSerializerMatch(mediaType.toString());<a name="line.152"></a>
-<span class="sourceLineNo">153</span> }<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span> /**<a name="line.155"></a>
-<span class="sourceLineNo">156</span> * Same as {@link #getSerializerMatch(String)} but returns just the matched serializer.<a name="line.156"></a>
-<span class="sourceLineNo">157</span> *<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.159"></a>
-<span class="sourceLineNo">160</span> */<a name="line.160"></a>
-<span class="sourceLineNo">161</span> public Serializer getSerializer(String acceptHeader) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span> SerializerMatch sm = getSerializerMatch(acceptHeader);<a name="line.162"></a>
-<span class="sourceLineNo">163</span> return sm == null ? null : sm.getSerializer();<a name="line.163"></a>
-<span class="sourceLineNo">164</span> }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span> /**<a name="line.166"></a>
-<span class="sourceLineNo">167</span> * Same as {@link #getSerializerMatch(MediaType)} but returns just the matched serializer.<a name="line.167"></a>
-<span class="sourceLineNo">168</span> *<a name="line.168"></a>
-<span class="sourceLineNo">169</span> * @param mediaType The HTTP media type.<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.170"></a>
-<span class="sourceLineNo">171</span> */<a name="line.171"></a>
-<span class="sourceLineNo">172</span> public Serializer getSerializer(MediaType mediaType) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span> if (mediaType == null)<a name="line.173"></a>
-<span class="sourceLineNo">174</span> return null;<a name="line.174"></a>
-<span class="sourceLineNo">175</span> return getSerializer(mediaType.toString());<a name="line.175"></a>
-<span class="sourceLineNo">176</span> }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span> /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span> * Returns the media types that all serializers in this group can handle.<a name="line.179"></a>
-<span class="sourceLineNo">180</span> * <p><a name="line.180"></a>
-<span class="sourceLineNo">181</span> * Entries are ordered in the same order as the serializers in the group.<a name="line.181"></a>
-<span class="sourceLineNo">182</span> *<a name="line.182"></a>
-<span class="sourceLineNo">183</span> * @return An unmodifiable list of media types.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span> public List<MediaType> getSupportedMediaTypes() {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return mediaTypesList;<a name="line.186"></a>
-<span class="sourceLineNo">187</span> }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span> /**<a name="line.189"></a>
-<span class="sourceLineNo">190</span> * Returns a copy of the property store that was used to create the serializers in this group.<a name="line.190"></a>
-<span class="sourceLineNo">191</span> * This method returns a new factory each time so is somewhat expensive.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> *<a name="line.192"></a>
-<span class="sourceLineNo">193</span> * @return A new copy of the property store passed in to the constructor.<a name="line.193"></a>
-<span class="sourceLineNo">194</span> */<a name="line.194"></a>
-<span class="sourceLineNo">195</span> public PropertyStore createPropertyStore() {<a name="line.195"></a>
-<span class="sourceLineNo">196</span> return PropertyStore.create(propertyStore);<a name="line.196"></a>
-<span class="sourceLineNo">197</span> }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span> /**<a name="line.199"></a>
-<span class="sourceLineNo">200</span> * Returns a copy of the serializers in this group.<a name="line.200"></a>
-<span class="sourceLineNo">201</span> *<a name="line.201"></a>
-<span class="sourceLineNo">202</span> * @return An unmodifiable list of serializers in this group.<a name="line.202"></a>
-<span class="sourceLineNo">203</span> */<a name="line.203"></a>
-<span class="sourceLineNo">204</span> public List<Serializer> getSerializers() {<a name="line.204"></a>
-<span class="sourceLineNo">205</span> return serializers;<a name="line.205"></a>
-<span class="sourceLineNo">206</span> }<a name="line.206"></a>
-<span class="sourceLineNo">207</span>}<a name="line.207"></a>
+<span class="sourceLineNo">071</span> private final BeanContext beanContext;<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span> /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span> * Constructor.<a name="line.74"></a>
+<span class="sourceLineNo">075</span> *<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * @param propertyStore The modifiable properties that were used to initialize the serializers.<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * A snapshot of these will be made so that we can clone and modify this group.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * @param serializers The serializers defined in this group.<a name="line.78"></a>
+<span class="sourceLineNo">079</span> * The order is important because they will be tried in reverse order (e.g.<a name="line.79"></a>
+<span class="sourceLineNo">080</span> * newer first) in which they will be tried to match against media types.<a name="line.80"></a>
+<span class="sourceLineNo">081</span> */<a name="line.81"></a>
+<span class="sourceLineNo">082</span> public SerializerGroup(PropertyStore propertyStore, Serializer[] serializers) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span> this.propertyStore = PropertyStore.create(propertyStore);<a name="line.83"></a>
+<span class="sourceLineNo">084</span> this.beanContext = propertyStore.getBeanContext();<a name="line.84"></a>
+<span class="sourceLineNo">085</span> this.serializers = Collections.unmodifiableList(new ArrayList<Serializer>(Arrays.asList(serializers)));<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span> List<MediaType> lmt = new ArrayList<MediaType>();<a name="line.87"></a>
+<span class="sourceLineNo">088</span> List<Serializer> l = new ArrayList<Serializer>();<a name="line.88"></a>
+<span class="sourceLineNo">089</span> for (Serializer s : serializers) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span> for (MediaType m: s.getMediaTypes()) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span> lmt.add(m);<a name="line.91"></a>
+<span class="sourceLineNo">092</span> l.add(s);<a name="line.92"></a>
+<span class="sourceLineNo">093</span> }<a name="line.93"></a>
+<span class="sourceLineNo">094</span> }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span> this.mediaTypes = lmt.toArray(new MediaType[lmt.size()]);<a name="line.96"></a>
+<span class="sourceLineNo">097</span> this.mediaTypesList = Collections.unmodifiableList(lmt);<a name="line.97"></a>
+<span class="sourceLineNo">098</span> this.mediaTypeSerializers = l.toArray(new Serializer[l.size()]);<a name="line.98"></a>
+<span class="sourceLineNo">099</span> }<a name="line.99"></a>
+<span class="sourceLineNo">100</span><a name="line.100"></a>
+<span class="sourceLineNo">101</span> /**<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * Searches the group for a serializer that can handle the specified <code>Accept</code> value.<a name="line.102"></a>
+<span class="sourceLineNo">103</span> * <p><a name="line.103"></a>
+<span class="sourceLineNo">104</span> * The <code>accept</code> value complies with the syntax described in RFC2616, Section 14.1, as described below:<a name="line.104"></a>
+<span class="sourceLineNo">105</span> * <p class='bcode'><a name="line.105"></a>
+<span class="sourceLineNo">106</span> * Accept = "Accept" ":"<a name="line.106"></a>
+<span class="sourceLineNo">107</span> * #( media-range [ accept-params ] )<a name="line.107"></a>
+<span class="sourceLineNo">108</span> *<a name="line.108"></a>
+<span class="sourceLineNo">109</span> * media-range = ( "*\/*"<a name="line.109"></a>
+<span class="sourceLineNo">110</span> * | ( type "/" "*" )<a name="line.110"></a>
+<span class="sourceLineNo">111</span> * | ( type "/" subtype )<a name="line.111"></a>
+<span class="sourceLineNo">112</span> * ) *( ";" parameter )<a name="line.112"></a>
+<span class="sourceLineNo">113</span> * accept-params = ";" "q" "=" qvalue *( accept-extension )<a name="line.113"></a>
+<span class="sourceLineNo">114</span> * accept-extension = ";" token [ "=" ( token | quoted-string ) ]<a name="line.114"></a>
+<span class="sourceLineNo">115</span> * </p><a name="line.115"></a>
+<span class="sourceLineNo">116</span> * <p><a name="line.116"></a>
+<span class="sourceLineNo">117</span> * The general idea behind having the serializer resolution be a two-step process is so that<a name="line.117"></a>
+<span class="sourceLineNo">118</span> * the matched media type can be passed in to the {@link WriterSerializer#doSerialize(SerializerSession, Object)} method.<a name="line.118"></a>
+<span class="sourceLineNo">119</span> * For example...<a name="line.119"></a>
+<span class="sourceLineNo">120</span> * <p class='bcode'><a name="line.120"></a>
+<span class="sourceLineNo">121</span> * String acceptHeaderValue = request.getHeader(<js>"Accept"</js>);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> * String matchingMediaType = group.findMatch(acceptHeaderValue);<a name="line.122"></a>
+<span class="sourceLineNo">123</span> * if (matchingMediaType == <jk>null</jk>)<a name="line.123"></a>
+<span class="sourceLineNo">124</span> * <jk>throw new</jk> RestException(<jsf>SC_NOT_ACCEPTABLE</jsf>);<a name="line.124"></a>
+<span class="sourceLineNo">125</span> * WriterSerializer s = (WriterSerializer)group.getSerializer(matchingMediaType);<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * s.serialize(getPojo(), response.getWriter(), response.getProperties(), matchingMediaType);<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * </p><a name="line.127"></a>
+<span class="sourceLineNo">128</span> *<a name="line.128"></a>
+<span class="sourceLineNo">129</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.129"></a>
+<span class="sourceLineNo">130</span> * @return The serializer and media type that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.130"></a>
+<span class="sourceLineNo">131</span> */<a name="line.131"></a>
+<span class="sourceLineNo">132</span> public SerializerMatch getSerializerMatch(String acceptHeader) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span> SerializerMatch sm = cache.get(acceptHeader);<a name="line.133"></a>
+<span class="sourceLineNo">134</span> if (sm != null)<a name="line.134"></a>
+<span class="sourceLineNo">135</span> return sm;<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span> Accept a = Accept.forString(acceptHeader);<a name="line.137"></a>
+<span class="sourceLineNo">138</span> int match = a.findMatch(mediaTypes);<a name="line.138"></a>
+<span class="sourceLineNo">139</span> if (match >= 0) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span> sm = new SerializerMatch(mediaTypes[match], mediaTypeSerializers[match]);<a name="line.140"></a>
+<span class="sourceLineNo">141</span> cache.putIfAbsent(acceptHeader, sm);<a name="line.141"></a>
+<span class="sourceLineNo">142</span> }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span> return cache.get(acceptHeader);<a name="line.144"></a>
+<span class="sourceLineNo">145</span> }<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span> /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * Same as {@link #getSerializerMatch(String)} but matches using a {@link MediaType} instance.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> *<a name="line.149"></a>
+<span class="sourceLineNo">150</span> * @param mediaType The HTTP media type.<a name="line.150"></a>
+<span class="sourceLineNo">151</span> * @return The serializer and media type that matched the media type, or <jk>null</jk> if no match was made.<a name="line.151"></a>
+<span class="sourceLineNo">152</span> */<a name="line.152"></a>
+<span class="sourceLineNo">153</span> public SerializerMatch getSerializerMatch(MediaType mediaType) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span> return getSerializerMatch(mediaType.toString());<a name="line.154"></a>
+<span class="sourceLineNo">155</span> }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span> /**<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * Same as {@link #getSerializerMatch(String)} but returns just the matched serializer.<a name="line.158"></a>
+<span class="sourceLineNo">159</span> *<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * @param acceptHeader The HTTP <l>Accept</l> header string.<a name="line.160"></a>
+<span class="sourceLineNo">161</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.161"></a>
+<span class="sourceLineNo">162</span> */<a name="line.162"></a>
+<span class="sourceLineNo">163</span> public Serializer getSerializer(String acceptHeader) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span> SerializerMatch sm = getSerializerMatch(acceptHeader);<a name="line.164"></a>
+<span class="sourceLineNo">165</span> return sm == null ? null : sm.getSerializer();<a name="line.165"></a>
+<span class="sourceLineNo">166</span> }<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span> /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * Same as {@link #getSerializerMatch(MediaType)} but returns just the matched serializer.<a name="line.169"></a>
+<span class="sourceLineNo">170</span> *<a name="line.170"></a>
+<span class="sourceLineNo">171</span> * @param mediaType The HTTP media type.<a name="line.171"></a>
+<span class="sourceLineNo">172</span> * @return The serializer that matched the accept header, or <jk>null</jk> if no match was made.<a name="line.172"></a>
+<span class="sourceLineNo">173</span> */<a name="line.173"></a>
+<span class="sourceLineNo">174</span> public Serializer getSerializer(MediaType mediaType) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span> if (mediaType == null)<a name="line.175"></a>
+<span class="sourceLineNo">176</span> return null;<a name="line.176"></a>
+<span class="sourceLineNo">177</span> return getSerializer(mediaType.toString());<a name="line.177"></a>
+<span class="sourceLineNo">178</span> }<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span> /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span> * Returns the media types that all serializers in this group can handle.<a name="line.181"></a>
+<span class="sourceLineNo">182</span> * <p><a name="line.182"></a>
+<span class="sourceLineNo">183</span> * Entries are ordered in the same order as the serializers in the group.<a name="line.183"></a>
+<span class="sourceLineNo">184</span> *<a name="line.184"></a>
+<span class="sourceLineNo">185</span> * @return An unmodifiable list of media types.<a name="line.185"></a>
+<span class="sourceLineNo">186</span> */<a name="line.186"></a>
+<span class="sourceLineNo">187</span> public List<MediaType> getSupportedMediaTypes() {<a name="line.187"></a>
+<span class="sourceLineNo">188</span> return mediaTypesList;<a name="line.188"></a>
+<span class="sourceLineNo">189</span> }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span> /**<a name="line.191"></a>
+<span class="sourceLineNo">192</span> * Returns a copy of the property store that was used to create the serializers in this group.<a name="line.192"></a>
+<span class="sourceLineNo">193</span> * This method returns a new factory each time so is somewhat expensive.<a name="line.193"></a>
+<span class="sourceLineNo">194</span> *<a name="line.194"></a>
+<span class="sourceLineNo">195</span> * @return A new copy of the property store passed in to the constructor.<a name="line.195"></a>
+<span class="sourceLineNo">196</span> */<a name="line.196"></a>
+<span class="sourceLineNo">197</span> public PropertyStore createPropertyStore() {<a name="line.197"></a>
+<span class="sourceLineNo">198</span> return PropertyStore.create(propertyStore);<a name="line.198"></a>
+<span class="sourceLineNo">199</span> }<a name="line.199"></a>
+<span class="sourceLineNo">200</span><a name="line.200"></a>
+<span class="sourceLineNo">201</span> /**<a name="line.201"></a>
+<span class="sourceLineNo">202</span> * Returns a copy of the serializers in this group.<a name="line.202"></a>
+<span class="sourceLineNo">203</span> *<a name="line.203"></a>
+<span class="sourceLineNo">204</span> * @return An unmodifiable list of serializers in this group.<a name="line.204"></a>
+<span class="sourceLineNo">205</span> */<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public List<Serializer> getSerializers() {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> return serializers;<a name="line.207"></a>
+<span class="sourceLineNo">208</span> }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span> /**<a name="line.210"></a>
+<span class="sourceLineNo">211</span> * Returns a bean context with the same properties as this group.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> *<a name="line.212"></a>
+<span class="sourceLineNo">213</span> * @return The bean context.<a name="line.213"></a>
+<span class="sourceLineNo">214</span> */<a name="line.214"></a>
+<span class="sourceLineNo">215</span> public BeanContext getBeanContext() {<a name="line.215"></a>
+<span class="sourceLineNo">216</span> return beanContext;<a name="line.216"></a>
+<span class="sourceLineNo">217</span> }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>}<a name="line.218"></a>
[14/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/package-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/package-frame.html b/content/site/apidocs/org/apache/juneau/rest/widget/package-frame.html
index 886493e..2bb6e38 100644
--- a/content/site/apidocs/org/apache/juneau/rest/widget/package-frame.html
+++ b/content/site/apidocs/org/apache/juneau/rest/widget/package-frame.html
@@ -17,6 +17,7 @@
<li><a href="ContentTypeLinksRowWidget.html" title="class in org.apache.juneau.rest.widget" target="classFrame">ContentTypeLinksRowWidget</a></li>
<li><a href="PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget" target="classFrame">PoweredByApacheWidget</a></li>
<li><a href="PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget" target="classFrame">PoweredByJuneauWidget</a></li>
+<li><a href="QueryWidget.html" title="class in org.apache.juneau.rest.widget" target="classFrame">QueryWidget</a></li>
<li><a href="Widget.html" title="class in org.apache.juneau.rest.widget" target="classFrame">Widget</a></li>
</ul>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/package-summary.html b/content/site/apidocs/org/apache/juneau/rest/widget/package-summary.html
index 558b6b6..4782d06 100644
--- a/content/site/apidocs/org/apache/juneau/rest/widget/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/rest/widget/package-summary.html
@@ -106,6 +106,12 @@
</td>
</tr>
<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget">QueryWidget</a></td>
+<td class="colLast">
+<div class="block">Adds a <code>QUERY</code> link to the page that allows you to perform search/view/sort/paging on the page data.</div>
+</td>
+</tr>
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">Widget</a></td>
<td class="colLast">
<div class="block">Defines an interface for defining resolvers for <js>"$W{...}"</js> string variables.</div>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/rest/widget/package-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/rest/widget/package-tree.html b/content/site/apidocs/org/apache/juneau/rest/widget/package-tree.html
index 2b9e8a3..5a2bb37 100644
--- a/content/site/apidocs/org/apache/juneau/rest/widget/package-tree.html
+++ b/content/site/apidocs/org/apache/juneau/rest/widget/package-tree.html
@@ -86,6 +86,7 @@
<li type="circle">org.apache.juneau.rest.widget.<a href="../../../../../org/apache/juneau/rest/widget/ContentTypeLinksRowWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">ContentTypeLinksRowWidget</span></a></li>
<li type="circle">org.apache.juneau.rest.widget.<a href="../../../../../org/apache/juneau/rest/widget/PoweredByApacheWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">PoweredByApacheWidget</span></a></li>
<li type="circle">org.apache.juneau.rest.widget.<a href="../../../../../org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">PoweredByJuneauWidget</span></a></li>
+<li type="circle">org.apache.juneau.rest.widget.<a href="../../../../../org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">QueryWidget</span></a></li>
</ul>
</li>
</ul>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html b/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
index ddcc095..d1628ea 100644
--- a/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
+++ b/content/site/apidocs/org/apache/juneau/serializer/SerializerGroup.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -193,36 +193,42 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</td>
</tr>
<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getBeanContext--">getBeanContext</a></span>()</code>
+<div class="block">Returns a bean context with the same properties as this group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-org.apache.juneau.http.MediaType-">getSerializer</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> mediaType)</code>
<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-org.apache.juneau.http.MediaType-"><code>getSerializerMatch(MediaType)</code></a> but returns just the matched serializer.</div>
</td>
</tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializer-java.lang.String-">getSerializer</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> acceptHeader)</code>
<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-"><code>getSerializerMatch(String)</code></a> but returns just the matched serializer.</div>
</td>
</tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-org.apache.juneau.http.MediaType-">getSerializerMatch</a></span>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> mediaType)</code>
<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-"><code>getSerializerMatch(String)</code></a> but matches using a <a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http"><code>MediaType</code></a> instance.</div>
</td>
</tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-">getSerializerMatch</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> acceptHeader)</code>
<div class="block">Searches the group for a serializer that can handle the specified <code>Accept</code> value.</div>
</td>
</tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializers--">getSerializers</a></span>()</code>
<div class="block">Returns a copy of the serializers in this group.</div>
</td>
</tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSupportedMediaTypes--">getSupportedMediaTypes</a></span>()</code>
<div class="block">Returns the media types that all serializers in this group can handle.</div>
@@ -256,7 +262,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockListLast">
<li class="blockList">
<h4>SerializerGroup</h4>
-<pre>public <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.81">SerializerGroup</a>(<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a> propertyStore,
+<pre>public <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.82">SerializerGroup</a>(<a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a> propertyStore,
<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>[] serializers)</pre>
<div class="block">Constructor.</div>
<dl>
@@ -283,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getSerializerMatch</h4>
-<pre>public <a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.130">getSerializerMatch</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> acceptHeader)</pre>
+<pre>public <a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.132">getSerializerMatch</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> acceptHeader)</pre>
<div class="block">Searches the group for a serializer that can handle the specified <code>Accept</code> value.
<p>
The <code>accept</code> value complies with the syntax described in RFC2616, Section 14.1, as described below:
@@ -324,7 +330,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getSerializerMatch</h4>
-<pre>public <a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.151">getSerializerMatch</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> mediaType)</pre>
+<pre>public <a href="../../../../org/apache/juneau/serializer/SerializerMatch.html" title="class in org.apache.juneau.serializer">SerializerMatch</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.153">getSerializerMatch</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> mediaType)</pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-"><code>getSerializerMatch(String)</code></a> but matches using a <a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http"><code>MediaType</code></a> instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -340,7 +346,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getSerializer</h4>
-<pre>public <a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.161">getSerializer</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> acceptHeader)</pre>
+<pre>public <a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.163">getSerializer</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> acceptHeader)</pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-java.lang.String-"><code>getSerializerMatch(String)</code></a> but returns just the matched serializer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -356,7 +362,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getSerializer</h4>
-<pre>public <a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.172">getSerializer</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> mediaType)</pre>
+<pre>public <a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.174">getSerializer</a>(<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a> mediaType)</pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/serializer/SerializerGroup.html#getSerializerMatch-org.apache.juneau.http.MediaType-"><code>getSerializerMatch(MediaType)</code></a> but returns just the matched serializer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -372,7 +378,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getSupportedMediaTypes</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.185">getSupportedMediaTypes</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/juneau/http/MediaType.html" title="class in org.apache.juneau.http">MediaType</a>> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.187">getSupportedMediaTypes</a>()</pre>
<div class="block">Returns the media types that all serializers in this group can handle.
<p>
Entries are ordered in the same order as the serializers in the group.</div>
@@ -388,7 +394,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>createPropertyStore</h4>
-<pre>public <a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.195">createPropertyStore</a>()</pre>
+<pre>public <a href="../../../../org/apache/juneau/PropertyStore.html" title="class in org.apache.juneau">PropertyStore</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.197">createPropertyStore</a>()</pre>
<div class="block">Returns a copy of the property store that was used to create the serializers in this group.
This method returns a new factory each time so is somewhat expensive.</div>
<dl>
@@ -400,10 +406,10 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<a name="getSerializers--">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>getSerializers</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.204">getSerializers</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../org/apache/juneau/serializer/Serializer.html" title="class in org.apache.juneau.serializer">Serializer</a>> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.206">getSerializers</a>()</pre>
<div class="block">Returns a copy of the serializers in this group.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -411,6 +417,20 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</dl>
</li>
</ul>
+<a name="getBeanContext--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getBeanContext</h4>
+<pre>public <a href="../../../../org/apache/juneau/BeanContext.html" title="class in org.apache.juneau">BeanContext</a> <a href="../../../../src-html/org/apache/juneau/serializer/SerializerGroup.html#line.215">getBeanContext</a>()</pre>
+<div class="block">Returns a bean context with the same properties as this group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The bean context.</dd>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/PojoQuery.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/PojoQuery.html b/content/site/apidocs/org/apache/juneau/utils/PojoQuery.html
index 3a50e18..2e72f1b 100644
--- a/content/site/apidocs/org/apache/juneau/utils/PojoQuery.html
+++ b/content/site/apidocs/org/apache/juneau/utils/PojoQuery.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var methods = {"i0":10,"i1":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -108,9 +108,9 @@ var activeTableTab = "activeTableTab";
<li class="blockList">
<hr>
<br>
-<pre>public final class <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.199">PojoQuery</a>
+<pre>public final class <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.183">PojoQuery</a>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Designed to provide query/view/sort/paging filtering on tabular in-memory POJO models.
+<div class="block">Designed to provide search/view/sort/paging filtering on tabular in-memory POJO models.
<p>
It can also perform just view filtering on beans/maps.
<p>
@@ -125,47 +125,40 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
Tabular POJO models can be thought of as tables of data. For example, a list of the following beans...
<p class='bcode'>
<jk>public</jk> MyBean {
- <jk>public int</jk> fi;
- <jk>public</jk> String fs;
- <jk>public</jk> Date fd;
+ <jk>public int</jk> myInt;
+ <jk>public</jk> String myString;
+ <jk>public</jk> Date myDate;
}
<p>
... can be thought of a table containing the following columns...
<p>
<table class='styled code'>
- <tr><th>fi</th><th>fs</th><th>fd</th></tr>
+ <tr><th>myInt</th><th>myString</th><th>myDate</th></tr>
<tr><td>123</td><td>'foobar'</td><td>yyyy/MM/dd HH:mm:ss</td></tr>
<tr><td colspan=3>...</td></tr>
</table>
<p>
From this table, you can perform the following functions:
<ul class='spaced-list'>
- <li>Query - Return only rows where a search pattern matches.
+ <li>Search - Return only rows where a search pattern matches.
<li>View - Return only the specified subset of columns in the specified order.
<li>Sort - Sort the table by one or more columns.
- <li>Page - Only return a subset of rows.
+ <li>Position/limit - Only return a subset of rows.
</ul>
- <h5 class='topic'>Query</h5>
+ <h5 class='topic'>Search</h5>
<p>
- The query capabilites allow you to filter based on query patterns against
+ The search capabilities allow you to filter based on query patterns against
strings, dates, and numbers. Queries take the form of a Map with column names
as keys, and search patterns as values. <br>
- Search patterns can be either <code>Strings</code> or <code>Maps</code>.<br>
Multiple search patterns are ANDed (i.e. all patterns must match for the row to be returned).
<h5 class='section'>Example:</h5>
<ul class='spaced-list'>
- <li><tt>{fi:'123'}</tt> - Return only rows where the <tt>fi</tt> column is 123.
- <li><tt>{fs:'foobar'}</tt> - Return only rows where the <tt>fs</tt> column is 'foobar'.
- <li><tt>{fd:'2001'}</tt> - Return only rows where the <tt>fd</tt> column have dates in the year 2001.
- <li><tt>{fs:'foobar'}</tt> - Return only rows where the <tt>fs</tt> column is 'foobar'.
- and the <tt>fs</tt> column starts with <tt>"foo"</tt>.
+ <li><tt>{myInt:'123'}</tt> - Return only rows where the <tt>myInt</tt> column is 123.
+ <li><tt>{myString:'foobar'}</tt> - Return only rows where the <tt>myString</tt> column is 'foobar'.
+ <li><tt>{myDate:'2001'}</tt> - Return only rows where the <tt>myDate</tt> column have dates in the year 2001.
</ul>
- <p>
- Search patterns can also be applied to lower level fields. For example, the search term
- <tt>{f1:{f2:{f3{'foobar'}}}</tt> means only return top level rows where the <tt>f1.getF2().getF3()</tt>
- property is <tt>'foobar'</tt>.
<h5 class='topic'>String Patterns</h5>
<p>
@@ -250,37 +243,28 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<h6 class='topic'>Example view parameters:</h6>
<ul>
- <li><tt>['f1']</tt> - Return only column 'f1'.
- <li><tt>['f2','f1']</tt> - Return only columns 'f2' and 'f1'.
- <li><tt>['f1',{f2:'f3'}]</tt> - Return only columns 'f1' and 'f2', but for 'f2' objects,
- only show the 'f3' property.
+ <li><tt>column1</tt> - Return only column 'column1'.
+ <li><tt>column2, column1</tt> - Return only columns 'column2' and 'column1' in that order.
</ul>
<h5 class='topic'>Sort</h5>
<p>
The sort capability allows you to sort values by the specified rows.<br>
- The sort parameter is a list of either <tt>Strings</tt> or <tt>Maps</tt>.<br>
- <tt>Strings</tt> represent column names to sort ascending. If you want
- to sort descending, you need to specify a <tt>Map</tt> of the form <tt>{colname:'d'}</tt>
+ The sort parameter is a list of strings with an optional <js>'+'</js> or <js>'-'</js> suffix representing
+ ascending and descending order accordingly.
<h6 class='topic'>Example sort parameters:</h6>
<ul>
- <li><tt>['f1']</tt> - Sort rows by column 'f1' ascending.
- <li><tt>[{f1:'a'}]</tt> - Sort rows by column 'f1' ascending.
- <li><tt>[{f1:'d'}]</tt> - Sort rows by column 'f1' descending.
- <li><tt>[{f1:'a'},{f2:'d'}]</tt> - Sort rows by column 'f1' ascending, then 'f2' descending.
+ <li><tt>column1</tt> - Sort rows by column 'column1' ascending.
+ <li><tt>column1+</tt> - Sort rows by column 'column1' ascending.
+ <li><tt>column1-</tt> - Sort rows by column 'column1' descending.
+ <li><tt>column1, column2-</tt> - Sort rows by column 'column1' ascending, then 'column2' descending.
</ul>
<h5 class='topic'>Paging</h5>
<p>
- Use the <tt>pos</tt> and <tt>limit</tt> parameters to specify a subset of rows to
- return.
-
- <h5 class='topic'>Other Notes</h5>
- <ul class='spaced-list'>
- <li>Calling <tt>filterMap()</tt> or <tt>filterCollection()</tt> always returns a new data
- structure, so the methods can be called multiple times against the same input.
- </ul></div>
+ Use the <tt>position</tt> and <tt>limit</tt> parameters to specify a subset of rows to
+ return.</div>
</li>
</ul>
</div>
@@ -321,29 +305,11 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/PojoQuery.html#filterCollection-java.util.Map-java.util.List-java.util.List-int-int-boolean-">filterCollection</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a> query,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> view,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> sort,
- int pos,
- int limit,
- boolean ignoreCase)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/PojoQuery.html#filter-org.apache.juneau.utils.SearchArgs-">filter</a></span>(<a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a> args)</code>
<div class="block">Filters the input object as a collection of maps.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
-<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/PojoQuery.html#filterMap-java.util.List-">filterMap</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> view)</code>
-<div class="block">Filters the input object as a map.</div>
-</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>protected org.apache.juneau.utils.PojoQuery.CalendarP</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/PojoQuery.html#parseDate-java.lang.String-java.text.ParsePosition-">parseDate</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> seg,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/text/ParsePosition.html?is-external=true" title="class or interface in java.text">ParsePosition</a> pp)</code>
-<div class="block">Parses a timestamp string off the beginning of the string segment 'seg'.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/PojoQuery.html#setValidTimestampFormats-java.lang.String...-">setValidTimestampFormats</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... s)</code>
<div class="block">Use this method to override the allowed search patterns when used in locales where time formats are
@@ -378,7 +344,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockListLast">
<li class="blockList">
<h4>PojoQuery</h4>
-<pre>public <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.211">PojoQuery</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> input,
+<pre>public <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.195">PojoQuery</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> input,
<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
<div class="block">Constructor.</div>
<dl>
@@ -396,55 +362,30 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="filterMap-java.util.List-">
+<a name="filter-org.apache.juneau.utils.SearchArgs-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
-<h4>filterMap</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a> <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.223">filterMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> view)</pre>
-<div class="block">Filters the input object as a map.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>view</code> - The list and order of properties to return from the map. Values must be of type <code>String</code> or <code>Map</code>.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>The filtered map</dd>
-</dl>
-</li>
-</ul>
-<a name="filterCollection-java.util.Map-java.util.List-java.util.List-int-int-boolean-">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>filterCollection</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.248">filterCollection</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a> query,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> view,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> sort,
- int pos,
- int limit,
- boolean ignoreCase)</pre>
+<h4>filter</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.208">filter</a>(<a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a> args)</pre>
<div class="block">Filters the input object as a collection of maps.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>query</code> - The query attributes. Keys must be column names and values must be of type <code>String</code> or <code>Map</code>.</dd>
-<dd><code>view</code> - The view attributes. Values must be of type <code>String</code> or <code>Map</code>.</dd>
-<dd><code>sort</code> - The sort attributes. Values must be of type <code>String</code> or <code>Map</code>.</dd>
-<dd><code>pos</code> - The index into the list to start returning results from. Default is <code>0</code>.</dd>
-<dd><code>limit</code> - The number of rows to return. Default is all rows.</dd>
-<dd><code>ignoreCase</code> - If <jk>true</jk>, then querying is case insensitive. Default is <jk>false</jk>.</dd>
+<dd><code>args</code> - The search arguments.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
-<dd>The filtered collection.</dd>
+<dd>The filtered collection.
+ <br>Returns the unaltered input if the input is not a collection or array of objects.</dd>
</dl>
</li>
</ul>
<a name="setValidTimestampFormats-java.lang.String...-">
<!-- -->
</a>
-<ul class="blockList">
+<ul class="blockListLast">
<li class="blockList">
<h4>setValidTimestampFormats</h4>
-<pre>public void <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.716">setValidTimestampFormats</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... s)</pre>
+<pre>public void <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.609">setValidTimestampFormats</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... s)</pre>
<div class="block">Use this method to override the allowed search patterns when used in locales where time formats are
different.</div>
<dl>
@@ -453,26 +394,6 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</dl>
</li>
</ul>
-<a name="parseDate-java.lang.String-java.text.ParsePosition-">
-<!-- -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>parseDate</h4>
-<pre>protected org.apache.juneau.utils.PojoQuery.CalendarP <a href="../../../../src-html/org/apache/juneau/utils/PojoQuery.html#line.915">parseDate</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> seg,
- <a href="http://docs.oracle.com/javase/7/docs/api/java/text/ParsePosition.html?is-external=true" title="class or interface in java.text">ParsePosition</a> pp)</pre>
-<div class="block">Parses a timestamp string off the beginning of the string segment 'seg'.
- Goes through each possible valid timestamp format until it finds a match.
- The position where the parsing left off is stored in pp.</div>
-<dl>
-<dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>seg</code> - The string segment being parsed.</dd>
-<dd><code>pp</code> - Where parsing last left off.</dd>
-<dt><span class="returnLabel">Returns:</span></dt>
-<dd>An object represening a timestamp.</dd>
-</dl>
-</li>
-</ul>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/ProcBuilder.Matcher.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/ProcBuilder.Matcher.html b/content/site/apidocs/org/apache/juneau/utils/ProcBuilder.Matcher.html
index 8195e22..682105b 100644
--- a/content/site/apidocs/org/apache/juneau/utils/ProcBuilder.Matcher.html
+++ b/content/site/apidocs/org/apache/juneau/utils/ProcBuilder.Matcher.html
@@ -43,7 +43,7 @@
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/juneau/utils/ProcBuilder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/utils/StringMessage.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/juneau/utils/ProcBuilder.Matcher.html" target="_top">Frames</a></li>
@@ -196,7 +196,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/juneau/utils/ProcBuilder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
-<li><a href="../../../../org/apache/juneau/utils/StringMessage.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/juneau/utils/ProcBuilder.Matcher.html" target="_top">Frames</a></li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/SearchArgs.Builder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/SearchArgs.Builder.html b/content/site/apidocs/org/apache/juneau/utils/SearchArgs.Builder.html
new file mode 100644
index 0000000..3b8d77c
--- /dev/null
+++ b/content/site/apidocs/org/apache/juneau/utils/SearchArgs.Builder.html
@@ -0,0 +1,537 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SearchArgs.Builder (Apache Juneau (incubating) 6.2.1-incubating-SNAPSHOT)</title>
+<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="SearchArgs.Builder (Apache Juneau (incubating) 6.2.1-incubating-SNAPSHOT)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/StringMessage.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/juneau/utils/SearchArgs.Builder.html" target="_top">Frames</a></li>
+<li><a href="SearchArgs.Builder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.juneau.utils</div>
+<h2 title="Class SearchArgs.Builder" class="title">Class SearchArgs.Builder</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.juneau.utils.SearchArgs.Builder</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.45">SearchArgs.Builder</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Builder for <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> class.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#Builder--">Builder</a></span>()</code> </td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#build--">build</a></span>()</code>
+<div class="block">Construct the <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#ignoreCase-boolean-">ignoreCase</a></span>(boolean value)</code>
+<div class="block">Specifies whether case-insensitive search should be used.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#limit-int-">limit</a></span>(int limit)</code>
+<div class="block">Specifies the number of rows to return.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#position-int-">position</a></span>(int position)</code>
+<div class="block">Specifies the starting line number.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#search-java.lang.String-">search</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> searchTerms)</code>
+<div class="block">Adds search terms to this builder.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#search-java.lang.String-java.lang.String-">search</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> column,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> searchTerm)</code>
+<div class="block">Adds a search term to this builder.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#sort-java.util.Collection-">sort</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> sortArgs)</code>
+<div class="block">Specifies the sort arguments.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#sort-java.lang.String-">sort</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> sortArgs)</code>
+<div class="block">Specifies the sort arguments.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#view-java.util.Collection-">view</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> columns)</code>
+<div class="block">Specifies the list of columns to view.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html#view-java.lang.String-">view</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> columns)</code>
+<div class="block">Specifies the list of columns to view.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang
/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Builder--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Builder</h4>
+<pre>public <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.45">Builder</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="search-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>search</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.70">search</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> searchTerms)</pre>
+<div class="block">Adds search terms to this builder.
+ <p>
+ The search terms are a comma-delimited list of key/value pairs of column-names and search tokens.
+ <p>
+ For example:
+ <p class='bcode'>
+ builder.search(<js>"column1=foo*, column2=bar baz"</js>);
+ </p>
+ <p>
+ It's up to implementers to decide the syntax and meaning of the search terms.
+ <p>
+ Whitespace is trimmed from column names and search tokens.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>searchTerms</code> - The search terms string.
+ Can be <jk>null</jk>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="search-java.lang.String-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>search</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.92">search</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> column,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> searchTerm)</pre>
+<div class="block">Adds a search term to this builder.
+ <p>
+ It's up to implementers to decide the syntax and meaning of the search term.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>column</code> - The column being searched.</dd>
+<dd><code>searchTerm</code> - The search term.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="view-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>view</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.115">view</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> columns)</pre>
+<div class="block">Specifies the list of columns to view.
+ <p>
+ The columns argument is a simple comma-delimited list of column names.
+ <p>
+ For example:
+ <p class='bcode'>
+ builder.view(<js>"column1, column2"</js>);
+ </p>
+ <p>
+ Whitespace is trimmed from column names.
+ <p>
+ Empty view columns imply view all columns.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>columns</code> - The columns being viewed.
+ Can be <jk>null</jk>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="view-java.util.Collection-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>view</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.129">view</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> columns)</pre>
+<div class="block">Specifies the list of columns to view.
+ <p>
+ Empty view columns imply view all columns.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>columns</code> - The columns being viewed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.155">sort</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> sortArgs)</pre>
+<div class="block">Specifies the sort arguments.
+ <p>
+ The sort argument is a simple comma-delimited list of column names.
+ <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.
+ <br>No suffix implies ascending order.
+ <p>
+ For example:
+ <p class='bcode'>
+ <jc>// Order by column1 ascending, then column2 descending.</jc>
+ builder.sort(<js>"column1, column2-"</js>);
+ </p>
+ <p>
+ Note that the order of the order arguments is important.
+ <p>
+ Whitespace is trimmed from column names.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sortArgs</code> - The columns to sort by.
+ Can be <jk>null</jk>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-java.util.Collection-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.173">sort</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> sortArgs)</pre>
+<div class="block">Specifies the sort arguments.
+ <p>
+ <br>Column names can be suffixed with <js>'+'</js> or <js>'-'</js> to indicate ascending or descending order.
+ <br>No suffix implies ascending order.
+ <p>
+ Note that the order of the sort is important.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sortArgs</code> - The columns to sort by.
+ Can be <jk>null</jk>.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="position-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>position</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.191">position</a>(int position)</pre>
+<div class="block">Specifies the starting line number.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>position</code> - The zero-indexed position.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.203">limit</a>(int limit)</pre>
+<div class="block">Specifies the number of rows to return.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The number of rows to return.
+ If <code><=0</code>, all rows should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="ignoreCase-boolean-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ignoreCase</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.216">ignoreCase</a>(boolean value)</pre>
+<div class="block">Specifies whether case-insensitive search should be used.
+ <p>
+ The default is <jk>false</jk>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The ignore-case flag value.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This object (for method chaining).</dd>
+</dl>
+</li>
+</ul>
+<a name="build--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>build</h4>
+<pre>public <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.Builder.html#line.228">build</a>()</pre>
+<div class="block">Construct the <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object.
+ <p>
+ This method can be called multiple times to construct new objects.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A new <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object initialized with values in this builder.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/StringMessage.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/juneau/utils/SearchArgs.Builder.html" target="_top">Frames</a></li>
+<li><a href="SearchArgs.Builder.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2017 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/SearchArgs.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/SearchArgs.html b/content/site/apidocs/org/apache/juneau/utils/SearchArgs.html
new file mode 100644
index 0000000..9a6cc3e
--- /dev/null
+++ b/content/site/apidocs/org/apache/juneau/utils/SearchArgs.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SearchArgs (Apache Juneau (incubating) 6.2.1-incubating-SNAPSHOT)</title>
+<link rel="stylesheet" type="text/css" href="../../../../javadoc.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+ try {
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="SearchArgs (Apache Juneau (incubating) 6.2.1-incubating-SNAPSHOT)";
+ }
+ }
+ catch(err) {
+ }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/juneau/utils/ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/juneau/utils/SearchArgs.html" target="_top">Frames</a></li>
+<li><a href="SearchArgs.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_top");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.juneau.utils</div>
+<h2 title="Class SearchArgs" class="title">Class SearchArgs</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.juneau.utils.SearchArgs</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.25">SearchArgs</a>
+extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Encapsulates arguments for basic search/view/sort/position/limit functionality.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!-- -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></span></code>
+<div class="block">Builder for <a href="../../../../org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> class.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.html#getLimit--">getLimit</a></span>()</code>
+<div class="block">The number of rows to return.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.html#getPosition--">getPosition</a></span>()</code>
+<div class="block">The first-row position.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.html#getSearch--">getSearch</a></span>()</code>
+<div class="block">The query search terms.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.html#getSort--">getSort</a></span>()</code>
+<div class="block">The sort columns.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.html#getView--">getView</a></span>()</code>
+<div class="block">The view columns.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/utils/SearchArgs.html#isIgnoreCase--">isIgnoreCase</a></span>()</code>
+<div class="block">The ignore-case flag.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang
/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSearch--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSearch</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.242">getSearch</a>()</pre>
+<div class="block">The query search terms.
+ <p>
+ The search terms are key/value pairs consisting of column-names and search tokens.
+ <p>
+ It's up to implementers to decide the syntax and meaning of the search term.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An unmodifiable map of query search terms.</dd>
+</dl>
+</li>
+</ul>
+<a name="getView--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getView</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.254">getView</a>()</pre>
+<div class="block">The view columns.
+ <p>
+ The view columns are the list of columns that should be displayed.
+ An empty list implies all columns should be displayed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An unmodifiable list of columns to view.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSort--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSort</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>> <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.266">getSort</a>()</pre>
+<div class="block">The sort columns.
+ <p>
+ The sort columns are key/value pairs consisting of column-names and direction flags
+ (<jk>false</jk> = ascending, <jk>true</jk> = descending).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An unmodifiable ordered map of sort columns and directions.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPosition--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPosition</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.276">getPosition</a>()</pre>
+<div class="block">The first-row position.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The zero-indexed row number of the first row to display.
+ Default is <code>0</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getLimit--">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLimit</h4>
+<pre>public int <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.286">getLimit</a>()</pre>
+<div class="block">The number of rows to return.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of rows to return in the result.
+ Default is <code>0</code> which means return all rows.</dd>
+</dl>
+</li>
+</ul>
+<a name="isIgnoreCase--">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isIgnoreCase</h4>
+<pre>public boolean <a href="../../../../src-html/org/apache/juneau/utils/SearchArgs.html#line.298">isIgnoreCase</a>()</pre>
+<div class="block">The ignore-case flag.
+ <p>
+ Used in conjunction with <a href="../../../../org/apache/juneau/utils/SearchArgs.html#getSearch--"><code>getSearch()</code></a> to specify whether case-insensitive searches should be performed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of rows to return in the result.
+ Default is <jk>false</jk>.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!-- -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!-- -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/juneau/utils/ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/juneau/utils/SearchArgs.html" target="_top">Frames</a></li>
+<li><a href="SearchArgs.html" target="_top">No Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+ allClassesLink = document.getElementById("allclasses_navbar_bottom");
+ if(window==top) {
+ allClassesLink.style.display = "block";
+ }
+ else {
+ allClassesLink.style.display = "none";
+ }
+ //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li>Constr | </li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright © 2017 <a href="http://www.apache.org/">Apache</a>. All rights reserved.</small></p>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/utils/StringMessage.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/utils/StringMessage.html b/content/site/apidocs/org/apache/juneau/utils/StringMessage.html
index 96ae9a7..1668605 100644
--- a/content/site/apidocs/org/apache/juneau/utils/StringMessage.html
+++ b/content/site/apidocs/org/apache/juneau/utils/StringMessage.html
@@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../org/apache/juneau/utils/ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../org/apache/juneau/utils/StringObject.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
@@ -358,7 +358,7 @@ implements <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSeque
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../org/apache/juneau/utils/ProcBuilder.Matcher.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
+<li><a href="../../../../org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../org/apache/juneau/utils/StringObject.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
[17/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/internal/StringUtils.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/internal/StringUtils.html b/content/site/apidocs/org/apache/juneau/internal/StringUtils.html
index ddd2344..b4843f8 100644
--- a/content/site/apidocs/org/apache/juneau/internal/StringUtils.html
+++ b/content/site/apidocs/org/apache/juneau/internal/StringUtils.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9,"i20":9,"i21":9,"i22":9,"i23":9,"i24":9,"i25":9,"i26":9,"i27":9,"i28":9,"i29":9,"i30":9,"i31":9,"i32":9,"i33":9,"i34":9,"i35":9,"i36":9,"i37":9,"i38":9,"i39":9,"i40":9,"i41":9,"i42":9,"i43":9,"i44":9,"i45":9,"i46":9,"i47":9,"i48":9,"i49":9,"i50":9,"i51":9,"i52":9,"i53":9,"i54":9,"i55":9,"i56":9,"i57":9,"i58":9,"i59":9,"i60":9,"i61":9,"i62":9,"i63":9,"i64":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -192,48 +192,55 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#endsWith-java.lang.String-char...-">endsWith</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+ char... c)</code>
+<div class="block">Same as <a href="../../../../org/apache/juneau/internal/StringUtils.html#endsWith-java.lang.String-char-"><code>endsWith(String, char)</code></a> except check for multiple characters.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#endsWith-java.lang.String-char-">endsWith</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char c)</code>
<div class="block">An efficient method for checking if a string ends with a character.</div>
</td>
</tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#firstNonEmpty-java.lang.String...-">firstNonEmpty</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... s)</code>
<div class="block">Returns the first non-null, non-empty string in the list.</div>
</td>
</tr>
-<tr id="i9" class="rowColor">
+<tr id="i10" class="altColor">
<td class="colFirst"><code>static char</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#firstNonWhitespaceChar-java.lang.String-">firstNonWhitespaceChar</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Returns the first non-whitespace character in the string.</div>
</td>
</tr>
-<tr id="i10" class="altColor">
+<tr id="i11" class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#fromHex-java.lang.String-">fromHex</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</code>
<div class="block">Converts a hexadecimal character string to a byte array.</div>
</td>
</tr>
-<tr id="i11" class="rowColor">
+<tr id="i12" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#fromHexToUTF8-java.lang.String-">fromHexToUTF8</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</code>
<div class="block">Converts a hexadecimal byte stream (e.g.</div>
</td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#generateUUID-int-">generateUUID</a></span>(int numchars)</code>
<div class="block">Generated a random UUID with the specified number of characters.</div>
</td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#getAuthorityUri-java.lang.String-">getAuthorityUri</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Given an absolute URI, returns just the authority portion (e.g.</div>
</td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#getField-int-java.lang.String-char-">getField</a></span>(int fieldNum,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
@@ -241,7 +248,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="block">Returns the specified field in a delimited string without splitting the string.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#getField-int-java.lang.String-char-java.lang.String-">getField</a></span>(int fieldNum,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
@@ -250,89 +257,96 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="block">Same as <a href="../../../../org/apache/juneau/internal/StringUtils.html#getField-int-java.lang.String-char-"><code>getField(int, String, char)</code></a> except allows you to specify the default value.</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#getStackTrace-java.lang.Throwable-">getStackTrace</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a> t)</code>
<div class="block">Convenience method for getting a stack trace as a string.</div>
</td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#indexOf-java.lang.String-char...-">indexOf</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+ char... c)</code>
+<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#indexOf-int-" title="class or interface in java.lang"><code>String.indexOf(int)</code></a> except allows you to check for mulitiple characters.</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isAbsoluteUri-java.lang.String-">isAbsoluteUri</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Efficiently determines whether a URL is of the pattern "xxx://xxx"</div>
</td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isDecimal-java.lang.String-">isDecimal</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Returns <jk>true</jk> if the specified string is numeric.</div>
</td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i21" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isEmpty-java.lang.Object-">isEmpty</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> s)</code>
<div class="block">Returns <jk>true</jk> if specified string is <jk>null</jk> or it's <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang"><code>Object.toString()</code></a> method returns an empty string.</div>
</td>
</tr>
-<tr id="i20" class="altColor">
+<tr id="i22" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isEmpty-java.lang.String-">isEmpty</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Returns <jk>true</jk> if specified string is <jk>null</jk> or empty.</div>
</td>
</tr>
-<tr id="i21" class="rowColor">
+<tr id="i23" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isEquals-java.lang.String-java.lang.String-">isEquals</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s1,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s2)</code>
<div class="block">Tests two strings for equality, but gracefully handles nulls.</div>
</td>
</tr>
-<tr id="i22" class="altColor">
+<tr id="i24" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isFirstNumberChar-char-">isFirstNumberChar</a></span>(char c)</code>
<div class="block">Returns <jk>true</jk> if the specified character is a valid first character for a number.</div>
</td>
</tr>
-<tr id="i23" class="rowColor">
+<tr id="i25" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isFloat-java.lang.String-">isFloat</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Returns <jk>true</jk> if the specified string is a floating point number.</div>
</td>
</tr>
-<tr id="i24" class="altColor">
+<tr id="i26" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isNumeric-java.lang.String-">isNumeric</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Returns <jk>true</jk> if this string can be parsed by <a href="../../../../org/apache/juneau/internal/StringUtils.html#parseNumber-java.lang.String-java.lang.Class-"><code>parseNumber(String, Class)</code></a>.</div>
</td>
</tr>
-<tr id="i25" class="rowColor">
+<tr id="i27" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isOneOf-java.lang.String-java.lang.String...-">isOneOf</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... values)</code>
<div class="block">Returns <jk>true</jk> if the specified string is one of the specified values.</div>
</td>
</tr>
-<tr id="i26" class="altColor">
+<tr id="i28" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#isUri-java.lang.String-">isUri</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Efficiently determines whether a URL is of the pattern "xxx:/xxx".</div>
</td>
</tr>
-<tr id="i27" class="rowColor">
+<tr id="i29" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-java.util.Collection-char-">join</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><?> tokens,
char d)</code>
<div class="block">Join the specified tokens into a delimited string.</div>
</td>
</tr>
-<tr id="i28" class="altColor">
+<tr id="i30" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-java.util.Collection-java.lang.String-">join</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><?> tokens,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> d)</code>
<div class="block">Join the specified tokens into a delimited string.</div>
</td>
</tr>
-<tr id="i29" class="rowColor">
+<tr id="i31" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-java.util.Collection-java.lang.String-java.lang.StringBuilder-">join</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><?> tokens,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> d,
@@ -340,28 +354,28 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="block">Joins the specified tokens into a delimited string and writes the output to the specified string builder.</div>
</td>
</tr>
-<tr id="i30" class="altColor">
+<tr id="i32" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-int:A-char-">join</a></span>(int[] tokens,
char d)</code>
<div class="block">Join the specified tokens into a delimited string.</div>
</td>
</tr>
-<tr id="i31" class="rowColor">
+<tr id="i33" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-int:A-java.lang.String-">join</a></span>(int[] tokens,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> d)</code>
<div class="block">Join the specified tokens into a delimited string.</div>
</td>
</tr>
-<tr id="i32" class="altColor">
+<tr id="i34" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-java.lang.Object:A-char-">join</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] tokens,
char d)</code>
<div class="block">Joins the specified tokens into a delimited string.</div>
</td>
</tr>
-<tr id="i33" class="rowColor">
+<tr id="i35" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-java.lang.Object:A-char-java.lang.StringBuilder-">join</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] tokens,
char d,
@@ -369,73 +383,73 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="block">Join the specified tokens into a delimited string and writes the output to the specified string builder.</div>
</td>
</tr>
-<tr id="i34" class="altColor">
+<tr id="i36" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#join-java.lang.Object:A-java.lang.String-">join</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] tokens,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> separator)</code>
<div class="block">Join the specified tokens into a delimited string.</div>
</td>
</tr>
-<tr id="i35" class="rowColor">
+<tr id="i37" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#nullIfEmpty-java.lang.String-">nullIfEmpty</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Returns <jk>null</jk> if the specified string is <jk>null</jk> or empty.</div>
</td>
</tr>
-<tr id="i36" class="altColor">
+<tr id="i38" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#parseISO8601Date-java.lang.String-">parseISO8601Date</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> date)</code>
<div class="block">Parses an ISO8601 string into a date.</div>
</td>
</tr>
-<tr id="i37" class="rowColor">
+<tr id="i39" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#parseNumber-org.apache.juneau.parser.ParserReader-java.lang.Class-">parseNumber</a></span>(<a href="../../../../org/apache/juneau/parser/ParserReader.html" title="class in org.apache.juneau.parser">ParserReader</a> r,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>> type)</code>
<div class="block">Parses a number from the specified reader stream.</div>
</td>
</tr>
-<tr id="i38" class="altColor">
+<tr id="i40" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#parseNumber-java.lang.String-java.lang.Class-">parseNumber</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Number.html?is-external=true" title="class or interface in java.lang">Number</a>> type)</code>
<div class="block">Parses a number from the specified string.</div>
</td>
</tr>
-<tr id="i39" class="rowColor">
+<tr id="i41" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#parseNumberString-org.apache.juneau.parser.ParserReader-">parseNumberString</a></span>(<a href="../../../../org/apache/juneau/parser/ParserReader.html" title="class in org.apache.juneau.parser">ParserReader</a> r)</code>
<div class="block">Reads a numeric string from the specified reader.</div>
</td>
</tr>
-<tr id="i40" class="altColor">
+<tr id="i42" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#pathStartsWith-java.lang.String-java.lang.String-">pathStartsWith</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pathPrefix)</code>
<div class="block">Returns <jk>true</jk> if the specified path string is prefixed with the specified prefix.</div>
</td>
</tr>
-<tr id="i41" class="rowColor">
+<tr id="i43" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#pathStartsWith-java.lang.String-java.lang.String:A-">pathStartsWith</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] pathPrefixes)</code>
<div class="block">Same as <a href="../../../../org/apache/juneau/internal/StringUtils.html#pathStartsWith-java.lang.String-java.lang.String-"><code>pathStartsWith(String, String)</code></a> but returns <jk>true</jk> if at least one prefix matches.</div>
</td>
</tr>
-<tr id="i42" class="altColor">
+<tr id="i44" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#repeat-int-java.lang.String-">repeat</a></span>(int count,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pattern)</code>
<div class="block">Creates a repeated pattern.</div>
</td>
</tr>
-<tr id="i43" class="rowColor">
+<tr id="i45" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#replaceUnicodeSequences-java.lang.String-">replaceUnicodeSequences</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Replaces <js>"\\uXXXX"</js> character sequences with their unicode characters.</div>
</td>
</tr>
-<tr id="i44" class="altColor">
+<tr id="i46" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#replaceVars-java.lang.String-java.util.Map-">replaceVars</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> m)</code>
@@ -443,21 +457,21 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
in the specified map.</div>
</td>
</tr>
-<tr id="i45" class="rowColor">
+<tr id="i47" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#split-java.lang.String:A-char-">split</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] s,
char c)</code>
<div class="block">Same as <a href="../../../../org/apache/juneau/internal/StringUtils.html#split-java.lang.String-char-"><code>split(String, char)</code></a> except splits all strings in the input and returns a single result.</div>
</td>
</tr>
-<tr id="i46" class="altColor">
+<tr id="i48" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#split-java.lang.String-char-">split</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char c)</code>
<div class="block">Splits a character-delimited string into a string array.</div>
</td>
</tr>
-<tr id="i47" class="rowColor">
+<tr id="i49" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#splitMap-java.lang.String-char-char-boolean-">splitMap</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char delim,
@@ -466,81 +480,81 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="block">Splits a list of key-value pairs into an ordered map.</div>
</td>
</tr>
-<tr id="i48" class="altColor">
+<tr id="i50" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#startsWith-java.lang.String-char-">startsWith</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char c)</code>
<div class="block">An efficient method for checking if a string starts with a character.</div>
</td>
</tr>
-<tr id="i49" class="rowColor">
+<tr id="i51" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#toHex-byte:A-">toHex</a></span>(byte[] bytes)</code>
<div class="block">Converts a byte array into a simple hexadecimal character string.</div>
</td>
</tr>
-<tr id="i50" class="altColor">
+<tr id="i52" class="altColor">
<td class="colFirst"><code>static char[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#toHex-int-">toHex</a></span>(int num)</code>
<div class="block">Converts the specified number into a 4 hexadecimal characters.</div>
</td>
</tr>
-<tr id="i51" class="rowColor">
+<tr id="i53" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#toString-java.lang.Object-">toString</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</code>
<div class="block">Calls <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang"><code>Object.toString()</code></a> on the specified object if it's not null.</div>
</td>
</tr>
-<tr id="i52" class="altColor">
+<tr id="i54" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#toURI-java.lang.Object-">toURI</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</code>
<div class="block">Converts the specified object to a URI.</div>
</td>
</tr>
-<tr id="i53" class="rowColor">
+<tr id="i55" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#trim-java.lang.String-">trim</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#trim--" title="class or interface in java.lang"><code>String.trim()</code></a> but prevents <code>NullPointerExceptions</code>.</div>
</td>
</tr>
-<tr id="i54" class="altColor">
+<tr id="i56" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#trimEnd-java.lang.String-">trimEnd</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Trims whitespace characters from the end of the specified string.</div>
</td>
</tr>
-<tr id="i55" class="rowColor">
+<tr id="i57" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#trimSlashes-java.lang.String-">trimSlashes</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Trims <js>'/'</js> characters from both the start and end of the specified string.</div>
</td>
</tr>
-<tr id="i56" class="altColor">
+<tr id="i58" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#trimStart-java.lang.String-">trimStart</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Trims whitespace characters from the beginning of the specified string.</div>
</td>
</tr>
-<tr id="i57" class="rowColor">
+<tr id="i59" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#trimTrailingSlashes-java.lang.String-">trimTrailingSlashes</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Trims <js>'/'</js> characters from the end of the specified string.</div>
</td>
</tr>
-<tr id="i58" class="altColor">
+<tr id="i60" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#trimTrailingSlashes-java.lang.StringBuffer-">trimTrailingSlashes</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a> s)</code>
<div class="block">Trims <js>'/'</js> characters from the end of the specified string.</div>
</td>
</tr>
-<tr id="i59" class="rowColor">
+<tr id="i61" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#unEscapeChars-java.lang.String-char:A-">unEscapeChars</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char[] toEscape)</code>
<div class="block">Removes escape characters (\) from the specified characters.</div>
</td>
</tr>
-<tr id="i60" class="altColor">
+<tr id="i62" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#unEscapeChars-java.lang.String-char:A-char-">unEscapeChars</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char[] toEscape,
@@ -548,13 +562,13 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<div class="block">Removes escape characters (specified by escapeChar) from the specified characters.</div>
</td>
</tr>
-<tr id="i61" class="rowColor">
+<tr id="i63" class="rowColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#urlDecode-java.lang.String-">urlDecode</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Decodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.</div>
</td>
</tr>
-<tr id="i62" class="altColor">
+<tr id="i64" class="altColor">
<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/juneau/internal/StringUtils.html#urlEncode-java.lang.String-">urlEncode</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Encodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.</div>
@@ -1143,13 +1157,31 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</dl>
</li>
</ul>
+<a name="endsWith-java.lang.String-char...-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endsWith</h4>
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.751">endsWith</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+ char... c)</pre>
+<div class="block">Same as <a href="../../../../org/apache/juneau/internal/StringUtils.html#endsWith-java.lang.String-char-"><code>endsWith(String, char)</code></a> except check for multiple characters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - The string to check. Can be <jk>null</jk>.</dd>
+<dd><code>c</code> - The characters to check for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd><jk>true</jk> if the specified string is not <jk>null</jk> and ends with the specified character.</dd>
+</dl>
+</li>
+</ul>
<a name="toHex-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toHex</h4>
-<pre>public static final char[] <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.750">toHex</a>(int num)</pre>
+<pre>public static final char[] <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.770">toHex</a>(int num)</pre>
<div class="block">Converts the specified number into a 4 hexadecimal characters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1165,7 +1197,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>isEquals</h4>
-<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.770">isEquals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s1,
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.790">isEquals</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s1,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s2)</pre>
<div class="block">Tests two strings for equality, but gracefully handles nulls.</div>
<dl>
@@ -1183,7 +1215,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>base64EncodeToString</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.784">base64EncodeToString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> in)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.804">base64EncodeToString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> in)</pre>
<div class="block">Shortcut for calling <code>base64Encode(in.getBytes(<js>"UTF-8"</js>))</code></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1199,7 +1231,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>base64Encode</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.796">base64Encode</a>(byte[] in)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.816">base64Encode</a>(byte[] in)</pre>
<div class="block">BASE64-encodes the specified byte array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1215,7 +1247,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>base64DecodeToString</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.826">base64DecodeToString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> in)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.846">base64DecodeToString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> in)</pre>
<div class="block">Shortcut for calling <code>base64Decode(String)</code> and converting the
result to a UTF-8 encoded string.</div>
<dl>
@@ -1232,7 +1264,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>base64Decode</h4>
-<pre>public static byte[] <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.839">base64Decode</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> in)</pre>
+<pre>public static byte[] <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.859">base64Decode</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> in)</pre>
<div class="block">BASE64-decodes the specified string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1248,7 +1280,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>generateUUID</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.894">generateUUID</a>(int numchars)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.914">generateUUID</a>(int numchars)</pre>
<div class="block">Generated a random UUID with the specified number of characters.
Characters are composed of lower-case ASCII letters and numbers only.
This method conforms to the restrictions for hostnames as specified in <a class="doclink" href="https://tools.ietf.org/html/rfc952">RFC 952</a>
@@ -1274,7 +1306,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>trim</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.912">trim</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.932">trim</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#trim--" title="class or interface in java.lang"><code>String.trim()</code></a> but prevents <code>NullPointerExceptions</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1290,7 +1322,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>parseISO8601Date</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.926">parseISO8601Date</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> date)
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.946">parseISO8601Date</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> date)
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre>
<div class="block">Parses an ISO8601 string into a date.</div>
<dl>
@@ -1309,7 +1341,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>replaceVars</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.959">replaceVars</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.979">replaceVars</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> m)</pre>
<div class="block">Simple utility for replacing variables of the form <js>"{key}"</js> with values
in the specified map.
@@ -1334,7 +1366,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>pathStartsWith</h4>
-<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1028">pathStartsWith</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1048">pathStartsWith</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pathPrefix)</pre>
<div class="block">Returns <jk>true</jk> if the specified path string is prefixed with the specified prefix.
@@ -1360,7 +1392,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>pathStartsWith</h4>
-<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1044">pathStartsWith</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1064">pathStartsWith</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] pathPrefixes)</pre>
<div class="block">Same as <a href="../../../../org/apache/juneau/internal/StringUtils.html#pathStartsWith-java.lang.String-java.lang.String-"><code>pathStartsWith(String, String)</code></a> but returns <jk>true</jk> if at least one prefix matches.
<p></div>
@@ -1379,7 +1411,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>replaceUnicodeSequences</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1057">replaceUnicodeSequences</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1077">replaceUnicodeSequences</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Replaces <js>"\\uXXXX"</js> character sequences with their unicode characters.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1395,7 +1427,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getField</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1085">getField</a>(int fieldNum,
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1105">getField</a>(int fieldNum,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char delim)</pre>
<div class="block">Returns the specified field in a delimited string without splitting the string.
@@ -1421,7 +1453,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getField</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1098">getField</a>(int fieldNum,
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1118">getField</a>(int fieldNum,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
char delim,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> def)</pre>
@@ -1443,7 +1475,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1123">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1143">toString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
<div class="block">Calls <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang"><code>Object.toString()</code></a> on the specified object if it's not null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1459,7 +1491,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>fromHexToUTF8</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1133">fromHexToUTF8</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1153">fromHexToUTF8</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</pre>
<div class="block">Converts a hexadecimal byte stream (e.g. "34A5BC") into a UTF-8 encoded string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1475,7 +1507,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>toHex</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1150">toHex</a>(byte[] bytes)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1170">toHex</a>(byte[] bytes)</pre>
<div class="block">Converts a byte array into a simple hexadecimal character string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1491,7 +1523,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>fromHex</h4>
-<pre>public static byte[] <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1165">fromHex</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</pre>
+<pre>public static byte[] <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1185">fromHex</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> hex)</pre>
<div class="block">Converts a hexadecimal character string to a byte array.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1507,7 +1539,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>repeat</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1180">repeat</a>(int count,
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1200">repeat</a>(int count,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pattern)</pre>
<div class="block">Creates a repeated pattern.</div>
<dl>
@@ -1525,7 +1557,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>trimStart</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1193">trimStart</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1213">trimStart</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Trims whitespace characters from the beginning of the specified string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1541,7 +1573,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>trimEnd</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1206">trimEnd</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1226">trimEnd</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Trims whitespace characters from the end of the specified string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1557,7 +1589,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>isOneOf</h4>
-<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1222">isOneOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1242">isOneOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... values)</pre>
<div class="block">Returns <jk>true</jk> if the specified string is one of the specified values.</div>
<dl>
@@ -1577,7 +1609,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>trimSlashes</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1235">trimSlashes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1255">trimSlashes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Trims <js>'/'</js> characters from both the start and end of the specified string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1593,7 +1625,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>trimTrailingSlashes</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1251">trimTrailingSlashes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1271">trimTrailingSlashes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Trims <js>'/'</js> characters from the end of the specified string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1609,7 +1641,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>trimTrailingSlashes</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1265">trimTrailingSlashes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1285">trimTrailingSlashes</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a> s)</pre>
<div class="block">Trims <js>'/'</js> characters from the end of the specified string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1625,7 +1657,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>urlDecode</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1279">urlDecode</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1299">urlDecode</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Decodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1641,7 +1673,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>urlEncode</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1301">urlEncode</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1321">urlEncode</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Encodes a <code>application/x-www-form-urlencoded</code> string using <code>UTF-8</code> encoding scheme.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1657,7 +1689,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>firstNonWhitespaceChar</h4>
-<pre>public static char <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1321">firstNonWhitespaceChar</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static char <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1341">firstNonWhitespaceChar</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Returns the first non-whitespace character in the string.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1673,7 +1705,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>charAt</h4>
-<pre>public static char <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1337">charAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+<pre>public static char <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1357">charAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
int i)</pre>
<div class="block">Returns the character at the specified index in the string without throwing exceptions.</div>
<dl>
@@ -1692,7 +1724,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>isAbsoluteUri</h4>
-<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1351">isAbsoluteUri</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1371">isAbsoluteUri</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Efficiently determines whether a URL is of the pattern "xxx://xxx"</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1708,7 +1740,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>isUri</h4>
-<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1404">isUri</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static boolean <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1424">isUri</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Efficiently determines whether a URL is of the pattern "xxx:/xxx".
<p>
The pattern matched is: <code>[a-z]{2,}\:\/.*</code>
@@ -1728,7 +1760,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getAuthorityUri</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1450">getAuthorityUri</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1470">getAuthorityUri</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Given an absolute URI, returns just the authority portion (e.g. <js>"http://hostname:port"</js>)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1744,7 +1776,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>toURI</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1503">toURI</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/net/URI.html?is-external=true" title="class or interface in java.net">URI</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1523">toURI</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
<div class="block">Converts the specified object to a URI.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1757,10 +1789,10 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<a name="firstNonEmpty-java.lang.String...-">
<!-- -->
</a>
-<ul class="blockListLast">
+<ul class="blockList">
<li class="blockList">
<h4>firstNonEmpty</h4>
-<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1519">firstNonEmpty</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... s)</pre>
+<pre>public static <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1539">firstNonEmpty</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... s)</pre>
<div class="block">Returns the first non-null, non-empty string in the list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1770,6 +1802,24 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</dl>
</li>
</ul>
+<a name="indexOf-java.lang.String-char...-">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>indexOf</h4>
+<pre>public static int <a href="../../../../src-html/org/apache/juneau/internal/StringUtils.html#line.1553">indexOf</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s,
+ char... c)</pre>
+<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#indexOf-int-" title="class or interface in java.lang"><code>String.indexOf(int)</code></a> except allows you to check for mulitiple characters.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>s</code> - The string to check.</dd>
+<dd><code>c</code> - The characters to check for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The index into the string that is one of the specified characters.</dd>
+</dl>
+</li>
+</ul>
</li>
</ul>
</li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/microservice/package-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/microservice/package-summary.html b/content/site/apidocs/org/apache/juneau/microservice/package-summary.html
index eb223f7..bd05d83 100644
--- a/content/site/apidocs/org/apache/juneau/microservice/package-summary.html
+++ b/content/site/apidocs/org/apache/juneau/microservice/package-summary.html
@@ -740,14 +740,14 @@
<ul>
<li><l>$R{attribute.X}</l> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequestWrapper.html?is-external=true#getAttribute-java.lang.String-" title="class or interface in javax.servlet"><code>ServletRequestWrapper.getAttribute(String)</code></a> converted to a string.
<li><l>$R{contextPath}</l> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequestWrapper.html?is-external=true#getContextPath--" title="class or interface in javax.servlet.http"><code>HttpServletRequestWrapper.getContextPath()</code></a>.
- <li><l>$R{formData.X}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-"><code>RequestFormData.getFirst(String)</code></a>.
- <li><l>$R{header.X}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getFirst-java.lang.String-"><code>RequestHeaders.getFirst(String)</code></a>.
+ <li><l>$R{formData.X}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>RequestFormData.getString(String)</code></a>.
+ <li><l>$R{header.X}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>RequestHeaders.getString(String)</code></a>.
<li><l>$R{method}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getMethod--"><code>RestRequest.getMethod()</code></a>.
<li><l>$R{methodSummary}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getMethodSummary--"><code>RestRequest.getMethodSummary()</code></a>.
<li><l>$R{methodDescription}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getMethodDescription--"><code>RestRequest.getMethodDescription()</code></a>.
<li><l>$R{path.X}</l> - Value returned by <a href="http://docs.oracle.com/javase/7/docs/api/java/util/TreeMap.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>TreeMap.get(Object)</code></a>.
<li><l>$R{pathInfo}</l> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequestWrapper.html?is-external=true#getPathInfo--" title="class or interface in javax.servlet.http"><code>HttpServletRequestWrapper.getPathInfo()</code></a>.
- <li><l>$R{query.X}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-"><code>RequestQuery.getFirst(String)</code></a>.
+ <li><l>$R{query.X}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>RequestQuery.getString(String)</code></a>.
<li><l>$R{requestParentURI}</l> - Value returned by <a href="../../../../org/apache/juneau/UriContext.html#getRootRelativePathInfoParent--"><code>UriContext.getRootRelativePathInfoParent()</code></a>.
<li><l>$R{requestURI}</l> - Value returned by <a href="http://docs.oracle.com/javaee/5/api/javax/servlet/http/HttpServletRequestWrapper.html?is-external=true#getRequestURI--" title="class or interface in javax.servlet.http"><code>HttpServletRequestWrapper.getRequestURI()</code></a>.
<li><l>$R{servletDescription}</l> - Value returned by <a href="../../../../org/apache/juneau/rest/RestRequest.html#getServletDescription--"><code>RestRequest.getServletDescription()</code></a>.
[19/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/ObjectMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/ObjectMap.html b/content/site/apidocs/org/apache/juneau/ObjectMap.html
index db77d22..899128c 100644
--- a/content/site/apidocs/org/apache/juneau/ObjectMap.html
+++ b/content/site/apidocs/org/apache/juneau/ObjectMap.html
@@ -816,7 +816,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>ObjectMap</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.163">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang">CharSequence</a> s)
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.167">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang">CharSequence</a> s)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Shortcut for <code><jk>new</jk> ObjectMap(string,JsonParser.<jsf>DEFAULT</jsf>);</code></div>
<dl>
@@ -833,7 +833,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>ObjectMap</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.175">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.179">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
<a href="../../../org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser">Parser</a> p)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -854,7 +854,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>ObjectMap</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.187">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r)
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.191">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Shortcut for <code><jk>new</jk> ObjectMap(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>.</div>
@@ -873,7 +873,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>ObjectMap</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.201">ObjectMap</a>()</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.205">ObjectMap</a>()</pre>
<div class="block">Construct an empty JSON object (i.e. an empty <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html?is-external=true" title="class or interface in java.util"><code>LinkedHashMap</code></a>).</div>
</li>
</ul>
@@ -883,7 +883,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>ObjectMap</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.210">ObjectMap</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.214">ObjectMap</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
<div class="block">Construct an empty JSON object (i.e. an empty <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMap.html?is-external=true" title="class or interface in java.util"><code>LinkedHashMap</code></a>) with the specified bean context.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -897,7 +897,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockListLast">
<li class="blockList">
<h4>ObjectMap</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.219">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> m)</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.223">ObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> m)</pre>
<div class="block">Construct a JSON object and fill it with the contents from the specified <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -919,7 +919,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>setInner</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.245">setInner</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> inner)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.249">setInner</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> inner)</pre>
<div class="block">Set an inner map in this map to allow for chained get calls.
<p>
If <a href="../../../org/apache/juneau/ObjectMap.html#get-java.lang.Object-"><code>get(Object)</code></a> returns <jk>null</jk>, then <a href="../../../org/apache/juneau/ObjectMap.html#get-java.lang.Object-"><code>get(Object)</code></a> will be called on the inner map.
@@ -949,7 +949,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findKeyIgnoreCase</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.256">findKeyIgnoreCase</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.260">findKeyIgnoreCase</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Searches for the specified key in this map ignoring case.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -965,7 +965,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>setBeanSession</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.273">setBeanSession</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.277">setBeanSession</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
<div class="block">Override the default bean session used for converting POJOs.
<p>
Default is <a href="../../../org/apache/juneau/BeanContext.html#DEFAULT"><code>BeanContext.DEFAULT</code></a>, which is sufficient in most cases.
@@ -985,7 +985,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getBeanSession</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.283">getBeanSession</a>()</pre>
+<pre>public <a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.287">getBeanSession</a>()</pre>
<div class="block">Returns the <a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau"><code>BeanSession</code></a> currently associated with this map.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -999,7 +999,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>append</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.297">append</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.301">append</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</pre>
<div class="block">Convenience method for adding multiple objects to this map.
<p>
@@ -1020,7 +1020,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>appendAll</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.311">appendAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> m)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.315">appendAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> m)</pre>
<div class="block">Convenience method for adding a contents of another map to this map.
<p>
Equivalent to calling <code>putAll(m)</code>, but returns
@@ -1039,7 +1039,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.317">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.321">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> key)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util">get</a></code> in interface <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>></code></dd>
@@ -1054,7 +1054,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.332">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.336">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> def)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>get()</code></a>, but returns the default value if the key
could not be found.</div>
@@ -1073,7 +1073,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.347">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.351">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>get()</code></a>, but casts or converts the value to the specified class type.
<p>
@@ -1095,7 +1095,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.361">get</a>(<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a><T,?> pojoSwap,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.365">get</a>(<a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform">PojoSwap</a><T,?> pojoSwap,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>get()</code></a>, but converts the raw value to the specified class type using the specified beanFilter.</div>
@@ -1120,7 +1120,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.381">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.385">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
T def)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>get()</code></a>, but casts or converts the value to the specified class type.
@@ -1144,7 +1144,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.405">get</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.409">get</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>get()</code></a>, but casts or converts the value to the specified class type.
<p>
@@ -1168,7 +1168,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.420">get</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.424">get</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
T def)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#get-java.lang.Object-" title="class or interface in java.util"><code>get()</code></a>, but casts or converts the value to the specified class type.
@@ -1192,7 +1192,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>find</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.433">find</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.437">find</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the value for the first key in the list that has an entry in this map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1208,7 +1208,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>find</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.452">find</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.456">find</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the value for the first key in the list that has an entry in this map.
<p>
@@ -1232,7 +1232,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getAt</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.483">getAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.487">getAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path)</pre>
<div class="block">Same as <a href="../../../org/apache/juneau/ObjectMap.html#get-java.lang.Class-java.lang.String-"><code>get(Class,String)</code></a>, but the key is a slash-delimited
path used to traverse entries in this POJO.
@@ -1268,7 +1268,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>putAt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.510">putAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.514">putAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
<div class="block">Same as <code>put(String,Object)</code>, but the key is a slash-delimited
path used to traverse entries in this POJO.
@@ -1302,7 +1302,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>postAt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.537">postAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.541">postAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
<div class="block">Similar to <a href="../../../org/apache/juneau/ObjectMap.html#putAt-java.lang.String-java.lang.Object-"><code>putAt(String,Object)</code></a>, but used to append
to collections and arrays.
@@ -1336,7 +1336,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>deleteAt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.563">deleteAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.567">deleteAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path)</pre>
<div class="block">Similar to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html?is-external=true#remove-java.lang.Object-" title="class or interface in java.util"><code>remove(Object)</code></a>,but the key is a slash-delimited
path used to traverse entries in this POJO.
<p>
@@ -1368,7 +1368,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>putJson</h4>
-<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.576">putJson</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.580">putJson</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> json)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Convenience method for inserting JSON directly into an attribute on this object.
@@ -1389,7 +1389,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.588">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.592">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.
<p>
Shortcut for <code>get(String.<jk>class</jk>, key)</code>.</div>
@@ -1407,7 +1407,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getStringArray</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.599">getStringArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.603">getStringArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Specialized method that calls <a href="../../../org/apache/juneau/ObjectMap.html#getString-java.lang.String-"><code>getString(String)</code></a> and splits the
results as a simple comma-delimited list.</div>
<dl>
@@ -1424,7 +1424,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getStringArray</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.611">getStringArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.615">getStringArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] def)</pre>
<div class="block">Same as <a href="../../../org/apache/juneau/ObjectMap.html#getStringArray-java.lang.String-"><code>getStringArray(String)</code></a> but returns a default value if the value cannot be found.</div>
<dl>
@@ -1442,7 +1442,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.626">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.630">getString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.
<p>
@@ -1462,7 +1462,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getInt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.639">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.643">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>.
<p>
Shortcut for <code>get(Integer.<jk>class</jk>, key)</code>.</div>
@@ -1482,7 +1482,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getInt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.653">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.657">getInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> defVal)</pre>
<div class="block">Returns the specified entry value converted to an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>.
<p>
@@ -1504,7 +1504,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getLong</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.666">getLong</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.670">getLong</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a>.
<p>
Shortcut for <code>get(Long.<jk>class</jk>, key)</code>.</div>
@@ -1524,7 +1524,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getLong</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.680">getLong</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.684">getLong</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a>.
<p>
@@ -1546,7 +1546,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getBoolean</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.693">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.697">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>.
<p>
Shortcut for <code>get(Boolean.<jk>class</jk>, key)</code>.</div>
@@ -1566,7 +1566,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getBoolean</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.707">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.711">getBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>.
<p>
@@ -1588,7 +1588,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getMap</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.720">getMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.724">getMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.
<p>
Shortcut for <code>get(Map.<jk>class</jk>, key)</code>.</div>
@@ -1608,7 +1608,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getMap</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.734">getMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.738">getMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.
<p>
@@ -1630,7 +1630,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getList</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.747">getList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.751">getList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.
<p>
Shortcut for <code>get(List.<jk>class</jk>, key)</code>.</div>
@@ -1650,7 +1650,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getList</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.761">getList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.765">getList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.
<p>
@@ -1672,7 +1672,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getObjectMap</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.774">getObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.778">getObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.
<p>
Shortcut for <code>get(ObjectMap.<jk>class</jk>, key)</code>.</div>
@@ -1692,7 +1692,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getObjectMap</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.788">getObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.792">getObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a>.
<p>
@@ -1714,7 +1714,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getObjectList</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.801">getObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.805">getObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the specified entry value converted to a <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a>.
<p>
Shortcut for <code>get(ObjectList.<jk>class</jk>, key)</code>.</div>
@@ -1734,7 +1734,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getObjectList</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.815">getObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.819">getObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> defVal)</pre>
<div class="block">Returns the specified entry value converted to a <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a>.
<p>
@@ -1756,7 +1756,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.828">findString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.832">findString</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.
<p>
Shortcut for <code>find(String.<jk>class</jk>, keys)</code>.</div>
@@ -1775,7 +1775,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findInt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.842">findInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.846">findInt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>.
<p>
Shortcut for <code>find(Integer.<jk>class</jk>, keys)</code>.</div>
@@ -1796,7 +1796,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findLong</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.856">findLong</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.860">findLong</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang"><code>Long</code></a>.
<p>
Shortcut for <code>find(Long.<jk>class</jk>, keys)</code>.</div>
@@ -1817,7 +1817,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findBoolean</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.870">findBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.874">findBoolean</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>.
<p>
Shortcut for <code>find(Boolean.<jk>class</jk>, keys)</code>.</div>
@@ -1838,7 +1838,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findMap</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.884">findMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.888">findMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>.
<p>
Shortcut for <code>find(Map.<jk>class</jk>, keys)</code>.</div>
@@ -1859,7 +1859,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findList</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.898">findList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.902">findList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.
<p>
Shortcut for <code>find(List.<jk>class</jk>, keys)</code>.</div>
@@ -1880,7 +1880,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findObjectMap</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.912">findObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.916">findObjectMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau"><code>ObjectMap</code></a>.
<p>
Shortcut for <code>find(ObjectMap.<jk>class</jk>, keys)</code>.</div>
@@ -1901,7 +1901,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>findObjectList</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.926">findObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.930">findObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns the first entry that exists converted to a <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau"><code>ObjectList</code></a>.
<p>
Shortcut for <code>find(ObjectList.<jk>class</jk>, keys)</code>.</div>
@@ -1922,7 +1922,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getFirstKey</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.935">getFirstKey</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.939">getFirstKey</a>()</pre>
<div class="block">Returns the first key in the map.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -1936,7 +1936,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>getClassMeta</h4>
-<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.945">getClassMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
+<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.949">getClassMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key)</pre>
<div class="block">Returns the class type of the object at the specified index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1954,7 +1954,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.959">remove</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.963">remove</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
T defVal)</pre>
<div class="block">Equivalent to calling <code>get(class,key,def)</code> followed by <code>remove(key);</code></div>
@@ -1978,7 +1978,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
-<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.971">removeAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> keys)</pre>
+<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.975">removeAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> keys)</pre>
<div class="block">Convenience method for removing several keys at once.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1992,7 +1992,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
-<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.981">removeAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.985">removeAll</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Convenience method for removing several keys at once.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2006,7 +2006,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>containsKey</h4>
-<pre>public boolean <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.987">containsKey</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> key)</pre>
+<pre>public boolean <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.991">containsKey</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> key)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#containsKey-java.lang.Object-" title="class or interface in java.util">containsKey</a></code> in interface <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>></code></dd>
@@ -2021,7 +2021,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>containsOuterKey</h4>
-<pre>public boolean <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1002">containsOuterKey</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> key)</pre>
+<pre>public boolean <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1006">containsOuterKey</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> key)</pre>
<div class="block">Returns <jk>true</jk> if this map contains the specified key, ignoring
the inner map if it exists.</div>
<dl>
@@ -2038,7 +2038,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>include</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1012">include</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1016">include</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns a copy of this <code>ObjectMap</code> with only the specified keys.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2054,7 +2054,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>exclude</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1027">exclude</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1031">exclude</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>... keys)</pre>
<div class="block">Returns a copy of this <code>ObjectMap</code> without the specified keys.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -2070,7 +2070,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>putIfNull</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1047">putIfNull</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1051">putIfNull</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> val)</pre>
<div class="block">Sets a value in this map if the entry does not exist or the value is <jk>null</jk>.</div>
<dl>
@@ -2088,7 +2088,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>putIfEmpty</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1061">putIfEmpty</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1065">putIfEmpty</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> val)</pre>
<div class="block">Sets a value in this map if the entry does not exist or the value is <jk>null</jk> or an empty string.</div>
<dl>
@@ -2106,7 +2106,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1081">cast</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)</pre>
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1085">cast</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)</pre>
<div class="block">Converts this map into an object of the specified type.
<p>
If this map contains a <js>"_type"</js> entry, it must be the same as or a subclass
@@ -2130,7 +2130,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>cast</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1101">cast</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><T> cm)</pre>
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1105">cast</a>(<a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><T> cm)</pre>
<div class="block">Same as <a href="../../../org/apache/juneau/ObjectMap.html#cast-java.lang.Class-"><code>cast(Class)</code></a>, except allows you to specify a <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> parameter.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
@@ -2151,7 +2151,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1215">toString</a>(<a href="../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a> serializer)
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1219">toString</a>(<a href="../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a> serializer)
throws <a href="../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
<div class="block">Serialize this object into a string using the specified serializer.</div>
<dl>
@@ -2170,7 +2170,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1223">toString</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1227">toString</a>()</pre>
<div class="block">Serialize this object into a JSON string using the <a href="../../../org/apache/juneau/json/JsonSerializer.html#DEFAULT"><code>JsonSerializer.DEFAULT</code></a> serializer.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -2184,7 +2184,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>serializeTo</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1240">serializeTo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> w)
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1244">serializeTo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> w)
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
<div class="block">Convenience method for serializing this map to the specified <code>Writer</code> using
@@ -2206,7 +2206,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockList">
<li class="blockList">
<h4>keySet</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1246">keySet</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1250">keySet</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#keySet--" title="class or interface in java.util">keySet</a></code> in interface <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>></code></dd>
@@ -2221,7 +2221,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedHashMa
<ul class="blockListLast">
<li class="blockList">
<h4>entrySet</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>>> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1256">entrySet</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>>> <a href="../../../src-html/org/apache/juneau/ObjectMap.html#line.1260">entrySet</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true#entrySet--" title="class or interface in java.util">entrySet</a></code> in interface <code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>></code></dd>
[12/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
index 10b970a..f9e091e 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.Builder.html
@@ -220,779 +220,801 @@
<span class="sourceLineNo">212</span> if (typeMeta == null)<a name="line.212"></a>
<span class="sourceLineNo">213</span> typeMeta = rawTypeMeta;<a name="line.213"></a>
<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span> System.err.println("swap=" + swap);<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> return true;<a name="line.217"></a>
-<span class="sourceLineNo">218</span> }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span> /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * @return A new BeanPropertyMeta object using this builder.<a name="line.221"></a>
-<span class="sourceLineNo">222</span> */<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public BeanPropertyMeta build() {<a name="line.223"></a>
-<span class="sourceLineNo">224</span> return new BeanPropertyMeta(this);<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span> private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.227"></a>
-<span class="sourceLineNo">228</span> if (! p.format().isEmpty())<a name="line.228"></a>
-<span class="sourceLineNo">229</span> return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.229"></a>
-<span class="sourceLineNo">230</span> Class<?> c = p.swap();<a name="line.230"></a>
-<span class="sourceLineNo">231</span> if (c == Null.class)<a name="line.231"></a>
-<span class="sourceLineNo">232</span> return null;<a name="line.232"></a>
-<span class="sourceLineNo">233</span> if (isParentClass(PojoSwap.class, c))<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return newInstance(PojoSwap.class, c);<a name="line.234"></a>
-<span class="sourceLineNo">235</span> throw new RuntimeException("TODO - Surrogate swaps not yet supported.");<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> setAccessible(getter);<a name="line.239"></a>
-<span class="sourceLineNo">240</span> this.getter = getter;<a name="line.240"></a>
-<span class="sourceLineNo">241</span> return this;<a name="line.241"></a>
-<span class="sourceLineNo">242</span> }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span> BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span> setAccessible(setter);<a name="line.245"></a>
-<span class="sourceLineNo">246</span> this.setter = setter;<a name="line.246"></a>
-<span class="sourceLineNo">247</span> return this;<a name="line.247"></a>
-<span class="sourceLineNo">248</span> }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> BeanPropertyMeta.Builder setField(Field field) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span> setAccessible(field);<a name="line.251"></a>
-<span class="sourceLineNo">252</span> this.field = field;<a name="line.252"></a>
-<span class="sourceLineNo">253</span> return this;<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span> BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span> this.isConstructorArg = true;<a name="line.257"></a>
-<span class="sourceLineNo">258</span> return this;<a name="line.258"></a>
-<span class="sourceLineNo">259</span> }<a name="line.259"></a>
+<span class="sourceLineNo">215</span> return true;<a name="line.215"></a>
+<span class="sourceLineNo">216</span> }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span> /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * @return A new BeanPropertyMeta object using this builder.<a name="line.219"></a>
+<span class="sourceLineNo">220</span> */<a name="line.220"></a>
+<span class="sourceLineNo">221</span> public BeanPropertyMeta build() {<a name="line.221"></a>
+<span class="sourceLineNo">222</span> return new BeanPropertyMeta(this);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.225"></a>
+<span class="sourceLineNo">226</span> if (! p.format().isEmpty())<a name="line.226"></a>
+<span class="sourceLineNo">227</span> return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Class<?> c = p.swap();<a name="line.228"></a>
+<span class="sourceLineNo">229</span> if (c == Null.class)<a name="line.229"></a>
+<span class="sourceLineNo">230</span> return null;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> if (isParentClass(PojoSwap.class, c))<a name="line.231"></a>
+<span class="sourceLineNo">232</span> return newInstance(PojoSwap.class, c);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> throw new RuntimeException("TODO - Surrogate swaps not yet supported.");<a name="line.233"></a>
+<span class="sourceLineNo">234</span> }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span> BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> setAccessible(getter);<a name="line.237"></a>
+<span class="sourceLineNo">238</span> this.getter = getter;<a name="line.238"></a>
+<span class="sourceLineNo">239</span> return this;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span> BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> setAccessible(setter);<a name="line.243"></a>
+<span class="sourceLineNo">244</span> this.setter = setter;<a name="line.244"></a>
+<span class="sourceLineNo">245</span> return this;<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span> BeanPropertyMeta.Builder setField(Field field) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> setAccessible(field);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> this.field = field;<a name="line.250"></a>
+<span class="sourceLineNo">251</span> return this;<a name="line.251"></a>
+<span class="sourceLineNo">252</span> }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span> BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span> this.isConstructorArg = true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span> return this;<a name="line.256"></a>
+<span class="sourceLineNo">257</span> }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span> }<a name="line.259"></a>
<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span> }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span> /**<a name="line.263"></a>
-<span class="sourceLineNo">264</span> * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.264"></a>
-<span class="sourceLineNo">265</span> *<a name="line.265"></a>
-<span class="sourceLineNo">266</span> * @param b The builder to copy fields from.<a name="line.266"></a>
-<span class="sourceLineNo">267</span> */<a name="line.267"></a>
-<span class="sourceLineNo">268</span> protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> this.field = b.field;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> this.getter = b.getter;<a name="line.270"></a>
-<span class="sourceLineNo">271</span> this.setter = b.setter;<a name="line.271"></a>
-<span class="sourceLineNo">272</span> this.isUri = b.isUri;<a name="line.272"></a>
-<span class="sourceLineNo">273</span> this.beanMeta = b.beanMeta;<a name="line.273"></a>
-<span class="sourceLineNo">274</span> this.beanContext = b.beanContext;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> this.name = b.name;<a name="line.275"></a>
-<span class="sourceLineNo">276</span> this.rawTypeMeta = b.rawTypeMeta;<a name="line.276"></a>
-<span class="sourceLineNo">277</span> this.typeMeta = b.typeMeta;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> this.properties = b.properties;<a name="line.278"></a>
-<span class="sourceLineNo">279</span> this.swap = b.swap;<a name="line.279"></a>
-<span class="sourceLineNo">280</span> this.beanRegistry = b.beanRegistry;<a name="line.280"></a>
-<span class="sourceLineNo">281</span> this.overrideValue = b.overrideValue;<a name="line.281"></a>
-<span class="sourceLineNo">282</span> this.delegateFor = b.delegateFor;<a name="line.282"></a>
-<span class="sourceLineNo">283</span> this.extMeta = b.extMeta;<a name="line.283"></a>
-<span class="sourceLineNo">284</span> this.isDyna = b.isDyna;<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span> /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span> * Returns the name of this bean property.<a name="line.288"></a>
-<span class="sourceLineNo">289</span> *<a name="line.289"></a>
-<span class="sourceLineNo">290</span> * @return The name of the bean property.<a name="line.290"></a>
-<span class="sourceLineNo">291</span> */<a name="line.291"></a>
-<span class="sourceLineNo">292</span> public String getName() {<a name="line.292"></a>
-<span class="sourceLineNo">293</span> return name;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> }<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span> /**<a name="line.296"></a>
-<span class="sourceLineNo">297</span> * Returns the bean meta that this property belongs to.<a name="line.297"></a>
-<span class="sourceLineNo">298</span> *<a name="line.298"></a>
-<span class="sourceLineNo">299</span> * @return The bean meta that this property belongs to.<a name="line.299"></a>
-<span class="sourceLineNo">300</span> */<a name="line.300"></a>
-<span class="sourceLineNo">301</span> @BeanIgnore<a name="line.301"></a>
-<span class="sourceLineNo">302</span> public BeanMeta<?> getBeanMeta() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> return beanMeta;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span> /**<a name="line.306"></a>
-<span class="sourceLineNo">307</span> * Returns the getter method for this property.<a name="line.307"></a>
-<span class="sourceLineNo">308</span> *<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return The getter method for this bean property, or <jk>null</jk> if there is no getter method.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> */<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public Method getGetter() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> return getter;<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span> /**<a name="line.315"></a>
-<span class="sourceLineNo">316</span> * Returns the setter method for this property.<a name="line.316"></a>
-<span class="sourceLineNo">317</span> *<a name="line.317"></a>
-<span class="sourceLineNo">318</span> * @return The setter method for this bean property, or <jk>null</jk> if there is no setter method.<a name="line.318"></a>
-<span class="sourceLineNo">319</span> */<a name="line.319"></a>
-<span class="sourceLineNo">320</span> public Method getSetter() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> return setter;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span> * Returns the field for this property.<a name="line.325"></a>
-<span class="sourceLineNo">326</span> *<a name="line.326"></a>
-<span class="sourceLineNo">327</span> * @return The field for this bean property, or <jk>null</jk> if there is no field associated with this bean property.<a name="line.327"></a>
-<span class="sourceLineNo">328</span> */<a name="line.328"></a>
-<span class="sourceLineNo">329</span> public Field getField() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span> return field;<a name="line.330"></a>
-<span class="sourceLineNo">331</span> }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span> /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span> * Returns the {@link ClassMeta} of the class of this property.<a name="line.334"></a>
-<span class="sourceLineNo">335</span> * <p><a name="line.335"></a>
-<span class="sourceLineNo">336</span> * If this property or the property type class has a {@link PojoSwap} associated with it, this<a name="line.336"></a>
-<span class="sourceLineNo">337</span> * method returns the transformed class meta.<a name="line.337"></a>
-<span class="sourceLineNo">338</span> * This matches the class type that is used by the {@link #get(BeanMap,String)} and {@link #set(BeanMap,String,Object)} methods.<a name="line.338"></a>
-<span class="sourceLineNo">339</span> *<a name="line.339"></a>
-<span class="sourceLineNo">340</span> * @return The {@link ClassMeta} of the class of this property.<a name="line.340"></a>
-<span class="sourceLineNo">341</span> */<a name="line.341"></a>
-<span class="sourceLineNo">342</span> public ClassMeta<?> getClassMeta() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span> return typeMeta;<a name="line.343"></a>
-<span class="sourceLineNo">344</span> }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span> /**<a name="line.346"></a>
-<span class="sourceLineNo">347</span> * Returns the bean dictionary in use for this bean property.<a name="line.347"></a>
-<span class="sourceLineNo">348</span> * The order of lookup for the dictionary is as follows:<a name="line.348"></a>
-<span class="sourceLineNo">349</span> * <ol><a name="line.349"></a>
-<span class="sourceLineNo">350</span> * <li>Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.350"></a>
-<span class="sourceLineNo">351</span> * <li>Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> * </ol><a name="line.352"></a>
-<span class="sourceLineNo">353</span> * @return The bean dictionary in use for this bean property. Never <jk>null</jk>.<a name="line.353"></a>
-<span class="sourceLineNo">354</span> */<a name="line.354"></a>
-<span class="sourceLineNo">355</span> public BeanRegistry getBeanRegistry() {<a name="line.355"></a>
-<span class="sourceLineNo">356</span> return beanRegistry;<a name="line.356"></a>
-<span class="sourceLineNo">357</span> }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span> /**<a name="line.359"></a>
-<span class="sourceLineNo">360</span> * Returns <jk>true</jk> if this bean property is a URI.<a name="line.360"></a>
-<span class="sourceLineNo">361</span> * <p><a name="line.361"></a>
-<span class="sourceLineNo">362</span> * A bean property can be considered a URI if any of the following are true:<a name="line.362"></a>
-<span class="sourceLineNo">363</span> * <ul class='spaced-list'><a name="line.363"></a>
-<span class="sourceLineNo">364</span> * <li>Property class type is {@link URL} or {@link URI}.<a name="line.364"></a>
-<span class="sourceLineNo">365</span> * <li>Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.365"></a>
-<span class="sourceLineNo">366</span> * <li>Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.366"></a>
-<span class="sourceLineNo">367</span> * </ul><a name="line.367"></a>
-<span class="sourceLineNo">368</span> *<a name="line.368"></a>
-<span class="sourceLineNo">369</span> * @return <jk>true</jk> if this bean property is a URI.<a name="line.369"></a>
-<span class="sourceLineNo">370</span> */<a name="line.370"></a>
-<span class="sourceLineNo">371</span> public boolean isUri() {<a name="line.371"></a>
-<span class="sourceLineNo">372</span> return isUri;<a name="line.372"></a>
-<span class="sourceLineNo">373</span> }<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span> /**<a name="line.375"></a>
-<span class="sourceLineNo">376</span> * Returns <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.376"></a>
-<span class="sourceLineNo">377</span> * @return <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.377"></a>
-<span class="sourceLineNo">378</span> */<a name="line.378"></a>
-<span class="sourceLineNo">379</span> public boolean isDyna() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span> return isDyna;<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span> * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.384"></a>
-<span class="sourceLineNo">385</span> * on this property.<a name="line.385"></a>
-<span class="sourceLineNo">386</span> *<a name="line.386"></a>
-<span class="sourceLineNo">387</span> * @return The list of override properties, or <jk>null</jk> if annotation not specified.<a name="line.387"></a>
-<span class="sourceLineNo">388</span> */<a name="line.388"></a>
-<span class="sourceLineNo">389</span> public String[] getProperties() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span> return properties;<a name="line.390"></a>
-<span class="sourceLineNo">391</span> }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span> /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span> * Returns the language-specified extended metadata on this bean property.<a name="line.394"></a>
-<span class="sourceLineNo">395</span> *<a name="line.395"></a>
-<span class="sourceLineNo">396</span> * @param c The name of the metadata class to create.<a name="line.396"></a>
-<span class="sourceLineNo">397</span> * @return Extended metadata on this bean property. Never <jk>null</jk>.<a name="line.397"></a>
-<span class="sourceLineNo">398</span> */<a name="line.398"></a>
-<span class="sourceLineNo">399</span> public <M extends BeanPropertyMetaExtended> M getExtendedMeta(Class<M> c) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span> if (delegateFor != null)<a name="line.400"></a>
-<span class="sourceLineNo">401</span> return delegateFor.getExtendedMeta(c);<a name="line.401"></a>
-<span class="sourceLineNo">402</span> return extMeta.get(c, this);<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> /**<a name="line.405"></a>
-<span class="sourceLineNo">406</span> * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.406"></a>
-<span class="sourceLineNo">407</span> *<a name="line.407"></a>
-<span class="sourceLineNo">408</span> * @param m The bean map to get the transformed value from.<a name="line.408"></a>
-<span class="sourceLineNo">409</span> * @param pName The property name.<a name="line.409"></a>
-<span class="sourceLineNo">410</span> * @return The property value.<a name="line.410"></a>
-<span class="sourceLineNo">411</span> */<a name="line.411"></a>
-<span class="sourceLineNo">412</span> public Object get(BeanMap<?> m, String pName) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span> try {<a name="line.413"></a>
-<span class="sourceLineNo">414</span> if (overrideValue != null)<a name="line.414"></a>
-<span class="sourceLineNo">415</span> return overrideValue;<a name="line.415"></a>
-<span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span> // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.417"></a>
-<span class="sourceLineNo">418</span> Object bean = m.bean;<a name="line.418"></a>
-<span class="sourceLineNo">419</span> if (bean == null)<a name="line.419"></a>
-<span class="sourceLineNo">420</span> return m.propertyCache.get(name);<a name="line.420"></a>
+<span class="sourceLineNo">261</span> /**<a name="line.261"></a>
+<span class="sourceLineNo">262</span> * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.262"></a>
+<span class="sourceLineNo">263</span> *<a name="line.263"></a>
+<span class="sourceLineNo">264</span> * @param b The builder to copy fields from.<a name="line.264"></a>
+<span class="sourceLineNo">265</span> */<a name="line.265"></a>
+<span class="sourceLineNo">266</span> protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> this.field = b.field;<a name="line.267"></a>
+<span class="sourceLineNo">268</span> this.getter = b.getter;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> this.setter = b.setter;<a name="line.269"></a>
+<span class="sourceLineNo">270</span> this.isUri = b.isUri;<a name="line.270"></a>
+<span class="sourceLineNo">271</span> this.beanMeta = b.beanMeta;<a name="line.271"></a>
+<span class="sourceLineNo">272</span> this.beanContext = b.beanContext;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> this.name = b.name;<a name="line.273"></a>
+<span class="sourceLineNo">274</span> this.rawTypeMeta = b.rawTypeMeta;<a name="line.274"></a>
+<span class="sourceLineNo">275</span> this.typeMeta = b.typeMeta;<a name="line.275"></a>
+<span class="sourceLineNo">276</span> this.properties = b.properties;<a name="line.276"></a>
+<span class="sourceLineNo">277</span> this.swap = b.swap;<a name="line.277"></a>
+<span class="sourceLineNo">278</span> this.beanRegistry = b.beanRegistry;<a name="line.278"></a>
+<span class="sourceLineNo">279</span> this.overrideValue = b.overrideValue;<a name="line.279"></a>
+<span class="sourceLineNo">280</span> this.delegateFor = b.delegateFor;<a name="line.280"></a>
+<span class="sourceLineNo">281</span> this.extMeta = b.extMeta;<a name="line.281"></a>
+<span class="sourceLineNo">282</span> this.isDyna = b.isDyna;<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span> * Returns the name of this bean property.<a name="line.286"></a>
+<span class="sourceLineNo">287</span> *<a name="line.287"></a>
+<span class="sourceLineNo">288</span> * @return The name of the bean property.<a name="line.288"></a>
+<span class="sourceLineNo">289</span> */<a name="line.289"></a>
+<span class="sourceLineNo">290</span> public String getName() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span> return name;<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span> /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * Returns the bean meta that this property belongs to.<a name="line.295"></a>
+<span class="sourceLineNo">296</span> *<a name="line.296"></a>
+<span class="sourceLineNo">297</span> * @return The bean meta that this property belongs to.<a name="line.297"></a>
+<span class="sourceLineNo">298</span> */<a name="line.298"></a>
+<span class="sourceLineNo">299</span> @BeanIgnore<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public BeanMeta<?> getBeanMeta() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span> return beanMeta;<a name="line.301"></a>
+<span class="sourceLineNo">302</span> }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span> /**<a name="line.304"></a>
+<span class="sourceLineNo">305</span> * Returns the getter method for this property.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> *<a name="line.306"></a>
+<span class="sourceLineNo">307</span> * @return The getter method for this bean property, or <jk>null</jk> if there is no getter method.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> public Method getGetter() {<a name="line.309"></a>
+<span class="sourceLineNo">310</span> return getter;<a name="line.310"></a>
+<span class="sourceLineNo">311</span> }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span> /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * Returns the setter method for this property.<a name="line.314"></a>
+<span class="sourceLineNo">315</span> *<a name="line.315"></a>
+<span class="sourceLineNo">316</span> * @return The setter method for this bean property, or <jk>null</jk> if there is no setter method.<a name="line.316"></a>
+<span class="sourceLineNo">317</span> */<a name="line.317"></a>
+<span class="sourceLineNo">318</span> public Method getSetter() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span> return setter;<a name="line.319"></a>
+<span class="sourceLineNo">320</span> }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span> /**<a name="line.322"></a>
+<span class="sourceLineNo">323</span> * Returns the field for this property.<a name="line.323"></a>
+<span class="sourceLineNo">324</span> *<a name="line.324"></a>
+<span class="sourceLineNo">325</span> * @return The field for this bean property, or <jk>null</jk> if there is no field associated with this bean property.<a name="line.325"></a>
+<span class="sourceLineNo">326</span> */<a name="line.326"></a>
+<span class="sourceLineNo">327</span> public Field getField() {<a name="line.327"></a>
+<span class="sourceLineNo">328</span> return field;<a name="line.328"></a>
+<span class="sourceLineNo">329</span> }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span> /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span> * Returns the {@link ClassMeta} of the class of this property.<a name="line.332"></a>
+<span class="sourceLineNo">333</span> * <p><a name="line.333"></a>
+<span class="sourceLineNo">334</span> * If this property or the property type class has a {@link PojoSwap} associated with it, this<a name="line.334"></a>
+<span class="sourceLineNo">335</span> * method returns the transformed class meta.<a name="line.335"></a>
+<span class="sourceLineNo">336</span> * This matches the class type that is used by the {@link #get(BeanMap,String)} and {@link #set(BeanMap,String,Object)} methods.<a name="line.336"></a>
+<span class="sourceLineNo">337</span> *<a name="line.337"></a>
+<span class="sourceLineNo">338</span> * @return The {@link ClassMeta} of the class of this property.<a name="line.338"></a>
+<span class="sourceLineNo">339</span> */<a name="line.339"></a>
+<span class="sourceLineNo">340</span> public ClassMeta<?> getClassMeta() {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> return typeMeta;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span> /**<a name="line.344"></a>
+<span class="sourceLineNo">345</span> * Returns the bean dictionary in use for this bean property.<a name="line.345"></a>
+<span class="sourceLineNo">346</span> * The order of lookup for the dictionary is as follows:<a name="line.346"></a>
+<span class="sourceLineNo">347</span> * <ol><a name="line.347"></a>
+<span class="sourceLineNo">348</span> * <li>Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.348"></a>
+<span class="sourceLineNo">349</span> * <li>Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.349"></a>
+<span class="sourceLineNo">350</span> * </ol><a name="line.350"></a>
+<span class="sourceLineNo">351</span> * @return The bean dictionary in use for this bean property. Never <jk>null</jk>.<a name="line.351"></a>
+<span class="sourceLineNo">352</span> */<a name="line.352"></a>
+<span class="sourceLineNo">353</span> public BeanRegistry getBeanRegistry() {<a name="line.353"></a>
+<span class="sourceLineNo">354</span> return beanRegistry;<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span> /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span> * Returns <jk>true</jk> if this bean property is a URI.<a name="line.358"></a>
+<span class="sourceLineNo">359</span> * <p><a name="line.359"></a>
+<span class="sourceLineNo">360</span> * A bean property can be considered a URI if any of the following are true:<a name="line.360"></a>
+<span class="sourceLineNo">361</span> * <ul class='spaced-list'><a name="line.361"></a>
+<span class="sourceLineNo">362</span> * <li>Property class type is {@link URL} or {@link URI}.<a name="line.362"></a>
+<span class="sourceLineNo">363</span> * <li>Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.363"></a>
+<span class="sourceLineNo">364</span> * <li>Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.364"></a>
+<span class="sourceLineNo">365</span> * </ul><a name="line.365"></a>
+<span class="sourceLineNo">366</span> *<a name="line.366"></a>
+<span class="sourceLineNo">367</span> * @return <jk>true</jk> if this bean property is a URI.<a name="line.367"></a>
+<span class="sourceLineNo">368</span> */<a name="line.368"></a>
+<span class="sourceLineNo">369</span> public boolean isUri() {<a name="line.369"></a>
+<span class="sourceLineNo">370</span> return isUri;<a name="line.370"></a>
+<span class="sourceLineNo">371</span> }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span> /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span> * Returns <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.374"></a>
+<span class="sourceLineNo">375</span> * @return <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.375"></a>
+<span class="sourceLineNo">376</span> */<a name="line.376"></a>
+<span class="sourceLineNo">377</span> public boolean isDyna() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span> return isDyna;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span> /**<a name="line.381"></a>
+<span class="sourceLineNo">382</span> * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.382"></a>
+<span class="sourceLineNo">383</span> * on this property.<a name="line.383"></a>
+<span class="sourceLineNo">384</span> *<a name="line.384"></a>
+<span class="sourceLineNo">385</span> * @return The list of override properties, or <jk>null</jk> if annotation not specified.<a name="line.385"></a>
+<span class="sourceLineNo">386</span> */<a name="line.386"></a>
+<span class="sourceLineNo">387</span> public String[] getProperties() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span> return properties;<a name="line.388"></a>
+<span class="sourceLineNo">389</span> }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span> /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span> * Returns the language-specified extended metadata on this bean property.<a name="line.392"></a>
+<span class="sourceLineNo">393</span> *<a name="line.393"></a>
+<span class="sourceLineNo">394</span> * @param c The name of the metadata class to create.<a name="line.394"></a>
+<span class="sourceLineNo">395</span> * @return Extended metadata on this bean property. Never <jk>null</jk>.<a name="line.395"></a>
+<span class="sourceLineNo">396</span> */<a name="line.396"></a>
+<span class="sourceLineNo">397</span> public <M extends BeanPropertyMetaExtended> M getExtendedMeta(Class<M> c) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span> if (delegateFor != null)<a name="line.398"></a>
+<span class="sourceLineNo">399</span> return delegateFor.getExtendedMeta(c);<a name="line.399"></a>
+<span class="sourceLineNo">400</span> return extMeta.get(c, this);<a name="line.400"></a>
+<span class="sourceLineNo">401</span> }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span> /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span> * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.404"></a>
+<span class="sourceLineNo">405</span> *<a name="line.405"></a>
+<span class="sourceLineNo">406</span> * @param m The bean map to get the transformed value from.<a name="line.406"></a>
+<span class="sourceLineNo">407</span> * @param pName The property name.<a name="line.407"></a>
+<span class="sourceLineNo">408</span> * @return The property value.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> */<a name="line.409"></a>
+<span class="sourceLineNo">410</span> public Object get(BeanMap<?> m, String pName) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span> try {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> if (overrideValue != null)<a name="line.412"></a>
+<span class="sourceLineNo">413</span> return overrideValue;<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span> // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.415"></a>
+<span class="sourceLineNo">416</span> Object bean = m.bean;<a name="line.416"></a>
+<span class="sourceLineNo">417</span> if (bean == null)<a name="line.417"></a>
+<span class="sourceLineNo">418</span> return m.propertyCache.get(name);<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span> return toSerializedForm(m.getBeanSession(), getRaw(m, pName));<a name="line.420"></a>
<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span> Object o = invokeGetter(bean, pName);<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span> return toSerializedForm(m.getBeanSession(), o);<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span> } catch (Throwable e) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span> if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span> if (rawTypeMeta.isPrimitive())<a name="line.428"></a>
-<span class="sourceLineNo">429</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.429"></a>
-<span class="sourceLineNo">430</span> return null;<a name="line.430"></a>
-<span class="sourceLineNo">431</span> }<a name="line.431"></a>
-<span class="sourceLineNo">432</span> throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.432"></a>
-<span class="sourceLineNo">433</span> }<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span> * Converts a raw bean property value to serialized form.<a name="line.437"></a>
-<span class="sourceLineNo">438</span> * Applies transforms and child property filters.<a name="line.438"></a>
-<span class="sourceLineNo">439</span> */<a name="line.439"></a>
-<span class="sourceLineNo">440</span> final Object toSerializedForm(BeanSession session, Object o) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> try {<a name="line.441"></a>
-<span class="sourceLineNo">442</span> o = transform(session, o);<a name="line.442"></a>
-<span class="sourceLineNo">443</span> if (o == null)<a name="line.443"></a>
-<span class="sourceLineNo">444</span> return null;<a name="line.444"></a>
-<span class="sourceLineNo">445</span> if (properties != null) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span> if (rawTypeMeta.isArray()) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> Object[] a = (Object[])o;<a name="line.447"></a>
-<span class="sourceLineNo">448</span> List l = new DelegateList(rawTypeMeta);<a name="line.448"></a>
-<span class="sourceLineNo">449</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.449"></a>
-<span class="sourceLineNo">450</span> for (Object c : a)<a name="line.450"></a>
-<span class="sourceLineNo">451</span> l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return l;<a name="line.452"></a>
-<span class="sourceLineNo">453</span> } else if (rawTypeMeta.isCollection()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span> Collection c = (Collection)o;<a name="line.454"></a>
-<span class="sourceLineNo">455</span> List l = new ArrayList(c.size());<a name="line.455"></a>
-<span class="sourceLineNo">456</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.456"></a>
-<span class="sourceLineNo">457</span> for (Object cc : c)<a name="line.457"></a>
-<span class="sourceLineNo">458</span> l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.458"></a>
-<span class="sourceLineNo">459</span> return l;<a name="line.459"></a>
-<span class="sourceLineNo">460</span> } else {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> }<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span> return o;<a name="line.464"></a>
-<span class="sourceLineNo">465</span> } catch (SerializeException e) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span> throw new BeanRuntimeException(e);<a name="line.466"></a>
-<span class="sourceLineNo">467</span> }<a name="line.467"></a>
-<span class="sourceLineNo">468</span> }<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span> /**<a name="line.470"></a>
-<span class="sourceLineNo">471</span> * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids<a name="line.471"></a>
-<span class="sourceLineNo">472</span> * looking up the property meta.<a name="line.472"></a>
-<span class="sourceLineNo">473</span> *<a name="line.473"></a>
-<span class="sourceLineNo">474</span> * @param m The bean map to set the property value on.<a name="line.474"></a>
-<span class="sourceLineNo">475</span> * @param pName The property name.<a name="line.475"></a>
-<span class="sourceLineNo">476</span> * @param value The value to set.<a name="line.476"></a>
-<span class="sourceLineNo">477</span> * @return The previous property value.<a name="line.477"></a>
-<span class="sourceLineNo">478</span> * @throws BeanRuntimeException If property could not be set.<a name="line.478"></a>
-<span class="sourceLineNo">479</span> */<a name="line.479"></a>
-<span class="sourceLineNo">480</span> public Object set(BeanMap<?> m, String pName, Object value) throws BeanRuntimeException {<a name="line.480"></a>
-<span class="sourceLineNo">481</span> try {<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span> BeanSession session = m.getBeanSession();<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span> // Comvert to raw form.<a name="line.485"></a>
-<span class="sourceLineNo">486</span> value = unswap(session, value);<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span> if (m.bean == null) {<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span> // Read-only beans get their properties stored in a cache.<a name="line.490"></a>
-<span class="sourceLineNo">491</span> if (m.propertyCache != null)<a name="line.491"></a>
-<span class="sourceLineNo">492</span> return m.propertyCache.put(name, value);<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span> throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.494"></a>
-<span class="sourceLineNo">495</span> }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span> boolean isMap = rawTypeMeta.isMap();<a name="line.497"></a>
-<span class="sourceLineNo">498</span> boolean isCollection = rawTypeMeta.isCollection();<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> if ((! isDyna) && field == null && setter == null && ! (isMap || isCollection)) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span> if ((value == null && beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.501"></a>
-<span class="sourceLineNo">502</span> return null;<a name="line.502"></a>
-<span class="sourceLineNo">503</span> throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.503"></a>
-<span class="sourceLineNo">504</span> }<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span> Object bean = m.getBean(true); // Don't use getBean() because it triggers array creation!<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span> try {<a name="line.508"></a>
+<span class="sourceLineNo">422</span> } catch (Throwable e) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> if (rawTypeMeta.isPrimitive())<a name="line.424"></a>
+<span class="sourceLineNo">425</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.425"></a>
+<span class="sourceLineNo">426</span> return null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span> }<a name="line.427"></a>
+<span class="sourceLineNo">428</span> throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> }<a name="line.429"></a>
+<span class="sourceLineNo">430</span> }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span> /**<a name="line.432"></a>
+<span class="sourceLineNo">433</span> * Equivalent to calling {@link BeanMap#getRaw(Object)}, but is faster since it avoids looking up the property meta.<a name="line.433"></a>
+<span class="sourceLineNo">434</span> *<a name="line.434"></a>
+<span class="sourceLineNo">435</span> * @param m The bean map to get the transformed value from.<a name="line.435"></a>
+<span class="sourceLineNo">436</span> * @param pName The property name.<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * @return The raw property value.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> */<a name="line.438"></a>
+<span class="sourceLineNo">439</span> public Object getRaw(BeanMap<?> m, String pName) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span> try {<a name="line.440"></a>
+<span class="sourceLineNo">441</span> // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.441"></a>
+<span class="sourceLineNo">442</span> Object bean = m.bean;<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (bean == null)<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return m.propertyCache.get(name);<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span> return invokeGetter(bean, pName);<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span> } catch (Throwable e) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span> if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span> if (rawTypeMeta.isPrimitive())<a name="line.450"></a>
+<span class="sourceLineNo">451</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.451"></a>
+<span class="sourceLineNo">452</span> return null;<a name="line.452"></a>
+<span class="sourceLineNo">453</span> }<a name="line.453"></a>
+<span class="sourceLineNo">454</span> throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.454"></a>
+<span class="sourceLineNo">455</span> }<a name="line.455"></a>
+<span class="sourceLineNo">456</span> }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span> /**<a name="line.458"></a>
+<span class="sourceLineNo">459</span> * Converts a raw bean property value to serialized form.<a name="line.459"></a>
+<span class="sourceLineNo">460</span> * Applies transforms and child property filters.<a name="line.460"></a>
+<span class="sourceLineNo">461</span> */<a name="line.461"></a>
+<span class="sourceLineNo">462</span> final Object toSerializedForm(BeanSession session, Object o) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span> try {<a name="line.463"></a>
+<span class="sourceLineNo">464</span> o = transform(session, o);<a name="line.464"></a>
+<span class="sourceLineNo">465</span> if (o == null)<a name="line.465"></a>
+<span class="sourceLineNo">466</span> return null;<a name="line.466"></a>
+<span class="sourceLineNo">467</span> if (properties != null) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span> if (rawTypeMeta.isArray()) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span> Object[] a = (Object[])o;<a name="line.469"></a>
+<span class="sourceLineNo">470</span> List l = new DelegateList(rawTypeMeta);<a name="line.470"></a>
+<span class="sourceLineNo">471</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.471"></a>
+<span class="sourceLineNo">472</span> for (Object c : a)<a name="line.472"></a>
+<span class="sourceLineNo">473</span> l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.473"></a>
+<span class="sourceLineNo">474</span> return l;<a name="line.474"></a>
+<span class="sourceLineNo">475</span> } else if (rawTypeMeta.isCollection()) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span> Collection c = (Collection)o;<a name="line.476"></a>
+<span class="sourceLineNo">477</span> List l = new ArrayList(c.size());<a name="line.477"></a>
+<span class="sourceLineNo">478</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.478"></a>
+<span class="sourceLineNo">479</span> for (Object cc : c)<a name="line.479"></a>
+<span class="sourceLineNo">480</span> l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.480"></a>
+<span class="sourceLineNo">481</span> return l;<a name="line.481"></a>
+<span class="sourceLineNo">482</span> } else {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> return o;<a name="line.486"></a>
+<span class="sourceLineNo">487</span> } catch (SerializeException e) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span> throw new BeanRuntimeException(e);<a name="line.488"></a>
+<span class="sourceLineNo">489</span> }<a name="line.489"></a>
+<span class="sourceLineNo">490</span> }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span> /**<a name="line.492"></a>
+<span class="sourceLineNo">493</span> * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids<a name="line.493"></a>
+<span class="sourceLineNo">494</span> * looking up the property meta.<a name="line.494"></a>
+<span class="sourceLineNo">495</span> *<a name="line.495"></a>
+<span class="sourceLineNo">496</span> * @param m The bean map to set the property value on.<a name="line.496"></a>
+<span class="sourceLineNo">497</span> * @param pName The property name.<a name="line.497"></a>
+<span class="sourceLineNo">498</span> * @param value The value to set.<a name="line.498"></a>
+<span class="sourceLineNo">499</span> * @return The previous property value.<a name="line.499"></a>
+<span class="sourceLineNo">500</span> * @throws BeanRuntimeException If property could not be set.<a name="line.500"></a>
+<span class="sourceLineNo">501</span> */<a name="line.501"></a>
+<span class="sourceLineNo">502</span> public Object set(BeanMap<?> m, String pName, Object value) throws BeanRuntimeException {<a name="line.502"></a>
+<span class="sourceLineNo">503</span> try {<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span> BeanSession session = m.getBeanSession();<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span> // Comvert to raw form.<a name="line.507"></a>
+<span class="sourceLineNo">508</span> value = unswap(session, value);<a name="line.508"></a>
<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span> Object r = beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) : null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span> Class<?> propertyClass = rawTypeMeta.getInnerClass();<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span> if (value == null && (isMap || isCollection)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span> invokeSetter(bean, pName, null);<a name="line.514"></a>
-<span class="sourceLineNo">515</span> return r;<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span><a name="line.517"></a>
-<span class="sourceLineNo">518</span> if (isMap) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> if (! (value instanceof Map)) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span> if (value instanceof CharSequence)<a name="line.521"></a>
-<span class="sourceLineNo">522</span> value = new ObjectMap((CharSequence)value).setBeanSession(session);<a name="line.522"></a>
-<span class="sourceLineNo">523</span> else<a name="line.523"></a>
-<span class="sourceLineNo">524</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.524"></a>
-<span class="sourceLineNo">525</span> }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span> Map valueMap = (Map)value;<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Map propMap = (Map)r;<a name="line.528"></a>
-<span class="sourceLineNo">529</span> ClassMeta<?> valueType = rawTypeMeta.getValueType();<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.531"></a>
-<span class="sourceLineNo">532</span> // map (if it's not null), or try to assign the value directly.<a name="line.532"></a>
-<span class="sourceLineNo">533</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span> if (propMap == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span> if (setter == null && field == null)<a name="line.535"></a>
-<span class="sourceLineNo">536</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span> if (propertyClass.isInstance(valueMap)) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span> if (! valueType.isObject()) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> Object v = e.getValue();<a name="line.541"></a>
-<span class="sourceLineNo">542</span> if (v != null && ! valueType.getInnerClass().isInstance(v))<a name="line.542"></a>
-<span class="sourceLineNo">543</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.543"></a>
-<span class="sourceLineNo">544</span> }<a name="line.544"></a>
-<span class="sourceLineNo">545</span> }<a name="line.545"></a>
-<span class="sourceLineNo">546</span> invokeSetter(bean, pName, valueMap);<a name="line.546"></a>
-<span class="sourceLineNo">547</span> return r;<a name="line.547"></a>
-<span class="sourceLineNo">548</span> }<a name="line.548"></a>
-<span class="sourceLineNo">549</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.549"></a>
-<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> } else {<a name="line.551"></a>
-<span class="sourceLineNo">552</span> if (propMap == null) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span> propMap = newInstance(Map.class, propertyClass);<a name="line.553"></a>
-<span class="sourceLineNo">554</span> } else {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> propMap.clear();<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span> // Set the values.<a name="line.559"></a>
-<span class="sourceLineNo">560</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span> Object k = e.getKey();<a name="line.561"></a>
-<span class="sourceLineNo">562</span> Object v = e.getValue();<a name="line.562"></a>
-<span class="sourceLineNo">563</span> if (! valueType.isObject())<a name="line.563"></a>
-<span class="sourceLineNo">564</span> v = session.convertToType(v, valueType);<a name="line.564"></a>
-<span class="sourceLineNo">565</span> propMap.put(k, v);<a name="line.565"></a>
-<span class="sourceLineNo">566</span> }<a name="line.566"></a>
-<span class="sourceLineNo">567</span> if (setter != null || field != null)<a name="line.567"></a>
-<span class="sourceLineNo">568</span> invokeSetter(bean, pName, propMap);<a name="line.568"></a>
-<span class="sourceLineNo">569</span><a name="line.569"></a>
-<span class="sourceLineNo">570</span> } else if (isCollection) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span> if (! (value instanceof Collection)) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span> if (value instanceof CharSequence)<a name="line.573"></a>
-<span class="sourceLineNo">574</span> value = new ObjectList((CharSequence)value).setBeanSession(session);<a name="line.574"></a>
-<span class="sourceLineNo">575</span> else<a name="line.575"></a>
-<span class="sourceLineNo">576</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.576"></a>
-<span class="sourceLineNo">577</span> }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span> Collection valueList = (Collection)value;<a name="line.579"></a>
-<span class="sourceLineNo">580</span> Collection propList = (Collection)r;<a name="line.580"></a>
-<span class="sourceLineNo">581</span> ClassMeta elementType = rawTypeMeta.getElementType();<a name="line.581"></a>
-<span class="sourceLineNo">582</span><a name="line.582"></a>
-<span class="sourceLineNo">583</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // collection (if it's not null), or try to assign the value directly.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span> if (propList == null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> if (setter == null && field == null)<a name="line.587"></a>
-<span class="sourceLineNo">588</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span> if (propertyClass.isInstance(valueList)) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span> if (! elementType.isObject()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span> List l = new ObjectList(valueList);<a name="line.592"></a>
-<span class="sourceLineNo">593</span> for (ListIterator<Object> i = l.listIterator(); i.hasNext(); ) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span> Object v = i.next();<a name="line.594"></a>
-<span class="sourceLineNo">595</span> if (v != null && (! elementType.getInnerClass().isInstance(v))) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span> i.set(session.convertToType(v, elementType));<a name="line.596"></a>
-<span class="sourceLineNo">597</span> }<a name="line.597"></a>
-<span class="sourceLineNo">598</span> }<a name="line.598"></a>
-<span class="sourceLineNo">599</span> valueList = l;<a name="line.599"></a>
-<span class="sourceLineNo">600</span> }<a name="line.600"></a>
-<span class="sourceLineNo">601</span> invokeSetter(bean, pName, valueList);<a name="line.601"></a>
-<span class="sourceLineNo">602</span> return r;<a name="line.602"></a>
-<span class="sourceLineNo">603</span> }<a name="line.603"></a>
-<span class="sourceLineNo">604</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.604"></a>
-<span class="sourceLineNo">605</span> }<a name="line.605"></a>
-<span class="sourceLineNo">606</span> propList.clear();<a name="line.606"></a>
-<span class="sourceLineNo">607</span> } else {<a name="line.607"></a>
+<span class="sourceLineNo">510</span> if (m.bean == null) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span> // Read-only beans get their properties stored in a cache.<a name="line.512"></a>
+<span class="sourceLineNo">513</span> if (m.propertyCache != null)<a name="line.513"></a>
+<span class="sourceLineNo">514</span> return m.propertyCache.put(name, value);<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span> throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.516"></a>
+<span class="sourceLineNo">517</span> }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span> boolean isMap = rawTypeMeta.isMap();<a name="line.519"></a>
+<span class="sourceLineNo">520</span> boolean isCollection = rawTypeMeta.isCollection();<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span> if ((! isDyna) && field == null && setter == null && ! (isMap || isCollection)) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span> if ((value == null && beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.523"></a>
+<span class="sourceLineNo">524</span> return null;<a name="line.524"></a>
+<span class="sourceLineNo">525</span> throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.525"></a>
+<span class="sourceLineNo">526</span> }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span> Object bean = m.getBean(true); // Don't use getBean() because it triggers array creation!<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span> try {<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span> Object r = beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) : null;<a name="line.532"></a>
+<span class="sourceLineNo">533</span> Class<?> propertyClass = rawTypeMeta.getInnerClass();<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span> if (value == null && (isMap || isCollection)) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> invokeSetter(bean, pName, null);<a name="line.536"></a>
+<span class="sourceLineNo">537</span> return r;<a name="line.537"></a>
+<span class="sourceLineNo">538</span> }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span> if (isMap) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span> if (! (value instanceof Map)) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span> if (value instanceof CharSequence)<a name="line.543"></a>
+<span class="sourceLineNo">544</span> value = new ObjectMap((CharSequence)value).setBeanSession(session);<a name="line.544"></a>
+<span class="sourceLineNo">545</span> else<a name="line.545"></a>
+<span class="sourceLineNo">546</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.546"></a>
+<span class="sourceLineNo">547</span> }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span> Map valueMap = (Map)value;<a name="line.549"></a>
+<span class="sourceLineNo">550</span> Map propMap = (Map)r;<a name="line.550"></a>
+<span class="sourceLineNo">551</span> ClassMeta<?> valueType = rawTypeMeta.getValueType();<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.553"></a>
+<span class="sourceLineNo">554</span> // map (if it's not null), or try to assign the value directly.<a name="line.554"></a>
+<span class="sourceLineNo">555</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span> if (propMap == null) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span> if (setter == null && field == null)<a name="line.557"></a>
+<span class="sourceLineNo">558</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span> if (propertyClass.isInstance(valueMap)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span> if (! valueType.isObject()) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span> Object v = e.getValue();<a name="line.563"></a>
+<span class="sourceLineNo">564</span> if (v != null && ! valueType.getInnerClass().isInstance(v))<a name="line.564"></a>
+<span class="sourceLineNo">565</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.565"></a>
+<span class="sourceLineNo">566</span> }<a name="line.566"></a>
+<span class="sourceLineNo">567</span> }<a name="line.567"></a>
+<span class="sourceLineNo">568</span> invokeSetter(bean, pName, valueMap);<a name="line.568"></a>
+<span class="sourceLineNo">569</span> return r;<a name="line.569"></a>
+<span class="sourceLineNo">570</span> }<a name="line.570"></a>
+<span class="sourceLineNo">571</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.571"></a>
+<span class="sourceLineNo">572</span> }<a name="line.572"></a>
+<span class="sourceLineNo">573</span> } else {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> if (propMap == null) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span> propMap = newInstance(Map.class, propertyClass);<a name="line.575"></a>
+<span class="sourceLineNo">576</span> } else {<a name="line.576"></a>
+<span class="sourceLineNo">577</span> propMap.clear();<a name="line.577"></a>
+<span class="sourceLineNo">578</span> }<a name="line.578"></a>
+<span class="sourceLineNo">579</span> }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span> // Set the values.<a name="line.581"></a>
+<span class="sourceLineNo">582</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span> Object k = e.getKey();<a name="line.583"></a>
+<span class="sourceLineNo">584</span> Object v = e.getValue();<a name="line.584"></a>
+<span class="sourceLineNo">585</span> if (! valueType.isObject())<a name="line.585"></a>
+<span class="sourceLineNo">586</span> v = session.convertToType(v, valueType);<a name="line.586"></a>
+<span class="sourceLineNo">587</span> propMap.put(k, v);<a name="line.587"></a>
+<span class="sourceLineNo">588</span> }<a name="line.588"></a>
+<span class="sourceLineNo">589</span> if (setter != null || field != null)<a name="line.589"></a>
+<span class="sourceLineNo">590</span> invokeSetter(bean, pName, propMap);<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span> } else if (isCollection) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span> if (! (value instanceof Collection)) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span> if (value instanceof CharSequence)<a name="line.595"></a>
+<span class="sourceLineNo">596</span> value = new ObjectList((CharSequence)value).setBeanSession(session);<a name="line.596"></a>
+<span class="sourceLineNo">597</span> else<a name="line.597"></a>
+<span class="sourceLineNo">598</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.598"></a>
+<span class="sourceLineNo">599</span> }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span> Collection valueList = (Collection)value;<a name="line.601"></a>
+<span class="sourceLineNo">602</span> Collection propList = (Collection)r;<a name="line.602"></a>
+<span class="sourceLineNo">603</span> ClassMeta elementType = rawTypeMeta.getElementType();<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.605"></a>
+<span class="sourceLineNo">606</span> // collection (if it's not null), or try to assign the value directly.<a name="line.606"></a>
+<span class="sourceLineNo">607</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.607"></a>
<span class="sourceLineNo">608</span> if (propList == null) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span> propList = newInstance(Collection.class, propertyClass);<a name="line.609"></a>
-<span class="sourceLineNo">610</span> invokeSetter(bean, pName, propList);<a name="line.610"></a>
-<span class="sourceLineNo">611</span> } else {<a name="line.611"></a>
-<span class="sourceLineNo">612</span> propList.clear();<a name="line.612"></a>
-<span class="sourceLineNo">613</span> }<a name="line.613"></a>
-<span class="sourceLineNo">614</span> }<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span> // Set the values.<a name="line.616"></a>
-<span class="sourceLineNo">617</span> for (Object v : valueList) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span> if (! elementType.isObject())<a name="line.618"></a>
-<span class="sourceLineNo">619</span> v = session.convertToType(v, elementType);<a name="line.619"></a>
-<span class="sourceLineNo">620</span> propList.add(v);<a name="line.620"></a>
-<span class="sourceLineNo">621</span> }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span> } else {<a name="line.623"></a>
-<span class="sourceLineNo">624</span> if (swap != null && value != null && isParentClass(swap.getSwapClass(), value.getClass())) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span> value = swap.unswap(session, value, rawTypeMeta);<a name="line.625"></a>
-<span class="sourceLineNo">626</span> } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span> value = session.convertToType(value, rawTypeMeta);<a name="line.627"></a>
-<span class="sourceLineNo">628</span> }<a name="line.628"></a>
-<span class="sourceLineNo">629</span> invokeSetter(bean, pName, value);<a name="line.629"></a>
-<span class="sourceLineNo">630</span> }<a name="line.630"></a>
-<span class="sourceLineNo">631</span><a name="line.631"></a>
-<span class="sourceLineNo">632</span> return r;<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span> } catch (BeanRuntimeException e) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span> throw e;<a name="line.635"></a>
-<span class="sourceLineNo">636</span> } catch (Exception e) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span> e.printStackTrace();<a name="line.637"></a>
-<span class="sourceLineNo">638</span> if (beanContext.ignoreInvocationExceptionsOnSetters) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span> if (rawTypeMeta.isPrimitive())<a name="line.639"></a>
-<span class="sourceLineNo">640</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.640"></a>
-<span class="sourceLineNo">641</span> return null;<a name="line.641"></a>
-<span class="sourceLineNo">642</span> }<a name="line.642"></a>
-<span class="sourceLineNo">643</span> throw new BeanRuntimeException(beanMeta.c, "Error occurred trying to set property ''{0}''", name).initCause(e);<a name="line.643"></a>
-<span class="sourceLineNo">644</span> }<a name="line.644"></a>
-<span class="sourceLineNo">645</span> } catch (ParseException e) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span> throw new BeanRuntimeException(e);<a name="line.646"></a>
-<span class="sourceLineNo">647</span> }<a name="line.647"></a>
-<span class="sourceLineNo">648</span> }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span> private Object invokeGetter(Object bean, String pName) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {<a name="line.650"></a>
-<span class="sourceLineNo">651</span> if (isDyna) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span> Map m = null;<a name="line.652"></a>
-<span class="sourceLineNo">653</span> if (getter != null)<a name="line.653"></a>
-<span class="sourceLineNo">654</span> m = (Map)getter.invoke(bean);<a name="line.654"></a>
-<span class="sourceLineNo">655</span> else if (field != null)<a name="line.655"></a>
-<span class="sourceLineNo">656</span> m = (Map)field.get(bean);<a name="line.656"></a>
-<span class="sourceLineNo">657</span> else<a name="line.657"></a>
-<span class="sourceLineNo">658</span> throw new BeanRuntimeException(beanMeta.c, "Getter or public field not defined on property ''{0}''", name);<a name="line.658"></a>
-<span class="sourceLineNo">659</span> return (m == null ? null : m.get(pName));<a name="line.659"></a>
-<span class="sourceLineNo">660</span> }<a name="line.660"></a>
-<span class="sourceLineNo">661</span> if (getter != null)<a name="line.661"></a>
-<span class="sourceLineNo">662</span> return getter.invoke(bean);<a name="line.662"></a>
-<span class="sourceLineNo">663</span> if (field != null)<a name="line.663"></a>
-<span class="sourceLineNo">664</span> return field.get(bean);<a name="line.664"></a>
-<span class="sourceLineNo">665</span> throw new BeanRuntimeException(beanMeta.c, "Getter or public field not defined on property ''{0}''", name);<a name="line.665"></a>
-<span class="sourceLineNo">666</span> }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span> private Object invokeSetter(Object bean, String pName, Object val) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {<a name="line.668"></a>
-<span class="sourceLineNo">669</span> if (isDyna) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span> if (setter != null)<a name="line.670"></a>
-<span class="sourceLineNo">671</span> return setter.invoke(bean, pName, val);<a name="line.671"></a>
-<span class="sourceLineNo">672</span> Map m = null;<a name="line.672"></a>
-<span class="sourceLineNo">673</span> if (field != null)<a name="line.673"></a>
-<span class="sourceLineNo">674</span> m = (Map<String,Object>)field.get(bean);<a name="line.674"></a>
-<span class="sourceLineNo">675</span> else if (getter != null)<a name="line.675"></a>
-<span class="sourceLineNo">676</span> m = (Map<String,Object>)getter.invoke(bean);<a name="line.676"></a>
-<span class="sourceLineNo">677</span> else<a name="line.677"></a>
-<span class="sourceLineNo">678</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter is defined on this property, and the existing property value is null", name, this.getClassMeta().getInnerClass().getName(), findClassName(val));<a name="line.678"></a>
-<span class="sourceLineNo">679</span> return (m == null ? null : m.put(pName, val));<a name="line.679"></a>
-<span class="sourceLineNo">680</span> }<a name="line.680"></a>
-<span class="sourceLineNo">681</span> if (setter != null)<a name="line.681"></a>
-<span class="sourceLineNo">682</span> return setter.invoke(bean, val);<a name="line.682"></a>
-<span class="sourceLineNo">683</span> if (field != null) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span> field.set(bean, val);<a name="line.684"></a>
-<span class="sourceLineNo">685</span> return null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span> }<a name="line.686"></a>
-<span class="sourceLineNo">687</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter is defined on this property, and the existing property value is null", name, this.getClassMeta().getInnerClass().getName(), findClassName(val));<a name="line.687"></a>
+<span class="sourceLineNo">609</span> if (setter == null && field == null)<a name="line.609"></a>
+<span class="sourceLineNo">610</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span> if (propertyClass.isInstance(valueList)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span> if (! elementType.isObject()) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span> List l = new ObjectList(valueList);<a name="line.614"></a>
+<span class="sourceLineNo">615</span> for (ListIterator<Object> i = l.listIterator(); i.hasNext(); ) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span> Object v = i.next();<a name="line.616"></a>
+<span class="sourceLineNo">617</span> if (v != null && (! elementType.getInnerClass().isInstance(v))) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span> i.set(session.conve
<TRUNCATED>
[11/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
index 10b970a..f9e091e 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanPropertyMeta.html
@@ -220,779 +220,801 @@
<span class="sourceLineNo">212</span> if (typeMeta == null)<a name="line.212"></a>
<span class="sourceLineNo">213</span> typeMeta = rawTypeMeta;<a name="line.213"></a>
<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span> System.err.println("swap=" + swap);<a name="line.215"></a>
-<span class="sourceLineNo">216</span><a name="line.216"></a>
-<span class="sourceLineNo">217</span> return true;<a name="line.217"></a>
-<span class="sourceLineNo">218</span> }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span> /**<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * @return A new BeanPropertyMeta object using this builder.<a name="line.221"></a>
-<span class="sourceLineNo">222</span> */<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public BeanPropertyMeta build() {<a name="line.223"></a>
-<span class="sourceLineNo">224</span> return new BeanPropertyMeta(this);<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span> private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.227"></a>
-<span class="sourceLineNo">228</span> if (! p.format().isEmpty())<a name="line.228"></a>
-<span class="sourceLineNo">229</span> return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.229"></a>
-<span class="sourceLineNo">230</span> Class<?> c = p.swap();<a name="line.230"></a>
-<span class="sourceLineNo">231</span> if (c == Null.class)<a name="line.231"></a>
-<span class="sourceLineNo">232</span> return null;<a name="line.232"></a>
-<span class="sourceLineNo">233</span> if (isParentClass(PojoSwap.class, c))<a name="line.233"></a>
-<span class="sourceLineNo">234</span> return newInstance(PojoSwap.class, c);<a name="line.234"></a>
-<span class="sourceLineNo">235</span> throw new RuntimeException("TODO - Surrogate swaps not yet supported.");<a name="line.235"></a>
-<span class="sourceLineNo">236</span> }<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span> BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span> setAccessible(getter);<a name="line.239"></a>
-<span class="sourceLineNo">240</span> this.getter = getter;<a name="line.240"></a>
-<span class="sourceLineNo">241</span> return this;<a name="line.241"></a>
-<span class="sourceLineNo">242</span> }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span> BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span> setAccessible(setter);<a name="line.245"></a>
-<span class="sourceLineNo">246</span> this.setter = setter;<a name="line.246"></a>
-<span class="sourceLineNo">247</span> return this;<a name="line.247"></a>
-<span class="sourceLineNo">248</span> }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> BeanPropertyMeta.Builder setField(Field field) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span> setAccessible(field);<a name="line.251"></a>
-<span class="sourceLineNo">252</span> this.field = field;<a name="line.252"></a>
-<span class="sourceLineNo">253</span> return this;<a name="line.253"></a>
-<span class="sourceLineNo">254</span> }<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span> BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.256"></a>
-<span class="sourceLineNo">257</span> this.isConstructorArg = true;<a name="line.257"></a>
-<span class="sourceLineNo">258</span> return this;<a name="line.258"></a>
-<span class="sourceLineNo">259</span> }<a name="line.259"></a>
+<span class="sourceLineNo">215</span> return true;<a name="line.215"></a>
+<span class="sourceLineNo">216</span> }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span> /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * @return A new BeanPropertyMeta object using this builder.<a name="line.219"></a>
+<span class="sourceLineNo">220</span> */<a name="line.220"></a>
+<span class="sourceLineNo">221</span> public BeanPropertyMeta build() {<a name="line.221"></a>
+<span class="sourceLineNo">222</span> return new BeanPropertyMeta(this);<a name="line.222"></a>
+<span class="sourceLineNo">223</span> }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span> private static PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {<a name="line.225"></a>
+<span class="sourceLineNo">226</span> if (! p.format().isEmpty())<a name="line.226"></a>
+<span class="sourceLineNo">227</span> return newInstance(PojoSwap.class, StringFormatSwap.class, p.format());<a name="line.227"></a>
+<span class="sourceLineNo">228</span> Class<?> c = p.swap();<a name="line.228"></a>
+<span class="sourceLineNo">229</span> if (c == Null.class)<a name="line.229"></a>
+<span class="sourceLineNo">230</span> return null;<a name="line.230"></a>
+<span class="sourceLineNo">231</span> if (isParentClass(PojoSwap.class, c))<a name="line.231"></a>
+<span class="sourceLineNo">232</span> return newInstance(PojoSwap.class, c);<a name="line.232"></a>
+<span class="sourceLineNo">233</span> throw new RuntimeException("TODO - Surrogate swaps not yet supported.");<a name="line.233"></a>
+<span class="sourceLineNo">234</span> }<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span> BeanPropertyMeta.Builder setGetter(Method getter) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span> setAccessible(getter);<a name="line.237"></a>
+<span class="sourceLineNo">238</span> this.getter = getter;<a name="line.238"></a>
+<span class="sourceLineNo">239</span> return this;<a name="line.239"></a>
+<span class="sourceLineNo">240</span> }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span> BeanPropertyMeta.Builder setSetter(Method setter) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span> setAccessible(setter);<a name="line.243"></a>
+<span class="sourceLineNo">244</span> this.setter = setter;<a name="line.244"></a>
+<span class="sourceLineNo">245</span> return this;<a name="line.245"></a>
+<span class="sourceLineNo">246</span> }<a name="line.246"></a>
+<span class="sourceLineNo">247</span><a name="line.247"></a>
+<span class="sourceLineNo">248</span> BeanPropertyMeta.Builder setField(Field field) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span> setAccessible(field);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> this.field = field;<a name="line.250"></a>
+<span class="sourceLineNo">251</span> return this;<a name="line.251"></a>
+<span class="sourceLineNo">252</span> }<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span> BeanPropertyMeta.Builder setAsConstructorArg() {<a name="line.254"></a>
+<span class="sourceLineNo">255</span> this.isConstructorArg = true;<a name="line.255"></a>
+<span class="sourceLineNo">256</span> return this;<a name="line.256"></a>
+<span class="sourceLineNo">257</span> }<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span> }<a name="line.259"></a>
<span class="sourceLineNo">260</span><a name="line.260"></a>
-<span class="sourceLineNo">261</span> }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span> /**<a name="line.263"></a>
-<span class="sourceLineNo">264</span> * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.264"></a>
-<span class="sourceLineNo">265</span> *<a name="line.265"></a>
-<span class="sourceLineNo">266</span> * @param b The builder to copy fields from.<a name="line.266"></a>
-<span class="sourceLineNo">267</span> */<a name="line.267"></a>
-<span class="sourceLineNo">268</span> protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> this.field = b.field;<a name="line.269"></a>
-<span class="sourceLineNo">270</span> this.getter = b.getter;<a name="line.270"></a>
-<span class="sourceLineNo">271</span> this.setter = b.setter;<a name="line.271"></a>
-<span class="sourceLineNo">272</span> this.isUri = b.isUri;<a name="line.272"></a>
-<span class="sourceLineNo">273</span> this.beanMeta = b.beanMeta;<a name="line.273"></a>
-<span class="sourceLineNo">274</span> this.beanContext = b.beanContext;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> this.name = b.name;<a name="line.275"></a>
-<span class="sourceLineNo">276</span> this.rawTypeMeta = b.rawTypeMeta;<a name="line.276"></a>
-<span class="sourceLineNo">277</span> this.typeMeta = b.typeMeta;<a name="line.277"></a>
-<span class="sourceLineNo">278</span> this.properties = b.properties;<a name="line.278"></a>
-<span class="sourceLineNo">279</span> this.swap = b.swap;<a name="line.279"></a>
-<span class="sourceLineNo">280</span> this.beanRegistry = b.beanRegistry;<a name="line.280"></a>
-<span class="sourceLineNo">281</span> this.overrideValue = b.overrideValue;<a name="line.281"></a>
-<span class="sourceLineNo">282</span> this.delegateFor = b.delegateFor;<a name="line.282"></a>
-<span class="sourceLineNo">283</span> this.extMeta = b.extMeta;<a name="line.283"></a>
-<span class="sourceLineNo">284</span> this.isDyna = b.isDyna;<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span> /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span> * Returns the name of this bean property.<a name="line.288"></a>
-<span class="sourceLineNo">289</span> *<a name="line.289"></a>
-<span class="sourceLineNo">290</span> * @return The name of the bean property.<a name="line.290"></a>
-<span class="sourceLineNo">291</span> */<a name="line.291"></a>
-<span class="sourceLineNo">292</span> public String getName() {<a name="line.292"></a>
-<span class="sourceLineNo">293</span> return name;<a name="line.293"></a>
-<span class="sourceLineNo">294</span> }<a name="line.294"></a>
-<span class="sourceLineNo">295</span><a name="line.295"></a>
-<span class="sourceLineNo">296</span> /**<a name="line.296"></a>
-<span class="sourceLineNo">297</span> * Returns the bean meta that this property belongs to.<a name="line.297"></a>
-<span class="sourceLineNo">298</span> *<a name="line.298"></a>
-<span class="sourceLineNo">299</span> * @return The bean meta that this property belongs to.<a name="line.299"></a>
-<span class="sourceLineNo">300</span> */<a name="line.300"></a>
-<span class="sourceLineNo">301</span> @BeanIgnore<a name="line.301"></a>
-<span class="sourceLineNo">302</span> public BeanMeta<?> getBeanMeta() {<a name="line.302"></a>
-<span class="sourceLineNo">303</span> return beanMeta;<a name="line.303"></a>
-<span class="sourceLineNo">304</span> }<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span> /**<a name="line.306"></a>
-<span class="sourceLineNo">307</span> * Returns the getter method for this property.<a name="line.307"></a>
-<span class="sourceLineNo">308</span> *<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return The getter method for this bean property, or <jk>null</jk> if there is no getter method.<a name="line.309"></a>
-<span class="sourceLineNo">310</span> */<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public Method getGetter() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> return getter;<a name="line.312"></a>
-<span class="sourceLineNo">313</span> }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span> /**<a name="line.315"></a>
-<span class="sourceLineNo">316</span> * Returns the setter method for this property.<a name="line.316"></a>
-<span class="sourceLineNo">317</span> *<a name="line.317"></a>
-<span class="sourceLineNo">318</span> * @return The setter method for this bean property, or <jk>null</jk> if there is no setter method.<a name="line.318"></a>
-<span class="sourceLineNo">319</span> */<a name="line.319"></a>
-<span class="sourceLineNo">320</span> public Method getSetter() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span> return setter;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span> * Returns the field for this property.<a name="line.325"></a>
-<span class="sourceLineNo">326</span> *<a name="line.326"></a>
-<span class="sourceLineNo">327</span> * @return The field for this bean property, or <jk>null</jk> if there is no field associated with this bean property.<a name="line.327"></a>
-<span class="sourceLineNo">328</span> */<a name="line.328"></a>
-<span class="sourceLineNo">329</span> public Field getField() {<a name="line.329"></a>
-<span class="sourceLineNo">330</span> return field;<a name="line.330"></a>
-<span class="sourceLineNo">331</span> }<a name="line.331"></a>
-<span class="sourceLineNo">332</span><a name="line.332"></a>
-<span class="sourceLineNo">333</span> /**<a name="line.333"></a>
-<span class="sourceLineNo">334</span> * Returns the {@link ClassMeta} of the class of this property.<a name="line.334"></a>
-<span class="sourceLineNo">335</span> * <p><a name="line.335"></a>
-<span class="sourceLineNo">336</span> * If this property or the property type class has a {@link PojoSwap} associated with it, this<a name="line.336"></a>
-<span class="sourceLineNo">337</span> * method returns the transformed class meta.<a name="line.337"></a>
-<span class="sourceLineNo">338</span> * This matches the class type that is used by the {@link #get(BeanMap,String)} and {@link #set(BeanMap,String,Object)} methods.<a name="line.338"></a>
-<span class="sourceLineNo">339</span> *<a name="line.339"></a>
-<span class="sourceLineNo">340</span> * @return The {@link ClassMeta} of the class of this property.<a name="line.340"></a>
-<span class="sourceLineNo">341</span> */<a name="line.341"></a>
-<span class="sourceLineNo">342</span> public ClassMeta<?> getClassMeta() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span> return typeMeta;<a name="line.343"></a>
-<span class="sourceLineNo">344</span> }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span> /**<a name="line.346"></a>
-<span class="sourceLineNo">347</span> * Returns the bean dictionary in use for this bean property.<a name="line.347"></a>
-<span class="sourceLineNo">348</span> * The order of lookup for the dictionary is as follows:<a name="line.348"></a>
-<span class="sourceLineNo">349</span> * <ol><a name="line.349"></a>
-<span class="sourceLineNo">350</span> * <li>Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.350"></a>
-<span class="sourceLineNo">351</span> * <li>Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.351"></a>
-<span class="sourceLineNo">352</span> * </ol><a name="line.352"></a>
-<span class="sourceLineNo">353</span> * @return The bean dictionary in use for this bean property. Never <jk>null</jk>.<a name="line.353"></a>
-<span class="sourceLineNo">354</span> */<a name="line.354"></a>
-<span class="sourceLineNo">355</span> public BeanRegistry getBeanRegistry() {<a name="line.355"></a>
-<span class="sourceLineNo">356</span> return beanRegistry;<a name="line.356"></a>
-<span class="sourceLineNo">357</span> }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span> /**<a name="line.359"></a>
-<span class="sourceLineNo">360</span> * Returns <jk>true</jk> if this bean property is a URI.<a name="line.360"></a>
-<span class="sourceLineNo">361</span> * <p><a name="line.361"></a>
-<span class="sourceLineNo">362</span> * A bean property can be considered a URI if any of the following are true:<a name="line.362"></a>
-<span class="sourceLineNo">363</span> * <ul class='spaced-list'><a name="line.363"></a>
-<span class="sourceLineNo">364</span> * <li>Property class type is {@link URL} or {@link URI}.<a name="line.364"></a>
-<span class="sourceLineNo">365</span> * <li>Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.365"></a>
-<span class="sourceLineNo">366</span> * <li>Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.366"></a>
-<span class="sourceLineNo">367</span> * </ul><a name="line.367"></a>
-<span class="sourceLineNo">368</span> *<a name="line.368"></a>
-<span class="sourceLineNo">369</span> * @return <jk>true</jk> if this bean property is a URI.<a name="line.369"></a>
-<span class="sourceLineNo">370</span> */<a name="line.370"></a>
-<span class="sourceLineNo">371</span> public boolean isUri() {<a name="line.371"></a>
-<span class="sourceLineNo">372</span> return isUri;<a name="line.372"></a>
-<span class="sourceLineNo">373</span> }<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span> /**<a name="line.375"></a>
-<span class="sourceLineNo">376</span> * Returns <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.376"></a>
-<span class="sourceLineNo">377</span> * @return <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.377"></a>
-<span class="sourceLineNo">378</span> */<a name="line.378"></a>
-<span class="sourceLineNo">379</span> public boolean isDyna() {<a name="line.379"></a>
-<span class="sourceLineNo">380</span> return isDyna;<a name="line.380"></a>
-<span class="sourceLineNo">381</span> }<a name="line.381"></a>
-<span class="sourceLineNo">382</span><a name="line.382"></a>
-<span class="sourceLineNo">383</span> /**<a name="line.383"></a>
-<span class="sourceLineNo">384</span> * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.384"></a>
-<span class="sourceLineNo">385</span> * on this property.<a name="line.385"></a>
-<span class="sourceLineNo">386</span> *<a name="line.386"></a>
-<span class="sourceLineNo">387</span> * @return The list of override properties, or <jk>null</jk> if annotation not specified.<a name="line.387"></a>
-<span class="sourceLineNo">388</span> */<a name="line.388"></a>
-<span class="sourceLineNo">389</span> public String[] getProperties() {<a name="line.389"></a>
-<span class="sourceLineNo">390</span> return properties;<a name="line.390"></a>
-<span class="sourceLineNo">391</span> }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span> /**<a name="line.393"></a>
-<span class="sourceLineNo">394</span> * Returns the language-specified extended metadata on this bean property.<a name="line.394"></a>
-<span class="sourceLineNo">395</span> *<a name="line.395"></a>
-<span class="sourceLineNo">396</span> * @param c The name of the metadata class to create.<a name="line.396"></a>
-<span class="sourceLineNo">397</span> * @return Extended metadata on this bean property. Never <jk>null</jk>.<a name="line.397"></a>
-<span class="sourceLineNo">398</span> */<a name="line.398"></a>
-<span class="sourceLineNo">399</span> public <M extends BeanPropertyMetaExtended> M getExtendedMeta(Class<M> c) {<a name="line.399"></a>
-<span class="sourceLineNo">400</span> if (delegateFor != null)<a name="line.400"></a>
-<span class="sourceLineNo">401</span> return delegateFor.getExtendedMeta(c);<a name="line.401"></a>
-<span class="sourceLineNo">402</span> return extMeta.get(c, this);<a name="line.402"></a>
-<span class="sourceLineNo">403</span> }<a name="line.403"></a>
-<span class="sourceLineNo">404</span><a name="line.404"></a>
-<span class="sourceLineNo">405</span> /**<a name="line.405"></a>
-<span class="sourceLineNo">406</span> * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.406"></a>
-<span class="sourceLineNo">407</span> *<a name="line.407"></a>
-<span class="sourceLineNo">408</span> * @param m The bean map to get the transformed value from.<a name="line.408"></a>
-<span class="sourceLineNo">409</span> * @param pName The property name.<a name="line.409"></a>
-<span class="sourceLineNo">410</span> * @return The property value.<a name="line.410"></a>
-<span class="sourceLineNo">411</span> */<a name="line.411"></a>
-<span class="sourceLineNo">412</span> public Object get(BeanMap<?> m, String pName) {<a name="line.412"></a>
-<span class="sourceLineNo">413</span> try {<a name="line.413"></a>
-<span class="sourceLineNo">414</span> if (overrideValue != null)<a name="line.414"></a>
-<span class="sourceLineNo">415</span> return overrideValue;<a name="line.415"></a>
-<span class="sourceLineNo">416</span><a name="line.416"></a>
-<span class="sourceLineNo">417</span> // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.417"></a>
-<span class="sourceLineNo">418</span> Object bean = m.bean;<a name="line.418"></a>
-<span class="sourceLineNo">419</span> if (bean == null)<a name="line.419"></a>
-<span class="sourceLineNo">420</span> return m.propertyCache.get(name);<a name="line.420"></a>
+<span class="sourceLineNo">261</span> /**<a name="line.261"></a>
+<span class="sourceLineNo">262</span> * Creates a new BeanPropertyMeta using the contents of the specified builder.<a name="line.262"></a>
+<span class="sourceLineNo">263</span> *<a name="line.263"></a>
+<span class="sourceLineNo">264</span> * @param b The builder to copy fields from.<a name="line.264"></a>
+<span class="sourceLineNo">265</span> */<a name="line.265"></a>
+<span class="sourceLineNo">266</span> protected BeanPropertyMeta(BeanPropertyMeta.Builder b) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span> this.field = b.field;<a name="line.267"></a>
+<span class="sourceLineNo">268</span> this.getter = b.getter;<a name="line.268"></a>
+<span class="sourceLineNo">269</span> this.setter = b.setter;<a name="line.269"></a>
+<span class="sourceLineNo">270</span> this.isUri = b.isUri;<a name="line.270"></a>
+<span class="sourceLineNo">271</span> this.beanMeta = b.beanMeta;<a name="line.271"></a>
+<span class="sourceLineNo">272</span> this.beanContext = b.beanContext;<a name="line.272"></a>
+<span class="sourceLineNo">273</span> this.name = b.name;<a name="line.273"></a>
+<span class="sourceLineNo">274</span> this.rawTypeMeta = b.rawTypeMeta;<a name="line.274"></a>
+<span class="sourceLineNo">275</span> this.typeMeta = b.typeMeta;<a name="line.275"></a>
+<span class="sourceLineNo">276</span> this.properties = b.properties;<a name="line.276"></a>
+<span class="sourceLineNo">277</span> this.swap = b.swap;<a name="line.277"></a>
+<span class="sourceLineNo">278</span> this.beanRegistry = b.beanRegistry;<a name="line.278"></a>
+<span class="sourceLineNo">279</span> this.overrideValue = b.overrideValue;<a name="line.279"></a>
+<span class="sourceLineNo">280</span> this.delegateFor = b.delegateFor;<a name="line.280"></a>
+<span class="sourceLineNo">281</span> this.extMeta = b.extMeta;<a name="line.281"></a>
+<span class="sourceLineNo">282</span> this.isDyna = b.isDyna;<a name="line.282"></a>
+<span class="sourceLineNo">283</span> }<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span> * Returns the name of this bean property.<a name="line.286"></a>
+<span class="sourceLineNo">287</span> *<a name="line.287"></a>
+<span class="sourceLineNo">288</span> * @return The name of the bean property.<a name="line.288"></a>
+<span class="sourceLineNo">289</span> */<a name="line.289"></a>
+<span class="sourceLineNo">290</span> public String getName() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span> return name;<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span> /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * Returns the bean meta that this property belongs to.<a name="line.295"></a>
+<span class="sourceLineNo">296</span> *<a name="line.296"></a>
+<span class="sourceLineNo">297</span> * @return The bean meta that this property belongs to.<a name="line.297"></a>
+<span class="sourceLineNo">298</span> */<a name="line.298"></a>
+<span class="sourceLineNo">299</span> @BeanIgnore<a name="line.299"></a>
+<span class="sourceLineNo">300</span> public BeanMeta<?> getBeanMeta() {<a name="line.300"></a>
+<span class="sourceLineNo">301</span> return beanMeta;<a name="line.301"></a>
+<span class="sourceLineNo">302</span> }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span> /**<a name="line.304"></a>
+<span class="sourceLineNo">305</span> * Returns the getter method for this property.<a name="line.305"></a>
+<span class="sourceLineNo">306</span> *<a name="line.306"></a>
+<span class="sourceLineNo">307</span> * @return The getter method for this bean property, or <jk>null</jk> if there is no getter method.<a name="line.307"></a>
+<span class="sourceLineNo">308</span> */<a name="line.308"></a>
+<span class="sourceLineNo">309</span> public Method getGetter() {<a name="line.309"></a>
+<span class="sourceLineNo">310</span> return getter;<a name="line.310"></a>
+<span class="sourceLineNo">311</span> }<a name="line.311"></a>
+<span class="sourceLineNo">312</span><a name="line.312"></a>
+<span class="sourceLineNo">313</span> /**<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * Returns the setter method for this property.<a name="line.314"></a>
+<span class="sourceLineNo">315</span> *<a name="line.315"></a>
+<span class="sourceLineNo">316</span> * @return The setter method for this bean property, or <jk>null</jk> if there is no setter method.<a name="line.316"></a>
+<span class="sourceLineNo">317</span> */<a name="line.317"></a>
+<span class="sourceLineNo">318</span> public Method getSetter() {<a name="line.318"></a>
+<span class="sourceLineNo">319</span> return setter;<a name="line.319"></a>
+<span class="sourceLineNo">320</span> }<a name="line.320"></a>
+<span class="sourceLineNo">321</span><a name="line.321"></a>
+<span class="sourceLineNo">322</span> /**<a name="line.322"></a>
+<span class="sourceLineNo">323</span> * Returns the field for this property.<a name="line.323"></a>
+<span class="sourceLineNo">324</span> *<a name="line.324"></a>
+<span class="sourceLineNo">325</span> * @return The field for this bean property, or <jk>null</jk> if there is no field associated with this bean property.<a name="line.325"></a>
+<span class="sourceLineNo">326</span> */<a name="line.326"></a>
+<span class="sourceLineNo">327</span> public Field getField() {<a name="line.327"></a>
+<span class="sourceLineNo">328</span> return field;<a name="line.328"></a>
+<span class="sourceLineNo">329</span> }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span> /**<a name="line.331"></a>
+<span class="sourceLineNo">332</span> * Returns the {@link ClassMeta} of the class of this property.<a name="line.332"></a>
+<span class="sourceLineNo">333</span> * <p><a name="line.333"></a>
+<span class="sourceLineNo">334</span> * If this property or the property type class has a {@link PojoSwap} associated with it, this<a name="line.334"></a>
+<span class="sourceLineNo">335</span> * method returns the transformed class meta.<a name="line.335"></a>
+<span class="sourceLineNo">336</span> * This matches the class type that is used by the {@link #get(BeanMap,String)} and {@link #set(BeanMap,String,Object)} methods.<a name="line.336"></a>
+<span class="sourceLineNo">337</span> *<a name="line.337"></a>
+<span class="sourceLineNo">338</span> * @return The {@link ClassMeta} of the class of this property.<a name="line.338"></a>
+<span class="sourceLineNo">339</span> */<a name="line.339"></a>
+<span class="sourceLineNo">340</span> public ClassMeta<?> getClassMeta() {<a name="line.340"></a>
+<span class="sourceLineNo">341</span> return typeMeta;<a name="line.341"></a>
+<span class="sourceLineNo">342</span> }<a name="line.342"></a>
+<span class="sourceLineNo">343</span><a name="line.343"></a>
+<span class="sourceLineNo">344</span> /**<a name="line.344"></a>
+<span class="sourceLineNo">345</span> * Returns the bean dictionary in use for this bean property.<a name="line.345"></a>
+<span class="sourceLineNo">346</span> * The order of lookup for the dictionary is as follows:<a name="line.346"></a>
+<span class="sourceLineNo">347</span> * <ol><a name="line.347"></a>
+<span class="sourceLineNo">348</span> * <li>Dictionary defined via {@link BeanProperty#beanDictionary()}.<a name="line.348"></a>
+<span class="sourceLineNo">349</span> * <li>Dictionary defined via {@link BeanContext#BEAN_beanDictionary} context property.<a name="line.349"></a>
+<span class="sourceLineNo">350</span> * </ol><a name="line.350"></a>
+<span class="sourceLineNo">351</span> * @return The bean dictionary in use for this bean property. Never <jk>null</jk>.<a name="line.351"></a>
+<span class="sourceLineNo">352</span> */<a name="line.352"></a>
+<span class="sourceLineNo">353</span> public BeanRegistry getBeanRegistry() {<a name="line.353"></a>
+<span class="sourceLineNo">354</span> return beanRegistry;<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span><a name="line.356"></a>
+<span class="sourceLineNo">357</span> /**<a name="line.357"></a>
+<span class="sourceLineNo">358</span> * Returns <jk>true</jk> if this bean property is a URI.<a name="line.358"></a>
+<span class="sourceLineNo">359</span> * <p><a name="line.359"></a>
+<span class="sourceLineNo">360</span> * A bean property can be considered a URI if any of the following are true:<a name="line.360"></a>
+<span class="sourceLineNo">361</span> * <ul class='spaced-list'><a name="line.361"></a>
+<span class="sourceLineNo">362</span> * <li>Property class type is {@link URL} or {@link URI}.<a name="line.362"></a>
+<span class="sourceLineNo">363</span> * <li>Property class type is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.363"></a>
+<span class="sourceLineNo">364</span> * <li>Property getter, setter, or field is annotated with {@link org.apache.juneau.annotation.URI}.<a name="line.364"></a>
+<span class="sourceLineNo">365</span> * </ul><a name="line.365"></a>
+<span class="sourceLineNo">366</span> *<a name="line.366"></a>
+<span class="sourceLineNo">367</span> * @return <jk>true</jk> if this bean property is a URI.<a name="line.367"></a>
+<span class="sourceLineNo">368</span> */<a name="line.368"></a>
+<span class="sourceLineNo">369</span> public boolean isUri() {<a name="line.369"></a>
+<span class="sourceLineNo">370</span> return isUri;<a name="line.370"></a>
+<span class="sourceLineNo">371</span> }<a name="line.371"></a>
+<span class="sourceLineNo">372</span><a name="line.372"></a>
+<span class="sourceLineNo">373</span> /**<a name="line.373"></a>
+<span class="sourceLineNo">374</span> * Returns <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.374"></a>
+<span class="sourceLineNo">375</span> * @return <jk>true</jk> if this bean property is named <js>"*"</js>.<a name="line.375"></a>
+<span class="sourceLineNo">376</span> */<a name="line.376"></a>
+<span class="sourceLineNo">377</span> public boolean isDyna() {<a name="line.377"></a>
+<span class="sourceLineNo">378</span> return isDyna;<a name="line.378"></a>
+<span class="sourceLineNo">379</span> }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span> /**<a name="line.381"></a>
+<span class="sourceLineNo">382</span> * Returns the override list of properties defined through a {@link BeanProperty#properties()} annotation<a name="line.382"></a>
+<span class="sourceLineNo">383</span> * on this property.<a name="line.383"></a>
+<span class="sourceLineNo">384</span> *<a name="line.384"></a>
+<span class="sourceLineNo">385</span> * @return The list of override properties, or <jk>null</jk> if annotation not specified.<a name="line.385"></a>
+<span class="sourceLineNo">386</span> */<a name="line.386"></a>
+<span class="sourceLineNo">387</span> public String[] getProperties() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span> return properties;<a name="line.388"></a>
+<span class="sourceLineNo">389</span> }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span> /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span> * Returns the language-specified extended metadata on this bean property.<a name="line.392"></a>
+<span class="sourceLineNo">393</span> *<a name="line.393"></a>
+<span class="sourceLineNo">394</span> * @param c The name of the metadata class to create.<a name="line.394"></a>
+<span class="sourceLineNo">395</span> * @return Extended metadata on this bean property. Never <jk>null</jk>.<a name="line.395"></a>
+<span class="sourceLineNo">396</span> */<a name="line.396"></a>
+<span class="sourceLineNo">397</span> public <M extends BeanPropertyMetaExtended> M getExtendedMeta(Class<M> c) {<a name="line.397"></a>
+<span class="sourceLineNo">398</span> if (delegateFor != null)<a name="line.398"></a>
+<span class="sourceLineNo">399</span> return delegateFor.getExtendedMeta(c);<a name="line.399"></a>
+<span class="sourceLineNo">400</span> return extMeta.get(c, this);<a name="line.400"></a>
+<span class="sourceLineNo">401</span> }<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span> /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span> * Equivalent to calling {@link BeanMap#get(Object)}, but is faster since it avoids looking up the property meta.<a name="line.404"></a>
+<span class="sourceLineNo">405</span> *<a name="line.405"></a>
+<span class="sourceLineNo">406</span> * @param m The bean map to get the transformed value from.<a name="line.406"></a>
+<span class="sourceLineNo">407</span> * @param pName The property name.<a name="line.407"></a>
+<span class="sourceLineNo">408</span> * @return The property value.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> */<a name="line.409"></a>
+<span class="sourceLineNo">410</span> public Object get(BeanMap<?> m, String pName) {<a name="line.410"></a>
+<span class="sourceLineNo">411</span> try {<a name="line.411"></a>
+<span class="sourceLineNo">412</span> if (overrideValue != null)<a name="line.412"></a>
+<span class="sourceLineNo">413</span> return overrideValue;<a name="line.413"></a>
+<span class="sourceLineNo">414</span><a name="line.414"></a>
+<span class="sourceLineNo">415</span> // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.415"></a>
+<span class="sourceLineNo">416</span> Object bean = m.bean;<a name="line.416"></a>
+<span class="sourceLineNo">417</span> if (bean == null)<a name="line.417"></a>
+<span class="sourceLineNo">418</span> return m.propertyCache.get(name);<a name="line.418"></a>
+<span class="sourceLineNo">419</span><a name="line.419"></a>
+<span class="sourceLineNo">420</span> return toSerializedForm(m.getBeanSession(), getRaw(m, pName));<a name="line.420"></a>
<span class="sourceLineNo">421</span><a name="line.421"></a>
-<span class="sourceLineNo">422</span> Object o = invokeGetter(bean, pName);<a name="line.422"></a>
-<span class="sourceLineNo">423</span><a name="line.423"></a>
-<span class="sourceLineNo">424</span> return toSerializedForm(m.getBeanSession(), o);<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span> } catch (Throwable e) {<a name="line.426"></a>
-<span class="sourceLineNo">427</span> if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span> if (rawTypeMeta.isPrimitive())<a name="line.428"></a>
-<span class="sourceLineNo">429</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.429"></a>
-<span class="sourceLineNo">430</span> return null;<a name="line.430"></a>
-<span class="sourceLineNo">431</span> }<a name="line.431"></a>
-<span class="sourceLineNo">432</span> throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.432"></a>
-<span class="sourceLineNo">433</span> }<a name="line.433"></a>
-<span class="sourceLineNo">434</span> }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
-<span class="sourceLineNo">437</span> * Converts a raw bean property value to serialized form.<a name="line.437"></a>
-<span class="sourceLineNo">438</span> * Applies transforms and child property filters.<a name="line.438"></a>
-<span class="sourceLineNo">439</span> */<a name="line.439"></a>
-<span class="sourceLineNo">440</span> final Object toSerializedForm(BeanSession session, Object o) {<a name="line.440"></a>
-<span class="sourceLineNo">441</span> try {<a name="line.441"></a>
-<span class="sourceLineNo">442</span> o = transform(session, o);<a name="line.442"></a>
-<span class="sourceLineNo">443</span> if (o == null)<a name="line.443"></a>
-<span class="sourceLineNo">444</span> return null;<a name="line.444"></a>
-<span class="sourceLineNo">445</span> if (properties != null) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span> if (rawTypeMeta.isArray()) {<a name="line.446"></a>
-<span class="sourceLineNo">447</span> Object[] a = (Object[])o;<a name="line.447"></a>
-<span class="sourceLineNo">448</span> List l = new DelegateList(rawTypeMeta);<a name="line.448"></a>
-<span class="sourceLineNo">449</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.449"></a>
-<span class="sourceLineNo">450</span> for (Object c : a)<a name="line.450"></a>
-<span class="sourceLineNo">451</span> l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.451"></a>
-<span class="sourceLineNo">452</span> return l;<a name="line.452"></a>
-<span class="sourceLineNo">453</span> } else if (rawTypeMeta.isCollection()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span> Collection c = (Collection)o;<a name="line.454"></a>
-<span class="sourceLineNo">455</span> List l = new ArrayList(c.size());<a name="line.455"></a>
-<span class="sourceLineNo">456</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.456"></a>
-<span class="sourceLineNo">457</span> for (Object cc : c)<a name="line.457"></a>
-<span class="sourceLineNo">458</span> l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.458"></a>
-<span class="sourceLineNo">459</span> return l;<a name="line.459"></a>
-<span class="sourceLineNo">460</span> } else {<a name="line.460"></a>
-<span class="sourceLineNo">461</span> return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.461"></a>
-<span class="sourceLineNo">462</span> }<a name="line.462"></a>
-<span class="sourceLineNo">463</span> }<a name="line.463"></a>
-<span class="sourceLineNo">464</span> return o;<a name="line.464"></a>
-<span class="sourceLineNo">465</span> } catch (SerializeException e) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span> throw new BeanRuntimeException(e);<a name="line.466"></a>
-<span class="sourceLineNo">467</span> }<a name="line.467"></a>
-<span class="sourceLineNo">468</span> }<a name="line.468"></a>
-<span class="sourceLineNo">469</span><a name="line.469"></a>
-<span class="sourceLineNo">470</span> /**<a name="line.470"></a>
-<span class="sourceLineNo">471</span> * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids<a name="line.471"></a>
-<span class="sourceLineNo">472</span> * looking up the property meta.<a name="line.472"></a>
-<span class="sourceLineNo">473</span> *<a name="line.473"></a>
-<span class="sourceLineNo">474</span> * @param m The bean map to set the property value on.<a name="line.474"></a>
-<span class="sourceLineNo">475</span> * @param pName The property name.<a name="line.475"></a>
-<span class="sourceLineNo">476</span> * @param value The value to set.<a name="line.476"></a>
-<span class="sourceLineNo">477</span> * @return The previous property value.<a name="line.477"></a>
-<span class="sourceLineNo">478</span> * @throws BeanRuntimeException If property could not be set.<a name="line.478"></a>
-<span class="sourceLineNo">479</span> */<a name="line.479"></a>
-<span class="sourceLineNo">480</span> public Object set(BeanMap<?> m, String pName, Object value) throws BeanRuntimeException {<a name="line.480"></a>
-<span class="sourceLineNo">481</span> try {<a name="line.481"></a>
-<span class="sourceLineNo">482</span><a name="line.482"></a>
-<span class="sourceLineNo">483</span> BeanSession session = m.getBeanSession();<a name="line.483"></a>
-<span class="sourceLineNo">484</span><a name="line.484"></a>
-<span class="sourceLineNo">485</span> // Comvert to raw form.<a name="line.485"></a>
-<span class="sourceLineNo">486</span> value = unswap(session, value);<a name="line.486"></a>
-<span class="sourceLineNo">487</span><a name="line.487"></a>
-<span class="sourceLineNo">488</span> if (m.bean == null) {<a name="line.488"></a>
-<span class="sourceLineNo">489</span><a name="line.489"></a>
-<span class="sourceLineNo">490</span> // Read-only beans get their properties stored in a cache.<a name="line.490"></a>
-<span class="sourceLineNo">491</span> if (m.propertyCache != null)<a name="line.491"></a>
-<span class="sourceLineNo">492</span> return m.propertyCache.put(name, value);<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span> throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.494"></a>
-<span class="sourceLineNo">495</span> }<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span> boolean isMap = rawTypeMeta.isMap();<a name="line.497"></a>
-<span class="sourceLineNo">498</span> boolean isCollection = rawTypeMeta.isCollection();<a name="line.498"></a>
-<span class="sourceLineNo">499</span><a name="line.499"></a>
-<span class="sourceLineNo">500</span> if ((! isDyna) && field == null && setter == null && ! (isMap || isCollection)) {<a name="line.500"></a>
-<span class="sourceLineNo">501</span> if ((value == null && beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.501"></a>
-<span class="sourceLineNo">502</span> return null;<a name="line.502"></a>
-<span class="sourceLineNo">503</span> throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.503"></a>
-<span class="sourceLineNo">504</span> }<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span> Object bean = m.getBean(true); // Don't use getBean() because it triggers array creation!<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span> try {<a name="line.508"></a>
+<span class="sourceLineNo">422</span> } catch (Throwable e) {<a name="line.422"></a>
+<span class="sourceLineNo">423</span> if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.423"></a>
+<span class="sourceLineNo">424</span> if (rawTypeMeta.isPrimitive())<a name="line.424"></a>
+<span class="sourceLineNo">425</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.425"></a>
+<span class="sourceLineNo">426</span> return null;<a name="line.426"></a>
+<span class="sourceLineNo">427</span> }<a name="line.427"></a>
+<span class="sourceLineNo">428</span> throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.428"></a>
+<span class="sourceLineNo">429</span> }<a name="line.429"></a>
+<span class="sourceLineNo">430</span> }<a name="line.430"></a>
+<span class="sourceLineNo">431</span><a name="line.431"></a>
+<span class="sourceLineNo">432</span> /**<a name="line.432"></a>
+<span class="sourceLineNo">433</span> * Equivalent to calling {@link BeanMap#getRaw(Object)}, but is faster since it avoids looking up the property meta.<a name="line.433"></a>
+<span class="sourceLineNo">434</span> *<a name="line.434"></a>
+<span class="sourceLineNo">435</span> * @param m The bean map to get the transformed value from.<a name="line.435"></a>
+<span class="sourceLineNo">436</span> * @param pName The property name.<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * @return The raw property value.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> */<a name="line.438"></a>
+<span class="sourceLineNo">439</span> public Object getRaw(BeanMap<?> m, String pName) {<a name="line.439"></a>
+<span class="sourceLineNo">440</span> try {<a name="line.440"></a>
+<span class="sourceLineNo">441</span> // Read-only beans have their properties stored in a cache until getBean() is called.<a name="line.441"></a>
+<span class="sourceLineNo">442</span> Object bean = m.bean;<a name="line.442"></a>
+<span class="sourceLineNo">443</span> if (bean == null)<a name="line.443"></a>
+<span class="sourceLineNo">444</span> return m.propertyCache.get(name);<a name="line.444"></a>
+<span class="sourceLineNo">445</span><a name="line.445"></a>
+<span class="sourceLineNo">446</span> return invokeGetter(bean, pName);<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span> } catch (Throwable e) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span> if (beanContext.ignoreInvocationExceptionsOnGetters) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span> if (rawTypeMeta.isPrimitive())<a name="line.450"></a>
+<span class="sourceLineNo">451</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.451"></a>
+<span class="sourceLineNo">452</span> return null;<a name="line.452"></a>
+<span class="sourceLineNo">453</span> }<a name="line.453"></a>
+<span class="sourceLineNo">454</span> throw new BeanRuntimeException(beanMeta.c, "Exception occurred while getting property ''{0}''", name).initCause(e);<a name="line.454"></a>
+<span class="sourceLineNo">455</span> }<a name="line.455"></a>
+<span class="sourceLineNo">456</span> }<a name="line.456"></a>
+<span class="sourceLineNo">457</span><a name="line.457"></a>
+<span class="sourceLineNo">458</span> /**<a name="line.458"></a>
+<span class="sourceLineNo">459</span> * Converts a raw bean property value to serialized form.<a name="line.459"></a>
+<span class="sourceLineNo">460</span> * Applies transforms and child property filters.<a name="line.460"></a>
+<span class="sourceLineNo">461</span> */<a name="line.461"></a>
+<span class="sourceLineNo">462</span> final Object toSerializedForm(BeanSession session, Object o) {<a name="line.462"></a>
+<span class="sourceLineNo">463</span> try {<a name="line.463"></a>
+<span class="sourceLineNo">464</span> o = transform(session, o);<a name="line.464"></a>
+<span class="sourceLineNo">465</span> if (o == null)<a name="line.465"></a>
+<span class="sourceLineNo">466</span> return null;<a name="line.466"></a>
+<span class="sourceLineNo">467</span> if (properties != null) {<a name="line.467"></a>
+<span class="sourceLineNo">468</span> if (rawTypeMeta.isArray()) {<a name="line.468"></a>
+<span class="sourceLineNo">469</span> Object[] a = (Object[])o;<a name="line.469"></a>
+<span class="sourceLineNo">470</span> List l = new DelegateList(rawTypeMeta);<a name="line.470"></a>
+<span class="sourceLineNo">471</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.471"></a>
+<span class="sourceLineNo">472</span> for (Object c : a)<a name="line.472"></a>
+<span class="sourceLineNo">473</span> l.add(applyChildPropertiesFilter(session, childType, c));<a name="line.473"></a>
+<span class="sourceLineNo">474</span> return l;<a name="line.474"></a>
+<span class="sourceLineNo">475</span> } else if (rawTypeMeta.isCollection()) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span> Collection c = (Collection)o;<a name="line.476"></a>
+<span class="sourceLineNo">477</span> List l = new ArrayList(c.size());<a name="line.477"></a>
+<span class="sourceLineNo">478</span> ClassMeta childType = rawTypeMeta.getElementType();<a name="line.478"></a>
+<span class="sourceLineNo">479</span> for (Object cc : c)<a name="line.479"></a>
+<span class="sourceLineNo">480</span> l.add(applyChildPropertiesFilter(session, childType, cc));<a name="line.480"></a>
+<span class="sourceLineNo">481</span> return l;<a name="line.481"></a>
+<span class="sourceLineNo">482</span> } else {<a name="line.482"></a>
+<span class="sourceLineNo">483</span> return applyChildPropertiesFilter(session, rawTypeMeta, o);<a name="line.483"></a>
+<span class="sourceLineNo">484</span> }<a name="line.484"></a>
+<span class="sourceLineNo">485</span> }<a name="line.485"></a>
+<span class="sourceLineNo">486</span> return o;<a name="line.486"></a>
+<span class="sourceLineNo">487</span> } catch (SerializeException e) {<a name="line.487"></a>
+<span class="sourceLineNo">488</span> throw new BeanRuntimeException(e);<a name="line.488"></a>
+<span class="sourceLineNo">489</span> }<a name="line.489"></a>
+<span class="sourceLineNo">490</span> }<a name="line.490"></a>
+<span class="sourceLineNo">491</span><a name="line.491"></a>
+<span class="sourceLineNo">492</span> /**<a name="line.492"></a>
+<span class="sourceLineNo">493</span> * Equivalent to calling {@link BeanMap#put(String, Object)}, but is faster since it avoids<a name="line.493"></a>
+<span class="sourceLineNo">494</span> * looking up the property meta.<a name="line.494"></a>
+<span class="sourceLineNo">495</span> *<a name="line.495"></a>
+<span class="sourceLineNo">496</span> * @param m The bean map to set the property value on.<a name="line.496"></a>
+<span class="sourceLineNo">497</span> * @param pName The property name.<a name="line.497"></a>
+<span class="sourceLineNo">498</span> * @param value The value to set.<a name="line.498"></a>
+<span class="sourceLineNo">499</span> * @return The previous property value.<a name="line.499"></a>
+<span class="sourceLineNo">500</span> * @throws BeanRuntimeException If property could not be set.<a name="line.500"></a>
+<span class="sourceLineNo">501</span> */<a name="line.501"></a>
+<span class="sourceLineNo">502</span> public Object set(BeanMap<?> m, String pName, Object value) throws BeanRuntimeException {<a name="line.502"></a>
+<span class="sourceLineNo">503</span> try {<a name="line.503"></a>
+<span class="sourceLineNo">504</span><a name="line.504"></a>
+<span class="sourceLineNo">505</span> BeanSession session = m.getBeanSession();<a name="line.505"></a>
+<span class="sourceLineNo">506</span><a name="line.506"></a>
+<span class="sourceLineNo">507</span> // Comvert to raw form.<a name="line.507"></a>
+<span class="sourceLineNo">508</span> value = unswap(session, value);<a name="line.508"></a>
<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span> Object r = beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) : null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span> Class<?> propertyClass = rawTypeMeta.getInnerClass();<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span> if (value == null && (isMap || isCollection)) {<a name="line.513"></a>
-<span class="sourceLineNo">514</span> invokeSetter(bean, pName, null);<a name="line.514"></a>
-<span class="sourceLineNo">515</span> return r;<a name="line.515"></a>
-<span class="sourceLineNo">516</span> }<a name="line.516"></a>
-<span class="sourceLineNo">517</span><a name="line.517"></a>
-<span class="sourceLineNo">518</span> if (isMap) {<a name="line.518"></a>
-<span class="sourceLineNo">519</span><a name="line.519"></a>
-<span class="sourceLineNo">520</span> if (! (value instanceof Map)) {<a name="line.520"></a>
-<span class="sourceLineNo">521</span> if (value instanceof CharSequence)<a name="line.521"></a>
-<span class="sourceLineNo">522</span> value = new ObjectMap((CharSequence)value).setBeanSession(session);<a name="line.522"></a>
-<span class="sourceLineNo">523</span> else<a name="line.523"></a>
-<span class="sourceLineNo">524</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.524"></a>
-<span class="sourceLineNo">525</span> }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span> Map valueMap = (Map)value;<a name="line.527"></a>
-<span class="sourceLineNo">528</span> Map propMap = (Map)r;<a name="line.528"></a>
-<span class="sourceLineNo">529</span> ClassMeta<?> valueType = rawTypeMeta.getValueType();<a name="line.529"></a>
-<span class="sourceLineNo">530</span><a name="line.530"></a>
-<span class="sourceLineNo">531</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.531"></a>
-<span class="sourceLineNo">532</span> // map (if it's not null), or try to assign the value directly.<a name="line.532"></a>
-<span class="sourceLineNo">533</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.533"></a>
-<span class="sourceLineNo">534</span> if (propMap == null) {<a name="line.534"></a>
-<span class="sourceLineNo">535</span> if (setter == null && field == null)<a name="line.535"></a>
-<span class="sourceLineNo">536</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.536"></a>
-<span class="sourceLineNo">537</span><a name="line.537"></a>
-<span class="sourceLineNo">538</span> if (propertyClass.isInstance(valueMap)) {<a name="line.538"></a>
-<span class="sourceLineNo">539</span> if (! valueType.isObject()) {<a name="line.539"></a>
-<span class="sourceLineNo">540</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span> Object v = e.getValue();<a name="line.541"></a>
-<span class="sourceLineNo">542</span> if (v != null && ! valueType.getInnerClass().isInstance(v))<a name="line.542"></a>
-<span class="sourceLineNo">543</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.543"></a>
-<span class="sourceLineNo">544</span> }<a name="line.544"></a>
-<span class="sourceLineNo">545</span> }<a name="line.545"></a>
-<span class="sourceLineNo">546</span> invokeSetter(bean, pName, valueMap);<a name="line.546"></a>
-<span class="sourceLineNo">547</span> return r;<a name="line.547"></a>
-<span class="sourceLineNo">548</span> }<a name="line.548"></a>
-<span class="sourceLineNo">549</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.549"></a>
-<span class="sourceLineNo">550</span> }<a name="line.550"></a>
-<span class="sourceLineNo">551</span> } else {<a name="line.551"></a>
-<span class="sourceLineNo">552</span> if (propMap == null) {<a name="line.552"></a>
-<span class="sourceLineNo">553</span> propMap = newInstance(Map.class, propertyClass);<a name="line.553"></a>
-<span class="sourceLineNo">554</span> } else {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> propMap.clear();<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span> }<a name="line.557"></a>
-<span class="sourceLineNo">558</span><a name="line.558"></a>
-<span class="sourceLineNo">559</span> // Set the values.<a name="line.559"></a>
-<span class="sourceLineNo">560</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.560"></a>
-<span class="sourceLineNo">561</span> Object k = e.getKey();<a name="line.561"></a>
-<span class="sourceLineNo">562</span> Object v = e.getValue();<a name="line.562"></a>
-<span class="sourceLineNo">563</span> if (! valueType.isObject())<a name="line.563"></a>
-<span class="sourceLineNo">564</span> v = session.convertToType(v, valueType);<a name="line.564"></a>
-<span class="sourceLineNo">565</span> propMap.put(k, v);<a name="line.565"></a>
-<span class="sourceLineNo">566</span> }<a name="line.566"></a>
-<span class="sourceLineNo">567</span> if (setter != null || field != null)<a name="line.567"></a>
-<span class="sourceLineNo">568</span> invokeSetter(bean, pName, propMap);<a name="line.568"></a>
-<span class="sourceLineNo">569</span><a name="line.569"></a>
-<span class="sourceLineNo">570</span> } else if (isCollection) {<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span> if (! (value instanceof Collection)) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span> if (value instanceof CharSequence)<a name="line.573"></a>
-<span class="sourceLineNo">574</span> value = new ObjectList((CharSequence)value).setBeanSession(session);<a name="line.574"></a>
-<span class="sourceLineNo">575</span> else<a name="line.575"></a>
-<span class="sourceLineNo">576</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.576"></a>
-<span class="sourceLineNo">577</span> }<a name="line.577"></a>
-<span class="sourceLineNo">578</span><a name="line.578"></a>
-<span class="sourceLineNo">579</span> Collection valueList = (Collection)value;<a name="line.579"></a>
-<span class="sourceLineNo">580</span> Collection propList = (Collection)r;<a name="line.580"></a>
-<span class="sourceLineNo">581</span> ClassMeta elementType = rawTypeMeta.getElementType();<a name="line.581"></a>
-<span class="sourceLineNo">582</span><a name="line.582"></a>
-<span class="sourceLineNo">583</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.583"></a>
-<span class="sourceLineNo">584</span> // collection (if it's not null), or try to assign the value directly.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span> if (propList == null) {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> if (setter == null && field == null)<a name="line.587"></a>
-<span class="sourceLineNo">588</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span> if (propertyClass.isInstance(valueList)) {<a name="line.590"></a>
-<span class="sourceLineNo">591</span> if (! elementType.isObject()) {<a name="line.591"></a>
-<span class="sourceLineNo">592</span> List l = new ObjectList(valueList);<a name="line.592"></a>
-<span class="sourceLineNo">593</span> for (ListIterator<Object> i = l.listIterator(); i.hasNext(); ) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span> Object v = i.next();<a name="line.594"></a>
-<span class="sourceLineNo">595</span> if (v != null && (! elementType.getInnerClass().isInstance(v))) {<a name="line.595"></a>
-<span class="sourceLineNo">596</span> i.set(session.convertToType(v, elementType));<a name="line.596"></a>
-<span class="sourceLineNo">597</span> }<a name="line.597"></a>
-<span class="sourceLineNo">598</span> }<a name="line.598"></a>
-<span class="sourceLineNo">599</span> valueList = l;<a name="line.599"></a>
-<span class="sourceLineNo">600</span> }<a name="line.600"></a>
-<span class="sourceLineNo">601</span> invokeSetter(bean, pName, valueList);<a name="line.601"></a>
-<span class="sourceLineNo">602</span> return r;<a name="line.602"></a>
-<span class="sourceLineNo">603</span> }<a name="line.603"></a>
-<span class="sourceLineNo">604</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.604"></a>
-<span class="sourceLineNo">605</span> }<a name="line.605"></a>
-<span class="sourceLineNo">606</span> propList.clear();<a name="line.606"></a>
-<span class="sourceLineNo">607</span> } else {<a name="line.607"></a>
+<span class="sourceLineNo">510</span> if (m.bean == null) {<a name="line.510"></a>
+<span class="sourceLineNo">511</span><a name="line.511"></a>
+<span class="sourceLineNo">512</span> // Read-only beans get their properties stored in a cache.<a name="line.512"></a>
+<span class="sourceLineNo">513</span> if (m.propertyCache != null)<a name="line.513"></a>
+<span class="sourceLineNo">514</span> return m.propertyCache.put(name, value);<a name="line.514"></a>
+<span class="sourceLineNo">515</span><a name="line.515"></a>
+<span class="sourceLineNo">516</span> throw new BeanRuntimeException("Non-existent bean instance on bean.");<a name="line.516"></a>
+<span class="sourceLineNo">517</span> }<a name="line.517"></a>
+<span class="sourceLineNo">518</span><a name="line.518"></a>
+<span class="sourceLineNo">519</span> boolean isMap = rawTypeMeta.isMap();<a name="line.519"></a>
+<span class="sourceLineNo">520</span> boolean isCollection = rawTypeMeta.isCollection();<a name="line.520"></a>
+<span class="sourceLineNo">521</span><a name="line.521"></a>
+<span class="sourceLineNo">522</span> if ((! isDyna) && field == null && setter == null && ! (isMap || isCollection)) {<a name="line.522"></a>
+<span class="sourceLineNo">523</span> if ((value == null && beanContext.ignoreUnknownNullBeanProperties) || beanContext.ignorePropertiesWithoutSetters)<a name="line.523"></a>
+<span class="sourceLineNo">524</span> return null;<a name="line.524"></a>
+<span class="sourceLineNo">525</span> throw new BeanRuntimeException(beanMeta.c, "Setter or public field not defined on property ''{0}''", name);<a name="line.525"></a>
+<span class="sourceLineNo">526</span> }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span> Object bean = m.getBean(true); // Don't use getBean() because it triggers array creation!<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span> try {<a name="line.530"></a>
+<span class="sourceLineNo">531</span><a name="line.531"></a>
+<span class="sourceLineNo">532</span> Object r = beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) : null;<a name="line.532"></a>
+<span class="sourceLineNo">533</span> Class<?> propertyClass = rawTypeMeta.getInnerClass();<a name="line.533"></a>
+<span class="sourceLineNo">534</span><a name="line.534"></a>
+<span class="sourceLineNo">535</span> if (value == null && (isMap || isCollection)) {<a name="line.535"></a>
+<span class="sourceLineNo">536</span> invokeSetter(bean, pName, null);<a name="line.536"></a>
+<span class="sourceLineNo">537</span> return r;<a name="line.537"></a>
+<span class="sourceLineNo">538</span> }<a name="line.538"></a>
+<span class="sourceLineNo">539</span><a name="line.539"></a>
+<span class="sourceLineNo">540</span> if (isMap) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span><a name="line.541"></a>
+<span class="sourceLineNo">542</span> if (! (value instanceof Map)) {<a name="line.542"></a>
+<span class="sourceLineNo">543</span> if (value instanceof CharSequence)<a name="line.543"></a>
+<span class="sourceLineNo">544</span> value = new ObjectMap((CharSequence)value).setBeanSession(session);<a name="line.544"></a>
+<span class="sourceLineNo">545</span> else<a name="line.545"></a>
+<span class="sourceLineNo">546</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.546"></a>
+<span class="sourceLineNo">547</span> }<a name="line.547"></a>
+<span class="sourceLineNo">548</span><a name="line.548"></a>
+<span class="sourceLineNo">549</span> Map valueMap = (Map)value;<a name="line.549"></a>
+<span class="sourceLineNo">550</span> Map propMap = (Map)r;<a name="line.550"></a>
+<span class="sourceLineNo">551</span> ClassMeta<?> valueType = rawTypeMeta.getValueType();<a name="line.551"></a>
+<span class="sourceLineNo">552</span><a name="line.552"></a>
+<span class="sourceLineNo">553</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.553"></a>
+<span class="sourceLineNo">554</span> // map (if it's not null), or try to assign the value directly.<a name="line.554"></a>
+<span class="sourceLineNo">555</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.555"></a>
+<span class="sourceLineNo">556</span> if (propMap == null) {<a name="line.556"></a>
+<span class="sourceLineNo">557</span> if (setter == null && field == null)<a name="line.557"></a>
+<span class="sourceLineNo">558</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.558"></a>
+<span class="sourceLineNo">559</span><a name="line.559"></a>
+<span class="sourceLineNo">560</span> if (propertyClass.isInstance(valueMap)) {<a name="line.560"></a>
+<span class="sourceLineNo">561</span> if (! valueType.isObject()) {<a name="line.561"></a>
+<span class="sourceLineNo">562</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.562"></a>
+<span class="sourceLineNo">563</span> Object v = e.getValue();<a name="line.563"></a>
+<span class="sourceLineNo">564</span> if (v != null && ! valueType.getInnerClass().isInstance(v))<a name="line.564"></a>
+<span class="sourceLineNo">565</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because the value types in the assigned map do not match the specified ''elementClass'' attribute on the property, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.565"></a>
+<span class="sourceLineNo">566</span> }<a name="line.566"></a>
+<span class="sourceLineNo">567</span> }<a name="line.567"></a>
+<span class="sourceLineNo">568</span> invokeSetter(bean, pName, valueMap);<a name="line.568"></a>
+<span class="sourceLineNo">569</span> return r;<a name="line.569"></a>
+<span class="sourceLineNo">570</span> }<a name="line.570"></a>
+<span class="sourceLineNo">571</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{2}'' to object of type ''{2}'' because the assigned map cannot be converted to the specified type because the property type is abstract, and the property value is currently null", name, propertyClass.getName(), findClassName(value));<a name="line.571"></a>
+<span class="sourceLineNo">572</span> }<a name="line.572"></a>
+<span class="sourceLineNo">573</span> } else {<a name="line.573"></a>
+<span class="sourceLineNo">574</span> if (propMap == null) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span> propMap = newInstance(Map.class, propertyClass);<a name="line.575"></a>
+<span class="sourceLineNo">576</span> } else {<a name="line.576"></a>
+<span class="sourceLineNo">577</span> propMap.clear();<a name="line.577"></a>
+<span class="sourceLineNo">578</span> }<a name="line.578"></a>
+<span class="sourceLineNo">579</span> }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span> // Set the values.<a name="line.581"></a>
+<span class="sourceLineNo">582</span> for (Map.Entry e : (Set<Map.Entry>)valueMap.entrySet()) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span> Object k = e.getKey();<a name="line.583"></a>
+<span class="sourceLineNo">584</span> Object v = e.getValue();<a name="line.584"></a>
+<span class="sourceLineNo">585</span> if (! valueType.isObject())<a name="line.585"></a>
+<span class="sourceLineNo">586</span> v = session.convertToType(v, valueType);<a name="line.586"></a>
+<span class="sourceLineNo">587</span> propMap.put(k, v);<a name="line.587"></a>
+<span class="sourceLineNo">588</span> }<a name="line.588"></a>
+<span class="sourceLineNo">589</span> if (setter != null || field != null)<a name="line.589"></a>
+<span class="sourceLineNo">590</span> invokeSetter(bean, pName, propMap);<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span> } else if (isCollection) {<a name="line.592"></a>
+<span class="sourceLineNo">593</span><a name="line.593"></a>
+<span class="sourceLineNo">594</span> if (! (value instanceof Collection)) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span> if (value instanceof CharSequence)<a name="line.595"></a>
+<span class="sourceLineNo">596</span> value = new ObjectList((CharSequence)value).setBeanSession(session);<a name="line.596"></a>
+<span class="sourceLineNo">597</span> else<a name="line.597"></a>
+<span class="sourceLineNo">598</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}''", name, propertyClass.getName(), findClassName(value));<a name="line.598"></a>
+<span class="sourceLineNo">599</span> }<a name="line.599"></a>
+<span class="sourceLineNo">600</span><a name="line.600"></a>
+<span class="sourceLineNo">601</span> Collection valueList = (Collection)value;<a name="line.601"></a>
+<span class="sourceLineNo">602</span> Collection propList = (Collection)r;<a name="line.602"></a>
+<span class="sourceLineNo">603</span> ClassMeta elementType = rawTypeMeta.getElementType();<a name="line.603"></a>
+<span class="sourceLineNo">604</span><a name="line.604"></a>
+<span class="sourceLineNo">605</span> // If the property type is abstract, then we either need to reuse the existing<a name="line.605"></a>
+<span class="sourceLineNo">606</span> // collection (if it's not null), or try to assign the value directly.<a name="line.606"></a>
+<span class="sourceLineNo">607</span> if (! rawTypeMeta.canCreateNewInstance()) {<a name="line.607"></a>
<span class="sourceLineNo">608</span> if (propList == null) {<a name="line.608"></a>
-<span class="sourceLineNo">609</span> propList = newInstance(Collection.class, propertyClass);<a name="line.609"></a>
-<span class="sourceLineNo">610</span> invokeSetter(bean, pName, propList);<a name="line.610"></a>
-<span class="sourceLineNo">611</span> } else {<a name="line.611"></a>
-<span class="sourceLineNo">612</span> propList.clear();<a name="line.612"></a>
-<span class="sourceLineNo">613</span> }<a name="line.613"></a>
-<span class="sourceLineNo">614</span> }<a name="line.614"></a>
-<span class="sourceLineNo">615</span><a name="line.615"></a>
-<span class="sourceLineNo">616</span> // Set the values.<a name="line.616"></a>
-<span class="sourceLineNo">617</span> for (Object v : valueList) {<a name="line.617"></a>
-<span class="sourceLineNo">618</span> if (! elementType.isObject())<a name="line.618"></a>
-<span class="sourceLineNo">619</span> v = session.convertToType(v, elementType);<a name="line.619"></a>
-<span class="sourceLineNo">620</span> propList.add(v);<a name="line.620"></a>
-<span class="sourceLineNo">621</span> }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span> } else {<a name="line.623"></a>
-<span class="sourceLineNo">624</span> if (swap != null && value != null && isParentClass(swap.getSwapClass(), value.getClass())) {<a name="line.624"></a>
-<span class="sourceLineNo">625</span> value = swap.unswap(session, value, rawTypeMeta);<a name="line.625"></a>
-<span class="sourceLineNo">626</span> } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span> value = session.convertToType(value, rawTypeMeta);<a name="line.627"></a>
-<span class="sourceLineNo">628</span> }<a name="line.628"></a>
-<span class="sourceLineNo">629</span> invokeSetter(bean, pName, value);<a name="line.629"></a>
-<span class="sourceLineNo">630</span> }<a name="line.630"></a>
-<span class="sourceLineNo">631</span><a name="line.631"></a>
-<span class="sourceLineNo">632</span> return r;<a name="line.632"></a>
-<span class="sourceLineNo">633</span><a name="line.633"></a>
-<span class="sourceLineNo">634</span> } catch (BeanRuntimeException e) {<a name="line.634"></a>
-<span class="sourceLineNo">635</span> throw e;<a name="line.635"></a>
-<span class="sourceLineNo">636</span> } catch (Exception e) {<a name="line.636"></a>
-<span class="sourceLineNo">637</span> e.printStackTrace();<a name="line.637"></a>
-<span class="sourceLineNo">638</span> if (beanContext.ignoreInvocationExceptionsOnSetters) {<a name="line.638"></a>
-<span class="sourceLineNo">639</span> if (rawTypeMeta.isPrimitive())<a name="line.639"></a>
-<span class="sourceLineNo">640</span> return rawTypeMeta.getPrimitiveDefault();<a name="line.640"></a>
-<span class="sourceLineNo">641</span> return null;<a name="line.641"></a>
-<span class="sourceLineNo">642</span> }<a name="line.642"></a>
-<span class="sourceLineNo">643</span> throw new BeanRuntimeException(beanMeta.c, "Error occurred trying to set property ''{0}''", name).initCause(e);<a name="line.643"></a>
-<span class="sourceLineNo">644</span> }<a name="line.644"></a>
-<span class="sourceLineNo">645</span> } catch (ParseException e) {<a name="line.645"></a>
-<span class="sourceLineNo">646</span> throw new BeanRuntimeException(e);<a name="line.646"></a>
-<span class="sourceLineNo">647</span> }<a name="line.647"></a>
-<span class="sourceLineNo">648</span> }<a name="line.648"></a>
-<span class="sourceLineNo">649</span><a name="line.649"></a>
-<span class="sourceLineNo">650</span> private Object invokeGetter(Object bean, String pName) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {<a name="line.650"></a>
-<span class="sourceLineNo">651</span> if (isDyna) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span> Map m = null;<a name="line.652"></a>
-<span class="sourceLineNo">653</span> if (getter != null)<a name="line.653"></a>
-<span class="sourceLineNo">654</span> m = (Map)getter.invoke(bean);<a name="line.654"></a>
-<span class="sourceLineNo">655</span> else if (field != null)<a name="line.655"></a>
-<span class="sourceLineNo">656</span> m = (Map)field.get(bean);<a name="line.656"></a>
-<span class="sourceLineNo">657</span> else<a name="line.657"></a>
-<span class="sourceLineNo">658</span> throw new BeanRuntimeException(beanMeta.c, "Getter or public field not defined on property ''{0}''", name);<a name="line.658"></a>
-<span class="sourceLineNo">659</span> return (m == null ? null : m.get(pName));<a name="line.659"></a>
-<span class="sourceLineNo">660</span> }<a name="line.660"></a>
-<span class="sourceLineNo">661</span> if (getter != null)<a name="line.661"></a>
-<span class="sourceLineNo">662</span> return getter.invoke(bean);<a name="line.662"></a>
-<span class="sourceLineNo">663</span> if (field != null)<a name="line.663"></a>
-<span class="sourceLineNo">664</span> return field.get(bean);<a name="line.664"></a>
-<span class="sourceLineNo">665</span> throw new BeanRuntimeException(beanMeta.c, "Getter or public field not defined on property ''{0}''", name);<a name="line.665"></a>
-<span class="sourceLineNo">666</span> }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span> private Object invokeSetter(Object bean, String pName, Object val) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {<a name="line.668"></a>
-<span class="sourceLineNo">669</span> if (isDyna) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span> if (setter != null)<a name="line.670"></a>
-<span class="sourceLineNo">671</span> return setter.invoke(bean, pName, val);<a name="line.671"></a>
-<span class="sourceLineNo">672</span> Map m = null;<a name="line.672"></a>
-<span class="sourceLineNo">673</span> if (field != null)<a name="line.673"></a>
-<span class="sourceLineNo">674</span> m = (Map<String,Object>)field.get(bean);<a name="line.674"></a>
-<span class="sourceLineNo">675</span> else if (getter != null)<a name="line.675"></a>
-<span class="sourceLineNo">676</span> m = (Map<String,Object>)getter.invoke(bean);<a name="line.676"></a>
-<span class="sourceLineNo">677</span> else<a name="line.677"></a>
-<span class="sourceLineNo">678</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter is defined on this property, and the existing property value is null", name, this.getClassMeta().getInnerClass().getName(), findClassName(val));<a name="line.678"></a>
-<span class="sourceLineNo">679</span> return (m == null ? null : m.put(pName, val));<a name="line.679"></a>
-<span class="sourceLineNo">680</span> }<a name="line.680"></a>
-<span class="sourceLineNo">681</span> if (setter != null)<a name="line.681"></a>
-<span class="sourceLineNo">682</span> return setter.invoke(bean, val);<a name="line.682"></a>
-<span class="sourceLineNo">683</span> if (field != null) {<a name="line.683"></a>
-<span class="sourceLineNo">684</span> field.set(bean, val);<a name="line.684"></a>
-<span class="sourceLineNo">685</span> return null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span> }<a name="line.686"></a>
-<span class="sourceLineNo">687</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter is defined on this property, and the existing property value is null", name, this.getClassMeta().getInnerClass().getName(), findClassName(val));<a name="line.687"></a>
+<span class="sourceLineNo">609</span> if (setter == null && field == null)<a name="line.609"></a>
+<span class="sourceLineNo">610</span> throw new BeanRuntimeException(beanMeta.c, "Cannot set property ''{0}'' of type ''{1}'' to object of type ''{2}'' because no setter or public field is defined, and the current value is null", name, propertyClass.getName(), findClassName(value));<a name="line.610"></a>
+<span class="sourceLineNo">611</span><a name="line.611"></a>
+<span class="sourceLineNo">612</span> if (propertyClass.isInstance(valueList)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span> if (! elementType.isObject()) {<a name="line.613"></a>
+<span class="sourceLineNo">614</span> List l = new ObjectList(valueList);<a name="line.614"></a>
+<span class="sourceLineNo">615</span> for (ListIterator<Object> i = l.listIterator(); i.hasNext(); ) {<a name="line.615"></a>
+<span class="sourceLineNo">616</span> Object v = i.next();<a name="line.616"></a>
+<span class="sourceLineNo">617</span> if (v != null && (! elementType.getInnerClass().isInstance(v))) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span> i.set(session.convertToType(v, elementType));<a name="line.
<TRUNCATED>
[09/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/ObjectMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/ObjectMap.html b/content/site/apidocs/src-html/org/apache/juneau/ObjectMap.html
index c77defa..2f604a3 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/ObjectMap.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/ObjectMap.html
@@ -158,1164 +158,1168 @@
<span class="sourceLineNo">150</span> this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession());<a name="line.150"></a>
<span class="sourceLineNo">151</span> if (p == null)<a name="line.151"></a>
<span class="sourceLineNo">152</span> p = JsonParser.DEFAULT;<a name="line.152"></a>
-<span class="sourceLineNo">153</span> if (! StringUtils.isEmpty(s))<a name="line.153"></a>
-<span class="sourceLineNo">154</span> p.parseIntoMap(s, this, session.string(), session.object());<a name="line.154"></a>
-<span class="sourceLineNo">155</span> }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span> /**<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * Shortcut for <code><jk>new</jk> ObjectMap(string,JsonParser.<jsf>DEFAULT</jsf>);</code><a name="line.158"></a>
-<span class="sourceLineNo">159</span> *<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * @param s The JSON text to parse.<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.161"></a>
-<span class="sourceLineNo">162</span> */<a name="line.162"></a>
-<span class="sourceLineNo">163</span> public ObjectMap(CharSequence s) throws ParseException {<a name="line.163"></a>
-<span class="sourceLineNo">164</span> this(s, null);<a name="line.164"></a>
-<span class="sourceLineNo">165</span> }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span> /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * Construct an ObjectMap directly from a reader using the specified parser.<a name="line.168"></a>
-<span class="sourceLineNo">169</span> *<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * @param r The reader to read from. The reader will be wrapped in a {@link BufferedReader} if it isn't already.<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * @param p The parser to use to parse the input.<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.172"></a>
-<span class="sourceLineNo">173</span> * @throws IOException If a problem occurred trying to read from the reader.<a name="line.173"></a>
-<span class="sourceLineNo">174</span> */<a name="line.174"></a>
-<span class="sourceLineNo">175</span> public ObjectMap(Reader r, Parser p) throws ParseException, IOException {<a name="line.175"></a>
-<span class="sourceLineNo">176</span> this(p == null ? BeanContext.DEFAULT.createSession() : p.getBeanContext().createSession());<a name="line.176"></a>
-<span class="sourceLineNo">177</span> parseReader(r, p);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span> /**<a name="line.180"></a>
-<span class="sourceLineNo">181</span> * Shortcut for <code><jk>new</jk> ObjectMap(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>.<a name="line.181"></a>
-<span class="sourceLineNo">182</span> *<a name="line.182"></a>
-<span class="sourceLineNo">183</span> * @param r The reader to read from. The reader will be wrapped in a {@link BufferedReader} if it isn't already.<a name="line.183"></a>
-<span class="sourceLineNo">184</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.184"></a>
-<span class="sourceLineNo">185</span> * @throws IOException If a problem occurred trying to read from the reader.<a name="line.185"></a>
-<span class="sourceLineNo">186</span> */<a name="line.186"></a>
-<span class="sourceLineNo">187</span> public ObjectMap(Reader r) throws ParseException, IOException {<a name="line.187"></a>
-<span class="sourceLineNo">188</span> this(BeanContext.DEFAULT.createSession());<a name="line.188"></a>
-<span class="sourceLineNo">189</span> parseReader(r, JsonParser.DEFAULT);<a name="line.189"></a>
-<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span><a name="line.191"></a>
-<span class="sourceLineNo">192</span> private void parseReader(Reader r, Parser p) throws ParseException {<a name="line.192"></a>
-<span class="sourceLineNo">193</span> if (p == null)<a name="line.193"></a>
-<span class="sourceLineNo">194</span> p = JsonParser.DEFAULT;<a name="line.194"></a>
-<span class="sourceLineNo">195</span> p.parseIntoMap(r, this, session.string(), session.object());<a name="line.195"></a>
-<span class="sourceLineNo">196</span> }<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span> /**<a name="line.198"></a>
-<span class="sourceLineNo">199</span> * Construct an empty JSON object (i.e. an empty {@link LinkedHashMap}).<a name="line.199"></a>
-<span class="sourceLineNo">200</span> */<a name="line.200"></a>
-<span class="sourceLineNo">201</span> public ObjectMap() {<a name="line.201"></a>
-<span class="sourceLineNo">202</span> this(BeanContext.DEFAULT.createSession());<a name="line.202"></a>
-<span class="sourceLineNo">203</span> }<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span> /**<a name="line.205"></a>
-<span class="sourceLineNo">206</span> * Construct an empty JSON object (i.e. an empty {@link LinkedHashMap}) with the specified bean context.<a name="line.206"></a>
-<span class="sourceLineNo">207</span> *<a name="line.207"></a>
-<span class="sourceLineNo">208</span> * @param session The bean session to use for creating beans.<a name="line.208"></a>
-<span class="sourceLineNo">209</span> */<a name="line.209"></a>
-<span class="sourceLineNo">210</span> public ObjectMap(BeanSession session) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span> this.session = session;<a name="line.211"></a>
-<span class="sourceLineNo">212</span> }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span> /**<a name="line.214"></a>
-<span class="sourceLineNo">215</span> * Construct a JSON object and fill it with the contents from the specified {@link Map}.<a name="line.215"></a>
-<span class="sourceLineNo">216</span> *<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * @param m The map whose entries will be copied into this map.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> */<a name="line.218"></a>
-<span class="sourceLineNo">219</span> public ObjectMap(Map<?,?> m) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span> super();<a name="line.220"></a>
-<span class="sourceLineNo">221</span> for (Map.Entry<?,?> e : m.entrySet())<a name="line.221"></a>
-<span class="sourceLineNo">222</span> put(e.getKey().toString(), e.getValue());<a name="line.222"></a>
-<span class="sourceLineNo">223</span> }<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span> /**<a name="line.225"></a>
-<span class="sourceLineNo">226</span> * Set an inner map in this map to allow for chained get calls.<a name="line.226"></a>
-<span class="sourceLineNo">227</span> * <p><a name="line.227"></a>
-<span class="sourceLineNo">228</span> * If {@link #get(Object)} returns <jk>null</jk>, then {@link #get(Object)} will be called on the inner map.<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * <p><a name="line.229"></a>
-<span class="sourceLineNo">230</span> * In addition to providing the ability to chain maps, this method also provides the ability<a name="line.230"></a>
-<span class="sourceLineNo">231</span> * to wrap an existing map inside another map so that you can add entries to the outer<a name="line.231"></a>
-<span class="sourceLineNo">232</span> * map without affecting the values on the inner map.<a name="line.232"></a>
-<span class="sourceLineNo">233</span> * <p class='bcode'><a name="line.233"></a>
-<span class="sourceLineNo">234</span> * ObjectMap m1 = <jk>new</jk> ObjectMap(<js>"{foo:1}"</js>);<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * ObjectMap m2 = <jk>new</jk> ObjectMap().setInner(m1);<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * m2.put(<js>"foo"</js>, 2); <jc>// Overwrite the entry</jc><a name="line.236"></a>
-<span class="sourceLineNo">237</span> * <jk>int</jk> foo1 = m1.getInt(<js>"foo"</js>); <jc>// foo1 == 1 </jc><a name="line.237"></a>
-<span class="sourceLineNo">238</span> * <jk>int</jk> foo2 = m2.getInt(<js>"foo"</js>); <jc>// foo2 == 2 </jc><a name="line.238"></a>
-<span class="sourceLineNo">239</span> * </p><a name="line.239"></a>
-<span class="sourceLineNo">240</span> *<a name="line.240"></a>
-<span class="sourceLineNo">241</span> * @param inner The inner map.<a name="line.241"></a>
-<span class="sourceLineNo">242</span> * Can be <jk>null</jk> to remove the inner map from an existing map.<a name="line.242"></a>
-<span class="sourceLineNo">243</span> * @return This object (for method chaining).<a name="line.243"></a>
-<span class="sourceLineNo">244</span> */<a name="line.244"></a>
-<span class="sourceLineNo">245</span> public ObjectMap setInner(Map<String,Object> inner) {<a name="line.245"></a>
-<span class="sourceLineNo">246</span> this.inner = inner;<a name="line.246"></a>
-<span class="sourceLineNo">247</span> return this;<a name="line.247"></a>
-<span class="sourceLineNo">248</span> }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span> * Searches for the specified key in this map ignoring case.<a name="line.251"></a>
-<span class="sourceLineNo">252</span> *<a name="line.252"></a>
-<span class="sourceLineNo">253</span> * @param key The key to search for. For performance reasons, it's preferrable that the key be all lowercase.<a name="line.253"></a>
-<span class="sourceLineNo">254</span> * @return The key, or <jk>null</jk> if map does not contain this key.<a name="line.254"></a>
-<span class="sourceLineNo">255</span> */<a name="line.255"></a>
-<span class="sourceLineNo">256</span> public String findKeyIgnoreCase(String key) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span> for (String k : keySet())<a name="line.257"></a>
-<span class="sourceLineNo">258</span> if (key.equalsIgnoreCase(k))<a name="line.258"></a>
-<span class="sourceLineNo">259</span> return k;<a name="line.259"></a>
-<span class="sourceLineNo">260</span> return null;<a name="line.260"></a>
-<span class="sourceLineNo">261</span> }<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span> /**<a name="line.263"></a>
-<span class="sourceLineNo">264</span> * Override the default bean session used for converting POJOs.<a name="line.264"></a>
-<span class="sourceLineNo">265</span> * <p><a name="line.265"></a>
-<span class="sourceLineNo">266</span> * Default is {@link BeanContext#DEFAULT}, which is sufficient in most cases.<a name="line.266"></a>
-<span class="sourceLineNo">267</span> * <p><a name="line.267"></a>
-<span class="sourceLineNo">268</span> * Useful if you're serializing/parsing beans with transforms defined.<a name="line.268"></a>
-<span class="sourceLineNo">269</span> *<a name="line.269"></a>
-<span class="sourceLineNo">270</span> * @param session The new bean session.<a name="line.270"></a>
-<span class="sourceLineNo">271</span> * @return This object (for method chaining).<a name="line.271"></a>
-<span class="sourceLineNo">272</span> */<a name="line.272"></a>
-<span class="sourceLineNo">273</span> public ObjectMap setBeanSession(BeanSession session) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span> this.session = session;<a name="line.274"></a>
-<span class="sourceLineNo">275</span> return this;<a name="line.275"></a>
-<span class="sourceLineNo">276</span> }<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span> /**<a name="line.278"></a>
-<span class="sourceLineNo">279</span> * Returns the {@link BeanSession} currently associated with this map.<a name="line.279"></a>
-<span class="sourceLineNo">280</span> *<a name="line.280"></a>
-<span class="sourceLineNo">281</span> * @return The {@link BeanSession} currently associated with this map.<a name="line.281"></a>
-<span class="sourceLineNo">282</span> */<a name="line.282"></a>
-<span class="sourceLineNo">283</span> public BeanSession getBeanSession() {<a name="line.283"></a>
-<span class="sourceLineNo">284</span> return session;<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span> /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span> * Convenience method for adding multiple objects to this map.<a name="line.288"></a>
-<span class="sourceLineNo">289</span> * <p><a name="line.289"></a>
-<span class="sourceLineNo">290</span> * Equivalent to calling {@code put(key, value)}, but returns<a name="line.290"></a>
-<span class="sourceLineNo">291</span> * this map so that the method can be chained.<a name="line.291"></a>
-<span class="sourceLineNo">292</span> *<a name="line.292"></a>
-<span class="sourceLineNo">293</span> * @param key The key.<a name="line.293"></a>
-<span class="sourceLineNo">294</span> * @param value The value.<a name="line.294"></a>
-<span class="sourceLineNo">295</span> * @return This object (for method chaining).<a name="line.295"></a>
-<span class="sourceLineNo">296</span> */<a name="line.296"></a>
-<span class="sourceLineNo">297</span> public ObjectMap append(String key, Object value) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span> put(key, value);<a name="line.298"></a>
-<span class="sourceLineNo">299</span> return this;<a name="line.299"></a>
-<span class="sourceLineNo">300</span> }<a name="line.300"></a>
-<span class="sourceLineNo">301</span><a name="line.301"></a>
-<span class="sourceLineNo">302</span> /**<a name="line.302"></a>
-<span class="sourceLineNo">303</span> * Convenience method for adding a contents of another map to this map.<a name="line.303"></a>
-<span class="sourceLineNo">304</span> * <p><a name="line.304"></a>
-<span class="sourceLineNo">305</span> * Equivalent to calling {@code putAll(m)}, but returns<a name="line.305"></a>
-<span class="sourceLineNo">306</span> * this map so that the method can be chained.<a name="line.306"></a>
-<span class="sourceLineNo">307</span> *<a name="line.307"></a>
-<span class="sourceLineNo">308</span> * @param m The map whose contents should be added to this map.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * @return This object (for method chaining).<a name="line.309"></a>
-<span class="sourceLineNo">310</span> */<a name="line.310"></a>
-<span class="sourceLineNo">311</span> public ObjectMap appendAll(Map<String,Object> m) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span> putAll(m);<a name="line.312"></a>
-<span class="sourceLineNo">313</span> return this;<a name="line.313"></a>
-<span class="sourceLineNo">314</span> }<a name="line.314"></a>
-<span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span> @Override /* Map */<a name="line.316"></a>
-<span class="sourceLineNo">317</span> public Object get(Object key) {<a name="line.317"></a>
-<span class="sourceLineNo">318</span> Object o = super.get(key);<a name="line.318"></a>
-<span class="sourceLineNo">319</span> if (o == null && inner != null)<a name="line.319"></a>
-<span class="sourceLineNo">320</span> o = inner.get(key);<a name="line.320"></a>
-<span class="sourceLineNo">321</span> return o;<a name="line.321"></a>
-<span class="sourceLineNo">322</span> }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span> /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span> * Same as {@link Map#get(Object) get()}, but returns the default value if the key<a name="line.325"></a>
-<span class="sourceLineNo">326</span> * could not be found.<a name="line.326"></a>
-<span class="sourceLineNo">327</span> *<a name="line.327"></a>
-<span class="sourceLineNo">328</span> * @param key The key.<a name="line.328"></a>
-<span class="sourceLineNo">329</span> * @param def The default value if the entry doesn't exist.<a name="line.329"></a>
-<span class="sourceLineNo">330</span> * @return The value, or the default value if the entry doesn't exist.<a name="line.330"></a>
-<span class="sourceLineNo">331</span> */<a name="line.331"></a>
-<span class="sourceLineNo">332</span> public Object get(String key, Object def) {<a name="line.332"></a>
-<span class="sourceLineNo">333</span> Object o = get(key);<a name="line.333"></a>
-<span class="sourceLineNo">334</span> return (o == null ? def : o);<a name="line.334"></a>
-<span class="sourceLineNo">335</span> }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span> /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span> * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.<a name="line.338"></a>
-<span class="sourceLineNo">339</span> * <p><a name="line.339"></a>
-<span class="sourceLineNo">340</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.340"></a>
-<span class="sourceLineNo">341</span> *<a name="line.341"></a>
-<span class="sourceLineNo">342</span> * @param <T> The class type.<a name="line.342"></a>
-<span class="sourceLineNo">343</span> * @param type The class type.<a name="line.343"></a>
-<span class="sourceLineNo">344</span> * @param key The key.<a name="line.344"></a>
-<span class="sourceLineNo">345</span> * @return The value, or <jk>null</jk> if the entry doesn't exist.<a name="line.345"></a>
-<span class="sourceLineNo">346</span> */<a name="line.346"></a>
-<span class="sourceLineNo">347</span> public <T> T get(Class<T> type, String key) {<a name="line.347"></a>
-<span class="sourceLineNo">348</span> return get(type, key, null);<a name="line.348"></a>
-<span class="sourceLineNo">349</span> }<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span> /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span> * Same as {@link Map#get(Object) get()}, but converts the raw value to the specified class type using the specified beanFilter.<a name="line.352"></a>
-<span class="sourceLineNo">353</span> *<a name="line.353"></a>
-<span class="sourceLineNo">354</span> * @param <T> The transformed class type.<a name="line.354"></a>
-<span class="sourceLineNo">355</span> * @param pojoSwap The swap class used to convert the raw type to a transformed type.<a name="line.355"></a>
-<span class="sourceLineNo">356</span> * @param key The key.<a name="line.356"></a>
-<span class="sourceLineNo">357</span> * @return The value, or <jk>null</jk> if the entry doesn't exist.<a name="line.357"></a>
-<span class="sourceLineNo">358</span> * @throws ParseException Thrown by the POJO swap if a problem occurred trying to parse the value.<a name="line.358"></a>
-<span class="sourceLineNo">359</span> */<a name="line.359"></a>
-<span class="sourceLineNo">360</span> @SuppressWarnings({ "rawtypes", "unchecked" })<a name="line.360"></a>
-<span class="sourceLineNo">361</span> public <T> T get(PojoSwap<T,?> pojoSwap, String key) throws ParseException {<a name="line.361"></a>
-<span class="sourceLineNo">362</span> Object o = super.get(key);<a name="line.362"></a>
-<span class="sourceLineNo">363</span> if (o == null)<a name="line.363"></a>
-<span class="sourceLineNo">364</span> return null;<a name="line.364"></a>
-<span class="sourceLineNo">365</span> PojoSwap swap = pojoSwap;<a name="line.365"></a>
-<span class="sourceLineNo">366</span> return (T)swap.unswap(session, o, null);<a name="line.366"></a>
-<span class="sourceLineNo">367</span> }<a name="line.367"></a>
-<span class="sourceLineNo">368</span><a name="line.368"></a>
-<span class="sourceLineNo">369</span> /**<a name="line.369"></a>
-<span class="sourceLineNo">370</span> * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.<a name="line.370"></a>
-<span class="sourceLineNo">371</span> * <p><a name="line.371"></a>
-<span class="sourceLineNo">372</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.372"></a>
-<span class="sourceLineNo">373</span> *<a name="line.373"></a>
-<span class="sourceLineNo">374</span> * @param <T> The class type.<a name="line.374"></a>
-<span class="sourceLineNo">375</span> * @param type The class type.<a name="line.375"></a>
-<span class="sourceLineNo">376</span> * @param key The key.<a name="line.376"></a>
-<span class="sourceLineNo">377</span> * @param def The default value if the entry doesn't exist.<a name="line.377"></a>
-<span class="sourceLineNo">378</span> * @return The value, or the default value if the entry doesn't exist.<a name="line.378"></a>
-<span class="sourceLineNo">379</span> */<a name="line.379"></a>
-<span class="sourceLineNo">380</span> @SuppressWarnings("unchecked")<a name="line.380"></a>
-<span class="sourceLineNo">381</span> public <T> T get(Class<T> type, String key, T def) {<a name="line.381"></a>
-<span class="sourceLineNo">382</span> Object o = get(key);<a name="line.382"></a>
-<span class="sourceLineNo">383</span> if (o == null)<a name="line.383"></a>
-<span class="sourceLineNo">384</span> return def;<a name="line.384"></a>
-<span class="sourceLineNo">385</span> T t = null;<a name="line.385"></a>
-<span class="sourceLineNo">386</span> if (session != null)<a name="line.386"></a>
-<span class="sourceLineNo">387</span> t = session.convertToType(o, type);<a name="line.387"></a>
-<span class="sourceLineNo">388</span> else if (ClassUtils.isParentClass(type, o.getClass()))<a name="line.388"></a>
-<span class="sourceLineNo">389</span> t = (T)o;<a name="line.389"></a>
-<span class="sourceLineNo">390</span> if (t == null)<a name="line.390"></a>
-<span class="sourceLineNo">391</span> return def;<a name="line.391"></a>
-<span class="sourceLineNo">392</span> return t;<a name="line.392"></a>
-<span class="sourceLineNo">393</span> }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span> /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span> * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.<a name="line.396"></a>
-<span class="sourceLineNo">397</span> * <p><a name="line.397"></a>
-<span class="sourceLineNo">398</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.398"></a>
-<span class="sourceLineNo">399</span> *<a name="line.399"></a>
-<span class="sourceLineNo">400</span> * @param <T> The class type.<a name="line.400"></a>
-<span class="sourceLineNo">401</span> * @param type The class type.<a name="line.401"></a>
-<span class="sourceLineNo">402</span> * @param key The key.<a name="line.402"></a>
-<span class="sourceLineNo">403</span> * @return The value, or the default value if the entry doesn't exist.<a name="line.403"></a>
-<span class="sourceLineNo">404</span> */<a name="line.404"></a>
-<span class="sourceLineNo">405</span> public <T> T get(ClassMeta<T> type, String key) {<a name="line.405"></a>
-<span class="sourceLineNo">406</span> return get(type, key, null);<a name="line.406"></a>
-<span class="sourceLineNo">407</span> }<a name="line.407"></a>
-<span class="sourceLineNo">408</span><a name="line.408"></a>
-<span class="sourceLineNo">409</span> /**<a name="line.409"></a>
-<span class="sourceLineNo">410</span> * Same as {@link Map#get(Object) get()}, but casts or converts the value to the specified class type.<a name="line.410"></a>
-<span class="sourceLineNo">411</span> * <p><a name="line.411"></a>
-<span class="sourceLineNo">412</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.412"></a>
-<span class="sourceLineNo">413</span> *<a name="line.413"></a>
-<span class="sourceLineNo">414</span> * @param <T> The class type.<a name="line.414"></a>
-<span class="sourceLineNo">415</span> * @param type The class type.<a name="line.415"></a>
-<span class="sourceLineNo">416</span> * @param key The key.<a name="line.416"></a>
-<span class="sourceLineNo">417</span> * @param def The default value if the entry doesn't exist.<a name="line.417"></a>
-<span class="sourceLineNo">418</span> * @return The value, or the default value if the entry doesn't exist.<a name="line.418"></a>
-<span class="sourceLineNo">419</span> */<a name="line.419"></a>
-<span class="sourceLineNo">420</span> public <T> T get(ClassMeta<T> type, String key, T def) {<a name="line.420"></a>
-<span class="sourceLineNo">421</span> Object o = get(key);<a name="line.421"></a>
-<span class="sourceLineNo">422</span> if (o == null)<a name="line.422"></a>
-<span class="sourceLineNo">423</span> return def;<a name="line.423"></a>
-<span class="sourceLineNo">424</span> return session.convertToType(o, type);<a name="line.424"></a>
-<span class="sourceLineNo">425</span> }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span> /**<a name="line.427"></a>
-<span class="sourceLineNo">428</span> * Returns the value for the first key in the list that has an entry in this map.<a name="line.428"></a>
-<span class="sourceLineNo">429</span> *<a name="line.429"></a>
-<span class="sourceLineNo">430</span> * @param keys The keys to look up in order.<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * @return The value of the first entry whose key exists, or <jk>null</jk> if none of the keys exist in this map.<a name="line.431"></a>
-<span class="sourceLineNo">432</span> */<a name="line.432"></a>
-<span class="sourceLineNo">433</span> public Object find(String...keys) {<a name="line.433"></a>
-<span class="sourceLineNo">434</span> for (String key : keys)<a name="line.434"></a>
-<span class="sourceLineNo">435</span> if (containsKey(key))<a name="line.435"></a>
-<span class="sourceLineNo">436</span> return get(key);<a name="line.436"></a>
-<span class="sourceLineNo">437</span> return null;<a name="line.437"></a>
-<span class="sourceLineNo">438</span> }<a name="line.438"></a>
-<span class="sourceLineNo">439</span><a name="line.439"></a>
-<span class="sourceLineNo">440</span> /**<a name="line.440"></a>
-<span class="sourceLineNo">441</span> * Returns the value for the first key in the list that has an entry in this map.<a name="line.441"></a>
-<span class="sourceLineNo">442</span> * <p><a name="line.442"></a>
-<span class="sourceLineNo">443</span> * Casts or converts the value to the specified class type.<a name="line.443"></a>
-<span class="sourceLineNo">444</span> * <p><a name="line.444"></a>
-<span class="sourceLineNo">445</span> * See {@link BeanSession#convertToType(Object, ClassMeta)} for the list of valid data conversions.<a name="line.445"></a>
-<span class="sourceLineNo">446</span> *<a name="line.446"></a>
-<span class="sourceLineNo">447</span> * @param type The class type to convert the value to.<a name="line.447"></a>
-<span class="sourceLineNo">448</span> * @param <T> The class type to convert the value to.<a name="line.448"></a>
-<span class="sourceLineNo">449</span> * @param keys The keys to look up in order.<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * @return The value of the first entry whose key exists, or <jk>null</jk> if none of the keys exist in this map.<a name="line.450"></a>
-<span class="sourceLineNo">451</span> */<a name="line.451"></a>
-<span class="sourceLineNo">452</span> public <T> T find(Class<T> type, String...keys) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span> for (String key : keys)<a name="line.453"></a>
-<span class="sourceLineNo">454</span> if (containsKey(key))<a name="line.454"></a>
-<span class="sourceLineNo">455</span> return get(type, key);<a name="line.455"></a>
-<span class="sourceLineNo">456</span> return null;<a name="line.456"></a>
-<span class="sourceLineNo">457</span> }<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span> /**<a name="line.459"></a>
-<span class="sourceLineNo">460</span> * Same as {@link #get(Class,String) get(Class,String)}, but the key is a slash-delimited<a name="line.460"></a>
-<span class="sourceLineNo">461</span> * path used to traverse entries in this POJO.<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * <p><a name="line.462"></a>
-<span class="sourceLineNo">463</span> * For example, the following code is equivalent:<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * </p><a name="line.464"></a>
-<span class="sourceLineNo">465</span> * <p class='bcode'><a name="line.465"></a>
-<span class="sourceLineNo">466</span> * ObjectMap m = getObjectMap();<a name="line.466"></a>
-<span class="sourceLineNo">467</span> *<a name="line.467"></a>
-<span class="sourceLineNo">468</span> * <jc>// Long way</jc><a name="line.468"></a>
-<span class="sourceLineNo">469</span> * <jk>long</jk> l = m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).getLong(<js>"baz"</js>);<a name="line.469"></a>
-<span class="sourceLineNo">470</span> *<a name="line.470"></a>
-<span class="sourceLineNo">471</span> * <jc>// Using this method</jc><a name="line.471"></a>
-<span class="sourceLineNo">472</span> * <jk>long</jk> l = m.getAt(<jk>long</jk>.<jk>class</jk>, <js>"foo/bar/0/baz"</js>);<a name="line.472"></a>
-<span class="sourceLineNo">473</span> * </p><a name="line.473"></a>
-<span class="sourceLineNo">474</span> * <p><a name="line.474"></a>
-<span class="sourceLineNo">475</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.475"></a>
-<span class="sourceLineNo">476</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.476"></a>
-<span class="sourceLineNo">477</span> *<a name="line.477"></a>
-<span class="sourceLineNo">478</span> * @param <T> The class type.<a name="line.478"></a>
-<span class="sourceLineNo">479</span> * @param type The class type.<a name="line.479"></a>
-<span class="sourceLineNo">480</span> * @param path The path to the entry.<a name="line.480"></a>
-<span class="sourceLineNo">481</span> * @return The value, or <jk>null</jk> if the entry doesn't exist.<a name="line.481"></a>
-<span class="sourceLineNo">482</span> */<a name="line.482"></a>
-<span class="sourceLineNo">483</span> public <T> T getAt(Class<T> type, String path) {<a name="line.483"></a>
-<span class="sourceLineNo">484</span> return getPojoRest().get(type, path);<a name="line.484"></a>
-<span class="sourceLineNo">485</span> }<a name="line.485"></a>
-<span class="sourceLineNo">486</span><a name="line.486"></a>
-<span class="sourceLineNo">487</span> /**<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * Same as <code>put(String,Object)</code>, but the key is a slash-delimited<a name="line.488"></a>
-<span class="sourceLineNo">489</span> * path used to traverse entries in this POJO.<a name="line.489"></a>
-<span class="sourceLineNo">490</span> * <p><a name="line.490"></a>
-<span class="sourceLineNo">491</span> * For example, the following code is equivalent:<a name="line.491"></a>
-<span class="sourceLineNo">492</span> * </p><a name="line.492"></a>
-<span class="sourceLineNo">493</span> * <p class='bcode'><a name="line.493"></a>
-<span class="sourceLineNo">494</span> * ObjectMap m = getObjectMap();<a name="line.494"></a>
-<span class="sourceLineNo">495</span> *<a name="line.495"></a>
-<span class="sourceLineNo">496</span> * <jc>// Long way</jc><a name="line.496"></a>
-<span class="sourceLineNo">497</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(<js>"0"</js>).put(<js>"baz"</js>, 123);<a name="line.497"></a>
-<span class="sourceLineNo">498</span> *<a name="line.498"></a>
-<span class="sourceLineNo">499</span> * <jc>// Using this method</jc><a name="line.499"></a>
-<span class="sourceLineNo">500</span> * m.putAt(<js>"foo/bar/0/baz"</js>, 123);<a name="line.500"></a>
-<span class="sourceLineNo">501</span> * </p><a name="line.501"></a>
-<span class="sourceLineNo">502</span> * <p><a name="line.502"></a>
-<span class="sourceLineNo">503</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.503"></a>
-<span class="sourceLineNo">504</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.504"></a>
-<span class="sourceLineNo">505</span> *<a name="line.505"></a>
-<span class="sourceLineNo">506</span> * @param path The path to the entry.<a name="line.506"></a>
-<span class="sourceLineNo">507</span> * @param o The new value.<a name="line.507"></a>
-<span class="sourceLineNo">508</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.508"></a>
-<span class="sourceLineNo">509</span> */<a name="line.509"></a>
-<span class="sourceLineNo">510</span> public Object putAt(String path, Object o) {<a name="line.510"></a>
-<span class="sourceLineNo">511</span> return getPojoRest().put(path, o);<a name="line.511"></a>
-<span class="sourceLineNo">512</span> }<a name="line.512"></a>
-<span class="sourceLineNo">513</span><a name="line.513"></a>
-<span class="sourceLineNo">514</span> /**<a name="line.514"></a>
-<span class="sourceLineNo">515</span> * Similar to {@link #putAt(String,Object) putAt(String,Object)}, but used to append<a name="line.515"></a>
-<span class="sourceLineNo">516</span> * to collections and arrays.<a name="line.516"></a>
-<span class="sourceLineNo">517</span> * <p><a name="line.517"></a>
-<span class="sourceLineNo">518</span> * For example, the following code is equivalent:<a name="line.518"></a>
-<span class="sourceLineNo">519</span> * </p><a name="line.519"></a>
-<span class="sourceLineNo">520</span> * <p class='bcode'><a name="line.520"></a>
-<span class="sourceLineNo">521</span> * ObjectMap m = getObjectMap();<a name="line.521"></a>
-<span class="sourceLineNo">522</span> *<a name="line.522"></a>
-<span class="sourceLineNo">523</span> * <jc>// Long way</jc><a name="line.523"></a>
-<span class="sourceLineNo">524</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).append(123);<a name="line.524"></a>
-<span class="sourceLineNo">525</span> *<a name="line.525"></a>
-<span class="sourceLineNo">526</span> * <jc>// Using this method</jc><a name="line.526"></a>
-<span class="sourceLineNo">527</span> * m.postAt(<js>"foo/bar"</js>, 123);<a name="line.527"></a>
-<span class="sourceLineNo">528</span> * </p><a name="line.528"></a>
-<span class="sourceLineNo">529</span> * <p><a name="line.529"></a>
-<span class="sourceLineNo">530</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.530"></a>
-<span class="sourceLineNo">531</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.531"></a>
-<span class="sourceLineNo">532</span> *<a name="line.532"></a>
-<span class="sourceLineNo">533</span> * @param path The path to the entry.<a name="line.533"></a>
-<span class="sourceLineNo">534</span> * @param o The new value.<a name="line.534"></a>
-<span class="sourceLineNo">535</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.535"></a>
-<span class="sourceLineNo">536</span> */<a name="line.536"></a>
-<span class="sourceLineNo">537</span> public Object postAt(String path, Object o) {<a name="line.537"></a>
-<span class="sourceLineNo">538</span> return getPojoRest().post(path, o);<a name="line.538"></a>
-<span class="sourceLineNo">539</span> }<a name="line.539"></a>
-<span class="sourceLineNo">540</span><a name="line.540"></a>
-<span class="sourceLineNo">541</span> /**<a name="line.541"></a>
-<span class="sourceLineNo">542</span> * Similar to {@link #remove(Object) remove(Object)},but the key is a slash-delimited<a name="line.542"></a>
-<span class="sourceLineNo">543</span> * path used to traverse entries in this POJO.<a name="line.543"></a>
-<span class="sourceLineNo">544</span> * <p><a name="line.544"></a>
-<span class="sourceLineNo">545</span> * For example, the following code is equivalent:<a name="line.545"></a>
-<span class="sourceLineNo">546</span> * </p><a name="line.546"></a>
-<span class="sourceLineNo">547</span> * <p class='bcode'><a name="line.547"></a>
-<span class="sourceLineNo">548</span> * ObjectMap m = getObjectMap();<a name="line.548"></a>
-<span class="sourceLineNo">549</span> *<a name="line.549"></a>
-<span class="sourceLineNo">550</span> * <jc>// Long way</jc><a name="line.550"></a>
-<span class="sourceLineNo">551</span> * m.getObjectMap(<js>"foo"</js>).getObjectList(<js>"bar"</js>).getObjectMap(1).remove(<js>"baz"</js>);<a name="line.551"></a>
-<span class="sourceLineNo">552</span> *<a name="line.552"></a>
-<span class="sourceLineNo">553</span> * <jc>// Using this method</jc><a name="line.553"></a>
-<span class="sourceLineNo">554</span> * m.deleteAt(<js>"foo/bar/0/baz"</js>);<a name="line.554"></a>
-<span class="sourceLineNo">555</span> * </p><a name="line.555"></a>
-<span class="sourceLineNo">556</span> * <p><a name="line.556"></a>
-<span class="sourceLineNo">557</span> * This method uses the {@link PojoRest} class to perform the lookup, so the map can contain<a name="line.557"></a>
-<span class="sourceLineNo">558</span> * any of the various class types that the {@link PojoRest} class supports (e.g. beans, collections, arrays).<a name="line.558"></a>
-<span class="sourceLineNo">559</span> *<a name="line.559"></a>
-<span class="sourceLineNo">560</span> * @param path The path to the entry.<a name="line.560"></a>
-<span class="sourceLineNo">561</span> * @return The previous value, or <jk>null</jk> if the entry doesn't exist.<a name="line.561"></a>
-<span class="sourceLineNo">562</span> */<a name="line.562"></a>
-<span class="sourceLineNo">563</span> public Object deleteAt(String path) {<a name="line.563"></a>
-<span class="sourceLineNo">564</span> return getPojoRest().delete(path);<a name="line.564"></a>
-<span class="sourceLineNo">565</span> }<a name="line.565"></a>
-<span class="sourceLineNo">566</span><a name="line.566"></a>
-<span class="sourceLineNo">567</span> /**<a name="line.567"></a>
-<span class="sourceLineNo">568</span> * Convenience method for inserting JSON directly into an attribute on this object.<a name="line.568"></a>
-<span class="sourceLineNo">569</span> * <p><a name="line.569"></a>
-<span class="sourceLineNo">570</span> * The JSON text can be an object (i.e. <js>"{...}"</js>) or an array (i.e. <js>"[...]"</js>).<a name="line.570"></a>
-<span class="sourceLineNo">571</span> *<a name="line.571"></a>
-<span class="sourceLineNo">572</span> * @param key The key.<a name="line.572"></a>
-<span class="sourceLineNo">573</span> * @param json The JSON text that will be parsed into an Object and then inserted into this map.<a name="line.573"></a>
-<span class="sourceLineNo">574</span> * @throws ParseException If the input contains a syntax error or is malformed.<a name="line.574"></a>
-<span class="sourceLineNo">575</span> */<a name="line.575"></a>
-<span class="sourceLineNo">576</span> public void putJson(String key, String json) throws ParseException {<a name="line.576"></a>
-<span class="sourceLineNo">577</span> this.put(key, JsonParser.DEFAULT.parse(json, Object.class));<a name="line.577"></a>
-<span class="sourceLineNo">578</span> }<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span> /**<a name="line.580"></a>
-<span class="sourceLineNo">581</span> * Returns the specified entry value converted to a {@link String}.<a name="line.581"></a>
-<span class="sourceLineNo">582</span> * <p><a name="line.582"></a>
-<span class="sourceLineNo">583</span> * Shortcut for <code>get(String.<jk>class</jk>, key)</code>.<a name="line.583"></a>
-<span class="sourceLineNo">584</span> *<a name="line.584"></a>
-<span class="sourceLineNo">585</span> * @param key The key.<a name="line.585"></a>
-<span class="sourceLineNo">586</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.586"></a>
-<span class="sourceLineNo">587</span> */<a name="line.587"></a>
-<span class="sourceLineNo">588</span> public String getString(String key) {<a name="line.588"></a>
-<span class="sourceLineNo">589</span> return get(String.class, key);<a name="line.589"></a>
-<span class="sourceLineNo">590</span> }<a name="line.590"></a>
-<span class="sourceLineNo">591</span><a name="line.591"></a>
-<span class="sourceLineNo">592</span> /**<a name="line.592"></a>
-<span class="sourceLineNo">593</span> * Specialized method that calls {@link #getString(String)} and splits the<a name="line.593"></a>
-<span class="sourceLineNo">594</span> * results as a simple comma-delimited list.<a name="line.594"></a>
-<span class="sourceLineNo">595</span> *<a name="line.595"></a>
-<span class="sourceLineNo">596</span> * @param key the key.<a name="line.596"></a>
-<span class="sourceLineNo">597</span> * @return A list of tokens, trimmed of whitespace. An empty list if entry not found. Never <jk>null</jk>.<a name="line.597"></a>
-<span class="sourceLineNo">598</span> */<a name="line.598"></a>
-<span class="sourceLineNo">599</span> public String[] getStringArray(String key) {<a name="line.599"></a>
-<span class="sourceLineNo">600</span> String s = get(String.class, key);<a name="line.600"></a>
-<span class="sourceLineNo">601</span> return (s == null ? new String[0] : split(s, ','));<a name="line.601"></a>
-<span class="sourceLineNo">602</span> }<a name="line.602"></a>
-<span class="sourceLineNo">603</span><a name="line.603"></a>
-<span class="sourceLineNo">604</span> /**<a name="line.604"></a>
-<span class="sourceLineNo">605</span> * Same as {@link #getStringArray(String)} but returns a default value if the value cannot be found.<a name="line.605"></a>
-<span class="sourceLineNo">606</span> *<a name="line.606"></a>
-<span class="sourceLineNo">607</span> * @param key The map key.<a name="line.607"></a>
-<span class="sourceLineNo">608</span> * @param def The default value if value is not found.<a name="line.608"></a>
-<span class="sourceLineNo">609</span> * @return The value converted to a string array.<a name="line.609"></a>
-<span class="sourceLineNo">610</span> */<a name="line.610"></a>
-<span class="sourceLineNo">611</span> public String[] getStringArray(String key, String[] def) {<a name="line.611"></a>
-<span class="sourceLineNo">612</span> String s = get(String.class, key);<a name="line.612"></a>
-<span class="sourceLineNo">613</span> String[] r = (s == null ? new String[0] : split(s, ','));<a name="line.613"></a>
-<span class="sourceLineNo">614</span> return (r.length == 0 ? def : r);<a name="line.614"></a>
-<span class="sourceLineNo">615</span> }<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span> /**<a name="line.617"></a>
-<span class="sourceLineNo">618</span> * Returns the specified entry value converted to a {@link String}.<a name="line.618"></a>
-<span class="sourceLineNo">619</span> * <p><a name="line.619"></a>
-<span class="sourceLineNo">620</span> * Shortcut for <code>get(String.<jk>class</jk>, key, defVal)</code>.<a name="line.620"></a>
-<span class="sourceLineNo">621</span> *<a name="line.621"></a>
-<span class="sourceLineNo">622</span> * @param key The key.<a name="line.622"></a>
-<span class="sourceLineNo">623</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.623"></a>
-<span class="sourceLineNo">624</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.624"></a>
-<span class="sourceLineNo">625</span> */<a name="line.625"></a>
-<span class="sourceLineNo">626</span> public String getString(String key, String defVal) {<a name="line.626"></a>
-<span class="sourceLineNo">627</span> return get(String.class, key, defVal);<a name="line.627"></a>
-<span class="sourceLineNo">628</span> }<a name="line.628"></a>
-<span class="sourceLineNo">629</span><a name="line.629"></a>
-<span class="sourceLineNo">630</span> /**<a name="line.630"></a>
-<span class="sourceLineNo">631</span> * Returns the specified entry value converted to an {@link Integer}.<a name="line.631"></a>
-<span class="sourceLineNo">632</span> * <p><a name="line.632"></a>
-<span class="sourceLineNo">633</span> * Shortcut for <code>get(Integer.<jk>class</jk>, key)</code>.<a name="line.633"></a>
-<span class="sourceLineNo">634</span> *<a name="line.634"></a>
-<span class="sourceLineNo">635</span> * @param key The key.<a name="line.635"></a>
-<span class="sourceLineNo">636</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.636"></a>
-<span class="sourceLineNo">637</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.637"></a>
-<span class="sourceLineNo">638</span> */<a name="line.638"></a>
-<span class="sourceLineNo">639</span> public Integer getInt(String key) {<a name="line.639"></a>
-<span class="sourceLineNo">640</span> return get(Integer.class, key);<a name="line.640"></a>
-<span class="sourceLineNo">641</span> }<a name="line.641"></a>
-<span class="sourceLineNo">642</span><a name="line.642"></a>
-<span class="sourceLineNo">643</span> /**<a name="line.643"></a>
-<span class="sourceLineNo">644</span> * Returns the specified entry value converted to an {@link Integer}.<a name="line.644"></a>
-<span class="sourceLineNo">645</span> * <p><a name="line.645"></a>
-<span class="sourceLineNo">646</span> * Shortcut for <code>get(Integer.<jk>class</jk>, key, defVal)</code>.<a name="line.646"></a>
-<span class="sourceLineNo">647</span> *<a name="line.647"></a>
-<span class="sourceLineNo">648</span> * @param key The key.<a name="line.648"></a>
-<span class="sourceLineNo">649</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.649"></a>
-<span class="sourceLineNo">650</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.650"></a>
-<span class="sourceLineNo">651</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.651"></a>
-<span class="sourceLineNo">652</span> */<a name="line.652"></a>
-<span class="sourceLineNo">653</span> public Integer getInt(String key, Integer defVal) {<a name="line.653"></a>
-<span class="sourceLineNo">654</span> return get(Integer.class, key, defVal);<a name="line.654"></a>
-<span class="sourceLineNo">655</span> }<a name="line.655"></a>
-<span class="sourceLineNo">656</span><a name="line.656"></a>
-<span class="sourceLineNo">657</span> /**<a name="line.657"></a>
-<span class="sourceLineNo">658</span> * Returns the specified entry value converted to a {@link Long}.<a name="line.658"></a>
-<span class="sourceLineNo">659</span> * <p><a name="line.659"></a>
-<span class="sourceLineNo">660</span> * Shortcut for <code>get(Long.<jk>class</jk>, key)</code>.<a name="line.660"></a>
-<span class="sourceLineNo">661</span> *<a name="line.661"></a>
-<span class="sourceLineNo">662</span> * @param key The key.<a name="line.662"></a>
-<span class="sourceLineNo">663</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.663"></a>
-<span class="sourceLineNo">664</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.664"></a>
-<span class="sourceLineNo">665</span> */<a name="line.665"></a>
-<span class="sourceLineNo">666</span> public Long getLong(String key) {<a name="line.666"></a>
-<span class="sourceLineNo">667</span> return get(Long.class, key);<a name="line.667"></a>
-<span class="sourceLineNo">668</span> }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span> /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span> * Returns the specified entry value converted to a {@link Long}.<a name="line.671"></a>
-<span class="sourceLineNo">672</span> * <p><a name="line.672"></a>
-<span class="sourceLineNo">673</span> * Shortcut for <code>get(Long.<jk>class</jk>, key, defVal)</code>.<a name="line.673"></a>
-<span class="sourceLineNo">674</span> *<a name="line.674"></a>
-<span class="sourceLineNo">675</span> * @param key The key.<a name="line.675"></a>
-<span class="sourceLineNo">676</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.676"></a>
-<span class="sourceLineNo">677</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.677"></a>
-<span class="sourceLineNo">678</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.678"></a>
-<span class="sourceLineNo">679</span> */<a name="line.679"></a>
-<span class="sourceLineNo">680</span> public Long getLong(String key, Long defVal) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span> return get(Long.class, key, defVal);<a name="line.681"></a>
-<span class="sourceLineNo">682</span> }<a name="line.682"></a>
-<span class="sourceLineNo">683</span><a name="line.683"></a>
-<span class="sourceLineNo">684</span> /**<a name="line.684"></a>
-<span class="sourceLineNo">685</span> * Returns the specified entry value converted to a {@link Boolean}.<a name="line.685"></a>
-<span class="sourceLineNo">686</span> * <p><a name="line.686"></a>
-<span class="sourceLineNo">687</span> * Shortcut for <code>get(Boolean.<jk>class</jk>, key)</code>.<a name="line.687"></a>
-<span class="sourceLineNo">688</span> *<a name="line.688"></a>
-<span class="sourceLineNo">689</span> * @param key The key.<a name="line.689"></a>
-<span class="sourceLineNo">690</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.690"></a>
-<span class="sourceLineNo">691</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.691"></a>
-<span class="sourceLineNo">692</span> */<a name="line.692"></a>
-<span class="sourceLineNo">693</span> public Boolean getBoolean(String key) {<a name="line.693"></a>
-<span class="sourceLineNo">694</span> return get(Boolean.class, key);<a name="line.694"></a>
-<span class="sourceLineNo">695</span> }<a name="line.695"></a>
-<span class="sourceLineNo">696</span><a name="line.696"></a>
-<span class="sourceLineNo">697</span> /**<a name="line.697"></a>
-<span class="sourceLineNo">698</span> * Returns the specified entry value converted to a {@link Boolean}.<a name="line.698"></a>
-<span class="sourceLineNo">699</span> * <p><a name="line.699"></a>
-<span class="sourceLineNo">700</span> * Shortcut for <code>get(Boolean.<jk>class</jk>, key, defVal)</code>.<a name="line.700"></a>
-<span class="sourceLineNo">701</span> *<a name="line.701"></a>
-<span class="sourceLineNo">702</span> * @param key The key.<a name="line.702"></a>
-<span class="sourceLineNo">703</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.703"></a>
-<span class="sourceLineNo">704</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.704"></a>
-<span class="sourceLineNo">705</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.705"></a>
-<span class="sourceLineNo">706</span> */<a name="line.706"></a>
-<span class="sourceLineNo">707</span> public Boolean getBoolean(String key, Boolean defVal) {<a name="line.707"></a>
-<span class="sourceLineNo">708</span> return get(Boolean.class, key, defVal);<a name="line.708"></a>
-<span class="sourceLineNo">709</span> }<a name="line.709"></a>
-<span class="sourceLineNo">710</span><a name="line.710"></a>
-<span class="sourceLineNo">711</span> /**<a name="line.711"></a>
-<span class="sourceLineNo">712</span> * Returns the specified entry value converted to a {@link Map}.<a name="line.712"></a>
-<span class="sourceLineNo">713</span> * <p><a name="line.713"></a>
-<span class="sourceLineNo">714</span> * Shortcut for <code>get(Map.<jk>class</jk>, key)</code>.<a name="line.714"></a>
-<span class="sourceLineNo">715</span> *<a name="line.715"></a>
-<span class="sourceLineNo">716</span> * @param key The key.<a name="line.716"></a>
-<span class="sourceLineNo">717</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.717"></a>
-<span class="sourceLineNo">718</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.718"></a>
-<span class="sourceLineNo">719</span> */<a name="line.719"></a>
-<span class="sourceLineNo">720</span> public Map<?,?> getMap(String key) {<a name="line.720"></a>
-<span class="sourceLineNo">721</span> return get(Map.class, key);<a name="line.721"></a>
-<span class="sourceLineNo">722</span> }<a name="line.722"></a>
-<span class="sourceLineNo">723</span><a name="line.723"></a>
-<span class="sourceLineNo">724</span> /**<a name="line.724"></a>
-<span class="sourceLineNo">725</span> * Returns the specified entry value converted to a {@link Map}.<a name="line.725"></a>
-<span class="sourceLineNo">726</span> * <p><a name="line.726"></a>
-<span class="sourceLineNo">727</span> * Shortcut for <code>get(Map.<jk>class</jk>, key, defVal)</code>.<a name="line.727"></a>
-<span class="sourceLineNo">728</span> *<a name="line.728"></a>
-<span class="sourceLineNo">729</span> * @param key The key.<a name="line.729"></a>
-<span class="sourceLineNo">730</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.730"></a>
-<span class="sourceLineNo">731</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.731"></a>
-<span class="sourceLineNo">732</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.732"></a>
-<span class="sourceLineNo">733</span> */<a name="line.733"></a>
-<span class="sourceLineNo">734</span> public Map<?,?> getMap(String key, Map<?,?> defVal) {<a name="line.734"></a>
-<span class="sourceLineNo">735</span> return get(Map.class, key, defVal);<a name="line.735"></a>
-<span class="sourceLineNo">736</span> }<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span> /**<a name="line.738"></a>
-<span class="sourceLineNo">739</span> * Returns the specified entry value converted to a {@link List}.<a name="line.739"></a>
-<span class="sourceLineNo">740</span> * <p><a name="line.740"></a>
-<span class="sourceLineNo">741</span> * Shortcut for <code>get(List.<jk>class</jk>, key)</code>.<a name="line.741"></a>
-<span class="sourceLineNo">742</span> *<a name="line.742"></a>
-<span class="sourceLineNo">743</span> * @param key The key.<a name="line.743"></a>
-<span class="sourceLineNo">744</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.744"></a>
-<span class="sourceLineNo">745</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.745"></a>
-<span class="sourceLineNo">746</span> */<a name="line.746"></a>
-<span class="sourceLineNo">747</span> public List<?> getList(String key) {<a name="line.747"></a>
-<span class="sourceLineNo">748</span> return get(List.class, key);<a name="line.748"></a>
-<span class="sourceLineNo">749</span> }<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span> /**<a name="line.751"></a>
-<span class="sourceLineNo">752</span> * Returns the specified entry value converted to a {@link List}.<a name="line.752"></a>
-<span class="sourceLineNo">753</span> * <p><a name="line.753"></a>
-<span class="sourceLineNo">754</span> * Shortcut for <code>get(List.<jk>class</jk>, key, defVal)</code>.<a name="line.754"></a>
-<span class="sourceLineNo">755</span> *<a name="line.755"></a>
-<span class="sourceLineNo">756</span> * @param key The key.<a name="line.756"></a>
-<span class="sourceLineNo">757</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.757"></a>
-<span class="sourceLineNo">758</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.758"></a>
-<span class="sourceLineNo">759</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.759"></a>
-<span class="sourceLineNo">760</span> */<a name="line.760"></a>
-<span class="sourceLineNo">761</span> public List<?> getList(String key, List<?> defVal) {<a name="line.761"></a>
-<span class="sourceLineNo">762</span> return get(List.class, key, defVal);<a name="line.762"></a>
-<span class="sourceLineNo">763</span> }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span> /**<a name="line.765"></a>
-<span class="sourceLineNo">766</span> * Returns the specified entry value converted to a {@link Map}.<a name="line.766"></a>
-<span class="sourceLineNo">767</span> * <p><a name="line.767"></a>
-<span class="sourceLineNo">768</span> * Shortcut for <code>get(ObjectMap.<jk>class</jk>, key)</code>.<a name="line.768"></a>
-<span class="sourceLineNo">769</span> *<a name="line.769"></a>
-<span class="sourceLineNo">770</span> * @param key The key.<a name="line.770"></a>
-<span class="sourceLineNo">771</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.771"></a>
-<span class="sourceLineNo">772</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.772"></a>
-<span class="sourceLineNo">773</span> */<a name="line.773"></a>
-<span class="sourceLineNo">774</span> public ObjectMap getObjectMap(String key) {<a name="line.774"></a>
-<span class="sourceLineNo">775</span> return get(ObjectMap.class, key);<a name="line.775"></a>
-<span class="sourceLineNo">776</span> }<a name="line.776"></a>
-<span class="sourceLineNo">777</span><a name="line.777"></a>
-<span class="sourceLineNo">778</span> /**<a name="line.778"></a>
-<span class="sourceLineNo">779</span> * Returns the specified entry value converted to a {@link ObjectMap}.<a name="line.779"></a>
-<span class="sourceLineNo">780</span> * <p><a name="line.780"></a>
-<span class="sourceLineNo">781</span> * Shortcut for <code>get(ObjectMap.<jk>class</jk>, key, defVal)</code>.<a name="line.781"></a>
-<span class="sourceLineNo">782</span> *<a name="line.782"></a>
-<span class="sourceLineNo">783</span> * @param key The key.<a name="line.783"></a>
-<span class="sourceLineNo">784</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.784"></a>
-<span class="sourceLineNo">785</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.785"></a>
-<span class="sourceLineNo">786</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.786"></a>
-<span class="sourceLineNo">787</span> */<a name="line.787"></a>
-<span class="sourceLineNo">788</span> public ObjectMap getObjectMap(String key, ObjectMap defVal) {<a name="line.788"></a>
-<span class="sourceLineNo">789</span> return get(ObjectMap.class, key, defVal);<a name="line.789"></a>
-<span class="sourceLineNo">790</span> }<a name="line.790"></a>
-<span class="sourceLineNo">791</span><a name="line.791"></a>
-<span class="sourceLineNo">792</span> /**<a name="line.792"></a>
-<span class="sourceLineNo">793</span> * Returns the specified entry value converted to a {@link ObjectList}.<a name="line.793"></a>
-<span class="sourceLineNo">794</span> * <p><a name="line.794"></a>
-<span class="sourceLineNo">795</span> * Shortcut for <code>get(ObjectList.<jk>class</jk>, key)</code>.<a name="line.795"></a>
-<span class="sourceLineNo">796</span> *<a name="line.796"></a>
-<span class="sourceLineNo">797</span> * @param key The key.<a name="line.797"></a>
-<span class="sourceLineNo">798</span> * @return The converted value, or <jk>null</jk> if the map contains no mapping for this key.<a name="line.798"></a>
-<span class="sourceLineNo">799</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.799"></a>
-<span class="sourceLineNo">800</span> */<a name="line.800"></a>
-<span class="sourceLineNo">801</span> public ObjectList getObjectList(String key) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span> return get(ObjectList.class, key);<a name="line.802"></a>
-<span class="sourceLineNo">803</span> }<a name="line.803"></a>
-<span class="sourceLineNo">804</span><a name="line.804"></a>
-<span class="sourceLineNo">805</span> /**<a name="line.805"></a>
-<span class="sourceLineNo">806</span> * Returns the specified entry value converted to a {@link ObjectList}.<a name="line.806"></a>
-<span class="sourceLineNo">807</span> * <p><a name="line.807"></a>
-<span class="sourceLineNo">808</span> * Shortcut for <code>get(ObjectList.<jk>class</jk>, key, defVal)</code>.<a name="line.808"></a>
-<span class="sourceLineNo">809</span> *<a name="line.809"></a>
-<span class="sourceLineNo">810</span> * @param key The key.<a name="line.810"></a>
-<span class="sourceLineNo">811</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.811"></a>
-<span class="sourceLineNo">812</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.812"></a>
-<span class="sourceLineNo">813</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.813"></a>
-<span class="sourceLineNo">814</span> */<a name="line.814"></a>
-<span class="sourceLineNo">815</span> public ObjectList getObjectList(String key, ObjectList defVal) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span> return get(ObjectList.class, key, defVal);<a name="line.816"></a>
-<span class="sourceLineNo">817</span> }<a name="line.817"></a>
-<span class="sourceLineNo">818</span><a name="line.818"></a>
-<span class="sourceLineNo">819</span> /**<a name="line.819"></a>
-<span class="sourceLineNo">820</span> * Returns the first entry that exists converted to a {@link String}.<a name="line.820"></a>
-<span class="sourceLineNo">821</span> * <p><a name="line.821"></a>
-<span class="sourceLineNo">822</span> * Shortcut for <code>find(String.<jk>class</jk>, keys)</code>.<a name="line.822"></a>
-<span class="sourceLineNo">823</span> *<a name="line.823"></a>
-<span class="sourceLineNo">824</span> * @param keys The list of keys to look for.<a name="line.824"></a>
-<span class="sourceLineNo">825</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.825"></a>
-<span class="sourceLineNo">826</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.826"></a>
-<span class="sourceLineNo">827</span> */<a name="line.827"></a>
-<span class="sourceLineNo">828</span> public String findString(String... keys) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span> return find(String.class, keys);<a name="line.829"></a>
-<span class="sourceLineNo">830</span> }<a name="line.830"></a>
-<span class="sourceLineNo">831</span><a name="line.831"></a>
-<span class="sourceLineNo">832</span> /**<a name="line.832"></a>
-<span class="sourceLineNo">833</span> * Returns the first entry that exists converted to an {@link Integer}.<a name="line.833"></a>
-<span class="sourceLineNo">834</span> * <p><a name="line.834"></a>
-<span class="sourceLineNo">835</span> * Shortcut for <code>find(Integer.<jk>class</jk>, keys)</code>.<a name="line.835"></a>
-<span class="sourceLineNo">836</span> *<a name="line.836"></a>
-<span class="sourceLineNo">837</span> * @param keys The list of keys to look for.<a name="line.837"></a>
-<span class="sourceLineNo">838</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.838"></a>
-<span class="sourceLineNo">839</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.839"></a>
-<span class="sourceLineNo">840</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.840"></a>
-<span class="sourceLineNo">841</span> */<a name="line.841"></a>
-<span class="sourceLineNo">842</span> public Integer findInt(String... keys) {<a name="line.842"></a>
-<span class="sourceLineNo">843</span> return find(Integer.class, keys);<a name="line.843"></a>
-<span class="sourceLineNo">844</span> }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span> /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span> * Returns the first entry that exists converted to a {@link Long}.<a name="line.847"></a>
-<span class="sourceLineNo">848</span> * <p><a name="line.848"></a>
-<span class="sourceLineNo">849</span> * Shortcut for <code>find(Long.<jk>class</jk>, keys)</code>.<a name="line.849"></a>
-<span class="sourceLineNo">850</span> *<a name="line.850"></a>
-<span class="sourceLineNo">851</span> * @param keys The list of keys to look for.<a name="line.851"></a>
-<span class="sourceLineNo">852</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.852"></a>
-<span class="sourceLineNo">853</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.853"></a>
-<span class="sourceLineNo">854</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.854"></a>
-<span class="sourceLineNo">855</span> */<a name="line.855"></a>
-<span class="sourceLineNo">856</span> public Long findLong(String... keys) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span> return find(Long.class, keys);<a name="line.857"></a>
-<span class="sourceLineNo">858</span> }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span> /**<a name="line.860"></a>
-<span class="sourceLineNo">861</span> * Returns the first entry that exists converted to a {@link Boolean}.<a name="line.861"></a>
-<span class="sourceLineNo">862</span> * <p><a name="line.862"></a>
-<span class="sourceLineNo">863</span> * Shortcut for <code>find(Boolean.<jk>class</jk>, keys)</code>.<a name="line.863"></a>
-<span class="sourceLineNo">864</span> *<a name="line.864"></a>
-<span class="sourceLineNo">865</span> * @param keys The list of keys to look for.<a name="line.865"></a>
-<span class="sourceLineNo">866</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.866"></a>
-<span class="sourceLineNo">867</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.867"></a>
-<span class="sourceLineNo">868</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.868"></a>
-<span class="sourceLineNo">869</span> */<a name="line.869"></a>
-<span class="sourceLineNo">870</span> public Boolean findBoolean(String... keys) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span> return find(Boolean.class, keys);<a name="line.871"></a>
-<span class="sourceLineNo">872</span> }<a name="line.872"></a>
-<span class="sourceLineNo">873</span><a name="line.873"></a>
-<span class="sourceLineNo">874</span> /**<a name="line.874"></a>
-<span class="sourceLineNo">875</span> * Returns the first entry that exists converted to a {@link Map}.<a name="line.875"></a>
-<span class="sourceLineNo">876</span> * <p><a name="line.876"></a>
-<span class="sourceLineNo">877</span> * Shortcut for <code>find(Map.<jk>class</jk>, keys)</code>.<a name="line.877"></a>
-<span class="sourceLineNo">878</span> *<a name="line.878"></a>
-<span class="sourceLineNo">879</span> * @param keys The list of keys to look for.<a name="line.879"></a>
-<span class="sourceLineNo">880</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.880"></a>
-<span class="sourceLineNo">881</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.881"></a>
-<span class="sourceLineNo">882</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.882"></a>
-<span class="sourceLineNo">883</span> */<a name="line.883"></a>
-<span class="sourceLineNo">884</span> public Map<?,?> findMap(String... keys) {<a name="line.884"></a>
-<span class="sourceLineNo">885</span> return find(Map.class, keys);<a name="line.885"></a>
-<span class="sourceLineNo">886</span> }<a name="line.886"></a>
-<span class="sourceLineNo">887</span><a name="line.887"></a>
-<span class="sourceLineNo">888</span> /**<a name="line.888"></a>
-<span class="sourceLineNo">889</span> * Returns the first entry that exists converted to a {@link List}.<a name="line.889"></a>
-<span class="sourceLineNo">890</span> * <p><a name="line.890"></a>
-<span class="sourceLineNo">891</span> * Shortcut for <code>find(List.<jk>class</jk>, keys)</code>.<a name="line.891"></a>
-<span class="sourceLineNo">892</span> *<a name="line.892"></a>
-<span class="sourceLineNo">893</span> * @param keys The list of keys to look for.<a name="line.893"></a>
-<span class="sourceLineNo">894</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.894"></a>
-<span class="sourceLineNo">895</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.895"></a>
-<span class="sourceLineNo">896</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.896"></a>
-<span class="sourceLineNo">897</span> */<a name="line.897"></a>
-<span class="sourceLineNo">898</span> public List<?> findList(String... keys) {<a name="line.898"></a>
-<span class="sourceLineNo">899</span> return find(List.class, keys);<a name="line.899"></a>
-<span class="sourceLineNo">900</span> }<a name="line.900"></a>
-<span class="sourceLineNo">901</span><a name="line.901"></a>
-<span class="sourceLineNo">902</span> /**<a name="line.902"></a>
-<span class="sourceLineNo">903</span> * Returns the first entry that exists converted to a {@link ObjectMap}.<a name="line.903"></a>
-<span class="sourceLineNo">904</span> * <p><a name="line.904"></a>
-<span class="sourceLineNo">905</span> * Shortcut for <code>find(ObjectMap.<jk>class</jk>, keys)</code>.<a name="line.905"></a>
-<span class="sourceLineNo">906</span> *<a name="line.906"></a>
-<span class="sourceLineNo">907</span> * @param keys The list of keys to look for.<a name="line.907"></a>
-<span class="sourceLineNo">908</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.908"></a>
-<span class="sourceLineNo">909</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.909"></a>
-<span class="sourceLineNo">910</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.910"></a>
-<span class="sourceLineNo">911</span> */<a name="line.911"></a>
-<span class="sourceLineNo">912</span> public ObjectMap findObjectMap(String... keys) {<a name="line.912"></a>
-<span class="sourceLineNo">913</span> return find(ObjectMap.class, keys);<a name="line.913"></a>
-<span class="sourceLineNo">914</span> }<a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span> /**<a name="line.916"></a>
-<span class="sourceLineNo">917</span> * Returns the first entry that exists converted to a {@link ObjectList}.<a name="line.917"></a>
-<span class="sourceLineNo">918</span> * <p><a name="line.918"></a>
-<span class="sourceLineNo">919</span> * Shortcut for <code>find(ObjectList.<jk>class</jk>, keys)</code>.<a name="line.919"></a>
-<span class="sourceLineNo">920</span> *<a name="line.920"></a>
-<span class="sourceLineNo">921</span> * @param keys The list of keys to look for.<a name="line.921"></a>
-<span class="sourceLineNo">922</span> * @return The converted value of the first key in the list that has an entry in this map,<a name="line.922"></a>
-<span class="sourceLineNo">923</span> * or <jk>null</jk> if the map contains no mapping for any of the keys.<a name="line.923"></a>
-<span class="sourceLineNo">924</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.924"></a>
-<span class="sourceLineNo">925</span> */<a name="line.925"></a>
-<span class="sourceLineNo">926</span> public ObjectList findObjectList(String... keys) {<a name="line.926"></a>
-<span class="sourceLineNo">927</span> return find(ObjectList.class, keys);<a name="line.927"></a>
-<span class="sourceLineNo">928</span> }<a name="line.928"></a>
-<span class="sourceLineNo">929</span><a name="line.929"></a>
-<span class="sourceLineNo">930</span> /**<a name="line.930"></a>
-<span class="sourceLineNo">931</span> * Returns the first key in the map.<a name="line.931"></a>
-<span class="sourceLineNo">932</span> *<a name="line.932"></a>
-<span class="sourceLineNo">933</span> * @return The first key in the map, or <jk>null</jk> if the map is empty.<a name="line.933"></a>
-<span class="sourceLineNo">934</span> */<a name="line.934"></a>
-<span class="sourceLineNo">935</span> public String getFirstKey() {<a name="line.935"></a>
-<span class="sourceLineNo">936</span> return isEmpty() ? null : keySet().iterator().next();<a name="line.936"></a>
-<span class="sourceLineNo">937</span> }<a name="line.937"></a>
-<span class="sourceLineNo">938</span><a name="line.938"></a>
-<span class="sourceLineNo">939</span> /**<a name="line.939"></a>
-<span class="sourceLineNo">940</span> * Returns the class type of the object at the specified index.<a name="line.940"></a>
-<span class="sourceLineNo">941</span> *<a name="line.941"></a>
-<span class="sourceLineNo">942</span> * @param key The key into this map.<a name="line.942"></a>
-<span class="sourceLineNo">943</span> * @return The data type of the object at the specified key, or <jk>null</jk> if the value is null or does not exist.<a name="line.943"></a>
-<span class="sourceLineNo">944</span> */<a name="line.944"></a>
-<span class="sourceLineNo">945</span> public ClassMeta<?> getClassMeta(String key) {<a name="line.945"></a>
-<span class="sourceLineNo">946</span> return session.getClassMetaForObject(get(key));<a name="line.946"></a>
-<span class="sourceLineNo">947</span> }<a name="line.947"></a>
-<span class="sourceLineNo">948</span><a name="line.948"></a>
-<span class="sourceLineNo">949</span> /**<a name="line.949"></a>
-<span class="sourceLineNo">950</span> * Equivalent to calling <code>get(class,key,def)</code> followed by <code>remove(key);</code><a name="line.950"></a>
-<span class="sourceLineNo">951</span> *<a name="line.951"></a>
-<span class="sourceLineNo">952</span> * @param <T> The class type.<a name="line.952"></a>
-<span class="sourceLineNo">953</span> * @param type The class type.<a name="line.953"></a>
-<span class="sourceLineNo">954</span> * @param key The key.<a name="line.954"></a>
-<span class="sourceLineNo">955</span> * @param defVal The default value if the map doesn't contain the specified mapping.<a name="line.955"></a>
-<span class="sourceLineNo">956</span> * @return The converted value, or the default value if the map contains no mapping for this key.<a name="line.956"></a>
-<span class="sourceLineNo">957</span> * @throws InvalidDataConversionException If value cannot be converted.<a name="line.957"></a>
-<span class="sourceLineNo">958</span> */<a name="line.958"></a>
-<span class="sourceLineNo">959</span> public <T> T remove(Class<T> type, String key, T defVal) {<a name="line.959"></a>
-<span class="sourceLineNo">960</span> T t = get(type, key, defVal);<a name="line.960"></a>
-<span class="sourceLineNo">961</span> remove(key);<a name="line.961"></a>
-<span class="sourceLineNo">962</span> return t;<a name="line.962"></a>
-<span class="sourceLineNo">963</span> }<a name="line.963"></a>
-<span class="sourceLineNo">964</span><a name="line.964"></a>
-<span class="sourceLineNo">965</span><a name="line.965"></a>
-<span class="sourceLineNo">966</span> /**<a name="line.966"></a>
-<span class="sourceLineNo">967</span> * Convenience method for removing several keys at once.<a name="line.967"></a>
-<span class="sourceLineNo">968</span> *<a name="line.968"></a>
-<span class="sourceLineNo">969</span> * @param keys The list of keys to remove.<a name="line.969"></a>
-<span class="sourceLineNo">970</span> */<a name="line.970"></a>
-<span class="sourceLineNo">971</span> public void removeAll(Collection<String> keys) {<a name="line.971"></a>
-<span class="sourceLineNo">972</span> for (String k : keys)<a name="line.972"></a>
-<span class="sourceLineNo">973</span> remove(k);<a name="line.973"></a>
-<span class="sourceLineNo">974</span> }<a name="line.974"></a>
-<span class="sourceLineNo">975</span><a name="line.975"></a>
-<span class="sourceLineNo">976</span> /**<a name="line.976"></a>
-<span class="sourceLineNo">977</span> * Convenience method for removing several keys at once.<a name="line.977"></a>
-<span class="sourceLineNo">978</span> *<a name="line.978"></a>
-<span class="sourceLineNo">979</span> * @param keys The list of keys to remove.<a name="line.979"></a>
-<span class="sourceLineNo">980</span> */<a name="line.980"></a>
-<span class="sourceLineNo">981</span> public void removeAll(String... keys) {<a name="line.981"></a>
-<span class="sourceLineNo">982</span> for (String k : keys)<a name="line.982"></a>
-<span class="sourceLineNo">983</span> remove(k);<a name="line.983"></a>
-<span class="sourceLineNo">984</span> }<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span> @Override /* Map */<a name="line.986"></a>
-<span class="sourceLineNo">987</span> public boolean containsKey(Object key) {<a name="line.987"></a>
-<span class="sourceLineNo">988</span> if (super.containsKey(key))<a name="line.988"></a>
-<span class="sourceLineNo">989</span> return true;<a name="line.989"></a>
-<span class="sourceLineNo">990</span> if (inner != null)<a name="line.990"></a>
-<span class="sourceLineNo">991</span> return inner.containsKey(key);<a name="line.991"></a>
-<span class="sourceLineNo">992</span> return false;<a name="line.992"></a>
-<span class="sourceLineNo">993</span> }<a name="line.993"></a>
-<span class="sourceLineNo">994</span><a name="line.994"></a>
-<span class="sourceLineNo">995</span> /**<a name="line.995"></a>
-<span class="sourceLineNo">996</span> * Returns <jk>true</jk> if this map contains the specified key, ignoring<a name="line.996"></a>
-<span class="sourceLineNo">997</span> * the inner map if it exists.<a name="line.997"></a>
-<span class="sourceLineNo">998</span> *<a name="line.998"></a>
-<span class="sourceLineNo">999</span> * @param key The key to look up.<a name="line.999"></a>
-<span class="sourceLineNo">1000</span> * @return <jk>true</jk> if this map contains the specified key.<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span> */<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span> public boolean containsOuterKey(Object key) {<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span> return super.containsKey(key);<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span> }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span><a name="line.1005"></a>
-<span class="sourceLineNo">1006</span> /**<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span> * Returns a copy of this <code>ObjectMap</code> with only the specified keys.<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span> *<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span> * @param keys The keys of the entries to copy.<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span> * @return A new map with just the keys and values from this map.<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span> */<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span> public ObjectMap include(String...keys) {<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span> ObjectMap m2 = new ObjectMap();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span> for (Map.Entry<String,Object> e : this.entrySet())<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span> for (String k : keys)<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span> if (k.equals(e.getKey()))<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span> m2.put(k, e.getValue());<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span> return m2;<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span> }<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span><a name="line.1020"></a>
-<span class="sourceLineNo">1021</span> /**<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span> * Returns a copy of this <code>ObjectMap</code> without the specified keys.<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span> *<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span> * @param keys The keys of the entries not to copy.<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span> * @return A new map without the keys and values from this map.<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span> */<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span> public ObjectMap exclude(String...keys) {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span> ObjectMap m2 = new ObjectMap();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span> for (Map.Entry<String,Object> e : this.entrySet()) {<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span> boolean exclude = false;<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span> for (String k : keys)<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span> if (k.equals(e.getKey()))<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span> exclude = true;<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span> if (! exclude)<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span> m2.put(e.getKey(), e.getValue());<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span> }<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span> return m2;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span> }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span> /**<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span> * Set
<TRUNCATED>
[20/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
index 2f637a8..fd02719 100644
--- a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
+++ b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -269,24 +269,31 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
</td>
</tr>
<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#getRaw-org.apache.juneau.BeanMap-java.lang.String-">getRaw</a></span>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName)</code>
+<div class="block">Equivalent to calling <a href="../../../org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-"><code>BeanMap.getRaw(Object)</code></a>, but is faster since it avoids looking up the property meta.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#getSetter--">getSetter</a></span>()</code>
<div class="block">Returns the setter method for this property.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#isDyna--">isDyna</a></span>()</code>
<div class="block">Returns <jk>true</jk> if this bean property is named <js>"*"</js>.</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#isUri--">isUri</a></span>()</code>
<div class="block">Returns <jk>true</jk> if this bean property is a URI.</div>
</td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#set-org.apache.juneau.BeanMap-java.lang.String-java.lang.Object-">set</a></span>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName,
@@ -295,14 +302,14 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
looking up the property meta.</div>
</td>
</tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#setArray-java.lang.Object-java.util.List-">setArray</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> bean,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> l)</code>
<div class="block">Sets an array field on this bean.</div>
</td>
</tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanPropertyMeta.html#toString--">toString</a></span>()</code> </td>
</tr>
@@ -334,7 +341,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockListLast">
<li class="blockList">
<h4>BeanPropertyMeta</h4>
-<pre>protected <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.268">BeanPropertyMeta</a>(<a href="../../../org/apache/juneau/BeanPropertyMeta.Builder.html" title="class in org.apache.juneau">BeanPropertyMeta.Builder</a> b)</pre>
+<pre>protected <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.266">BeanPropertyMeta</a>(<a href="../../../org/apache/juneau/BeanPropertyMeta.Builder.html" title="class in org.apache.juneau">BeanPropertyMeta.Builder</a> b)</pre>
<div class="block">Creates a new BeanPropertyMeta using the contents of the specified builder.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -356,7 +363,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.292">getName</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.290">getName</a>()</pre>
<div class="block">Returns the name of this bean property.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -371,7 +378,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<li class="blockList">
<h4>getBeanMeta</h4>
<pre><a href="../../../org/apache/juneau/annotation/BeanIgnore.html" title="annotation in org.apache.juneau.annotation">@BeanIgnore</a>
-public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a><?> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.302">getBeanMeta</a>()</pre>
+public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in org.apache.juneau">BeanMeta</a><?> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.300">getBeanMeta</a>()</pre>
<div class="block">Returns the bean meta that this property belongs to.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -385,7 +392,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getGetter</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.311">getGetter</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.309">getGetter</a>()</pre>
<div class="block">Returns the getter method for this property.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -399,7 +406,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getSetter</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.320">getSetter</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.318">getSetter</a>()</pre>
<div class="block">Returns the setter method for this property.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -413,7 +420,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getField</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.329">getField</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.327">getField</a>()</pre>
<div class="block">Returns the field for this property.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -427,7 +434,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getClassMeta</h4>
-<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.342">getClassMeta</a>()</pre>
+<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.340">getClassMeta</a>()</pre>
<div class="block">Returns the <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the class of this property.
<p>
If this property or the property type class has a <a href="../../../org/apache/juneau/transform/PojoSwap.html" title="class in org.apache.juneau.transform"><code>PojoSwap</code></a> associated with it, this
@@ -445,7 +452,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getBeanRegistry</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.355">getBeanRegistry</a>()</pre>
+<pre>public <a href="../../../org/apache/juneau/BeanRegistry.html" title="class in org.apache.juneau">BeanRegistry</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.353">getBeanRegistry</a>()</pre>
<div class="block">Returns the bean dictionary in use for this bean property.
The order of lookup for the dictionary is as follows:
<ol>
@@ -464,7 +471,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>isUri</h4>
-<pre>public boolean <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.371">isUri</a>()</pre>
+<pre>public boolean <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.369">isUri</a>()</pre>
<div class="block">Returns <jk>true</jk> if this bean property is a URI.
<p>
A bean property can be considered a URI if any of the following are true:
@@ -485,7 +492,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>isDyna</h4>
-<pre>public boolean <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.379">isDyna</a>()</pre>
+<pre>public boolean <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.377">isDyna</a>()</pre>
<div class="block">Returns <jk>true</jk> if this bean property is named <js>"*"</js>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -499,7 +506,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getProperties</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.389">getProperties</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.387">getProperties</a>()</pre>
<div class="block">Returns the override list of properties defined through a <a href="../../../org/apache/juneau/annotation/BeanProperty.html#properties--"><code>BeanProperty.properties()</code></a> annotation
on this property.</div>
<dl>
@@ -514,7 +521,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getExtendedMeta</h4>
-<pre>public <M extends <a href="../../../org/apache/juneau/BeanPropertyMetaExtended.html" title="class in org.apache.juneau">BeanPropertyMetaExtended</a>> M <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.399">getExtendedMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><M> c)</pre>
+<pre>public <M extends <a href="../../../org/apache/juneau/BeanPropertyMetaExtended.html" title="class in org.apache.juneau">BeanPropertyMetaExtended</a>> M <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.397">getExtendedMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><M> c)</pre>
<div class="block">Returns the language-specified extended metadata on this bean property.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -530,7 +537,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.412">get</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.410">get</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName)</pre>
<div class="block">Equivalent to calling <a href="../../../org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>BeanMap.get(Object)</code></a>, but is faster since it avoids looking up the property meta.</div>
<dl>
@@ -542,13 +549,31 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
</dl>
</li>
</ul>
+<a name="getRaw-org.apache.juneau.BeanMap-java.lang.String-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRaw</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.439">getRaw</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
+ <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName)</pre>
+<div class="block">Equivalent to calling <a href="../../../org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-"><code>BeanMap.getRaw(Object)</code></a>, but is faster since it avoids looking up the property meta.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>m</code> - The bean map to get the transformed value from.</dd>
+<dd><code>pName</code> - The property name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The raw property value.</dd>
+</dl>
+</li>
+</ul>
<a name="set-org.apache.juneau.BeanMap-java.lang.String-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>set</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.480">set</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.502">set</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)
throws <a href="../../../org/apache/juneau/BeanRuntimeException.html" title="class in org.apache.juneau">BeanRuntimeException</a></pre>
@@ -572,7 +597,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getDynaMap</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.701">getDynaMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> bean)
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.723">getDynaMap</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> bean)
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/InvocationTargetException.html?is-external=true" title="class or interface in java.lang.reflect">InvocationTargetException</a></pre>
@@ -597,7 +622,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>setArray</h4>
-<pre>protected void <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.722">setArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> bean,
+<pre>protected void <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.744">setArray</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> bean,
<a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a> l)
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang">IllegalAccessException</a>,
@@ -621,7 +646,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public void <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.737">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
+<pre>public void <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.759">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)
throws <a href="../../../org/apache/juneau/BeanRuntimeException.html" title="class in org.apache.juneau">BeanRuntimeException</a></pre>
@@ -644,7 +669,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
-<pre>public void <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.814">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
+<pre>public void <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.836">add</a>(<a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><?> m,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> pName,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> key,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)
@@ -667,7 +692,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>findAnnotations</h4>
-<pre>public <A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>> <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><A> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.891">findAnnotations</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><A> a)</pre>
+<pre>public <A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>> <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><A> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.913">findAnnotations</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><A> a)</pre>
<div class="block">Returns all instances of the specified annotation in the hierarchy of this bean property.
<p>
Searches through the class hierarchy (e.g. superclasses, interfaces, packages) for all
@@ -686,7 +711,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockList">
<li class="blockList">
<h4>getAnnotation</h4>
-<pre>public <A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>> A <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.919">getAnnotation</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><A> a)</pre>
+<pre>public <A extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>> A <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.941">getAnnotation</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><A> a)</pre>
<div class="block">Returns the specified annotation on the field or methods that define this property.
<p>
This method will search up the parent class/interface hierarchy chain to search for the annotation on
@@ -705,7 +730,7 @@ public <a href="../../../org/apache/juneau/BeanMeta.html" title="class in o
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.984">toString</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.html#line.1006">toString</a>()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/ObjectList.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/ObjectList.html b/content/site/apidocs/org/apache/juneau/ObjectList.html
index 4762d5d..b510db1 100644
--- a/content/site/apidocs/org/apache/juneau/ObjectList.html
+++ b/content/site/apidocs/org/apache/juneau/ObjectList.html
@@ -562,7 +562,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.152">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang">CharSequence</a> s)
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.156">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/CharSequence.html?is-external=true" title="class or interface in java.lang">CharSequence</a> s)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Shortcut for <code><jk>new</jk> ObjectList(String,JsonParser.<jsf>DEFAULT</jsf>);</code></div>
<dl>
@@ -579,7 +579,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.164">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.168">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
<a href="../../../org/apache/juneau/parser/Parser.html" title="class in org.apache.juneau.parser">Parser</a> p)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -600,7 +600,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.176">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r)
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.180">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Shortcut for <code><jk>new</jk> ObjectList(reader, JsonParser.<jsf>DEFAULT</jsf>)</code>.</div>
@@ -619,7 +619,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.190">ObjectList</a>()</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.194">ObjectList</a>()</pre>
<div class="block">Construct an empty JSON array. (i.e. an empty <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util"><code>LinkedList</code></a>).</div>
</li>
</ul>
@@ -629,7 +629,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.199">ObjectList</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.203">ObjectList</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
<div class="block">Construct an empty JSON array with the specified bean context. (i.e. an empty <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true" title="class or interface in java.util"><code>LinkedList</code></a>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -643,7 +643,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.209">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... o)</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.213">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... o)</pre>
<div class="block">Construct a JSON array and fill it with the specified objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -657,7 +657,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockListLast">
<li class="blockList">
<h4>ObjectList</h4>
-<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.218">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><?> c)</pre>
+<pre>public <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.222">ObjectList</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><?> c)</pre>
<div class="block">Construct a JSON array and fill it with the specified collection of objects.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -679,7 +679,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>setBeanSession</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.232">setBeanSession</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.236">setBeanSession</a>(<a href="../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a> session)</pre>
<div class="block">Override the default bean session used for converting POJOs.
<p>
Default is <a href="../../../org/apache/juneau/BeanContext.html#DEFAULT"><code>BeanContext.DEFAULT</code></a>, which is sufficient in most cases.
@@ -699,7 +699,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>append</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.242">append</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... o)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.246">append</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... o)</pre>
<div class="block">Convenience method for adding multiple objects to this list.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -715,7 +715,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.258">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.262">get</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
int index)</pre>
<div class="block">Get the entry at the specified index, converted to the specified type (if possible).
<p>
@@ -737,7 +737,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.268">getString</a>(int index)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.272">getString</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(String.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -753,7 +753,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getInt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.279">getInt</a>(int index)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.283">getInt</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(Integer.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -771,7 +771,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getBoolean</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.290">getBoolean</a>(int index)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.294">getBoolean</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(Boolean.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -789,7 +789,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getLong</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.301">getLong</a>(int index)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.305">getLong</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(Long.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -807,7 +807,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getMap</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.312">getMap</a>(int index)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><?,?> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.316">getMap</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(Map.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -825,7 +825,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getList</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.323">getList</a>(int index)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><?> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.327">getList</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(List.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -843,7 +843,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getObjectMap</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.334">getObjectMap</a>(int index)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.338">getObjectMap</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(ObjectMap.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -861,7 +861,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getObjectList</h4>
-<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.345">getObjectList</a>(int index)</pre>
+<pre>public <a href="../../../org/apache/juneau/ObjectList.html" title="class in org.apache.juneau">ObjectList</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.349">getObjectList</a>(int index)</pre>
<div class="block">Shortcut for calling <code>get(ObjectList.<jk>class</jk>, index)</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -879,7 +879,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getAt</h4>
-<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.373">getAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
+<pre>public <T> T <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.377">getAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path)</pre>
<div class="block">Same as <a href="../../../org/apache/juneau/ObjectList.html#get-java.lang.Class-int-"><code>get(Class,int)</code></a>, but the key is a slash-delimited
path used to traverse entries in this POJO.
@@ -915,7 +915,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>putAt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.400">putAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.404">putAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true#set-int-E-" title="class or interface in java.util"><code>set(int,Object)</code></a>, but the key is a slash-delimited
path used to traverse entries in this POJO.
@@ -949,7 +949,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>postAt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.427">postAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.431">postAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> o)</pre>
<div class="block">Similar to <a href="../../../org/apache/juneau/ObjectList.html#putAt-java.lang.String-java.lang.Object-"><code>putAt(String,Object)</code></a>, but used to append
to collections and arrays.
@@ -983,7 +983,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>deleteAt</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.453">deleteAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.457">deleteAt</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path)</pre>
<div class="block">Similar to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html?is-external=true#remove-int-" title="class or interface in java.util"><code>remove(int)</code></a>,but the key is a slash-delimited
path used to traverse entries in this POJO.
<p>
@@ -1015,7 +1015,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>elements</h4>
-<pre>public <E> <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><E> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.493">elements</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><E> childType)</pre>
+<pre>public <E> <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><E> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.497">elements</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><E> childType)</pre>
<div class="block">Creates an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang"><code>Iterable</code></a> with elements of the specified child type.
<p>
Attempts to convert the child objects to the correct type if they aren't already the correct type.
@@ -1062,7 +1062,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>getClassMeta</h4>
-<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.527">getClassMeta</a>(int index)</pre>
+<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><?> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.531">getClassMeta</a>(int index)</pre>
<div class="block">Returns the <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the class of the object at the specified index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -1078,7 +1078,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.544">toString</a>(<a href="../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a> serializer)
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.548">toString</a>(<a href="../../../org/apache/juneau/serializer/WriterSerializer.html" title="class in org.apache.juneau.serializer">WriterSerializer</a> serializer)
throws <a href="../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
<div class="block">Serialize this array to a string using the specified serializer.</div>
<dl>
@@ -1097,7 +1097,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.552">toString</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.556">toString</a>()</pre>
<div class="block">Serialize this array to JSON using the <a href="../../../org/apache/juneau/json/JsonSerializer.html#DEFAULT"><code>JsonSerializer.DEFAULT</code></a> serializer.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
@@ -1111,7 +1111,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.h
<ul class="blockListLast">
<li class="blockList">
<h4>serializeTo</h4>
-<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.568">serializeTo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> w)
+<pre>public void <a href="../../../src-html/org/apache/juneau/ObjectList.html#line.572">serializeTo</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a> w)
throws <a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="../../../org/apache/juneau/serializer/SerializeException.html" title="class in org.apache.juneau.serializer">SerializeException</a></pre>
<div class="block">Convenience method for serializing this ObjectList to the specified Writer using
[21/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
Update javadocs with QueryWidget info.
Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/commit/2871fb5d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/tree/2871fb5d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/diff/2871fb5d
Branch: refs/heads/asf-site
Commit: 2871fb5d43c024aaa3194e6ee62f77e02e602c77
Parents: 436334e
Author: JamesBognar <ja...@apache.org>
Authored: Sun Jun 18 15:40:01 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Sun Jun 18 15:40:01 2017 -0400
----------------------------------------------------------------------
content/site/apidocs/allclasses-frame.html | 3 +
content/site/apidocs/allclasses-noframe.html | 3 +
content/site/apidocs/index-all.html | 227 +-
.../site/apidocs/org/apache/juneau/BeanMap.html | 60 +-
.../apache/juneau/BeanPropertyMeta.Builder.html | 2 +-
.../org/apache/juneau/BeanPropertyMeta.html | 79 +-
.../apidocs/org/apache/juneau/ObjectList.html | 54 +-
.../apidocs/org/apache/juneau/ObjectMap.html | 140 +-
.../juneau/html/HtmlDocSerializerContext.html | 30 +-
.../juneau/html/HtmlDocSerializerSession.html | 4 +-
.../juneau/html/HtmlDocTemplateBasic.html | 16 +-
.../apache/juneau/internal/DelegateBeanMap.html | 2 +-
.../org/apache/juneau/internal/StringUtils.html | 234 +-
.../juneau/microservice/package-summary.html | 6 +-
.../org/apache/juneau/rest/RequestFormData.html | 144 +-
.../org/apache/juneau/rest/RequestHeaders.html | 252 +-
.../org/apache/juneau/rest/RequestQuery.html | 221 +-
.../org/apache/juneau/rest/RestRequest.html | 8 +-
.../juneau/rest/converters/Queryable.html | 43 +-
.../org/apache/juneau/rest/package-summary.html | 6 +-
.../rest/widget/PoweredByJuneauWidget.html | 4 +-
.../apache/juneau/rest/widget/QueryWidget.html | 410 ++++
.../org/apache/juneau/rest/widget/Widget.html | 6 +-
.../rest/widget/doc-files/PetStore_Query.png | Bin 0 -> 35238 bytes
.../rest/widget/doc-files/PetStore_Query_q1.png | Bin 0 -> 18709 bytes
.../widget/doc-files/PetStore_Query_q10.png | Bin 0 -> 22147 bytes
.../rest/widget/doc-files/PetStore_Query_q2.png | Bin 0 -> 20455 bytes
.../rest/widget/doc-files/PetStore_Query_q3.png | Bin 0 -> 20269 bytes
.../rest/widget/doc-files/PetStore_Query_q4.png | Bin 0 -> 21004 bytes
.../rest/widget/doc-files/PetStore_Query_q5.png | Bin 0 -> 20463 bytes
.../rest/widget/doc-files/PetStore_Query_q6.png | Bin 0 -> 19557 bytes
.../rest/widget/doc-files/PetStore_Query_q7.png | Bin 0 -> 19621 bytes
.../rest/widget/doc-files/PetStore_Query_q8.png | Bin 0 -> 21190 bytes
.../rest/widget/doc-files/PetStore_Query_q9.png | Bin 0 -> 21224 bytes
.../rest/widget/doc-files/PetStore_Query_r1.png | Bin 0 -> 32218 bytes
.../widget/doc-files/PetStore_Query_r10.png | Bin 0 -> 24393 bytes
.../rest/widget/doc-files/PetStore_Query_r2.png | Bin 0 -> 15575 bytes
.../rest/widget/doc-files/PetStore_Query_r3.png | Bin 0 -> 23447 bytes
.../rest/widget/doc-files/PetStore_Query_r4.png | Bin 0 -> 15575 bytes
.../rest/widget/doc-files/PetStore_Query_r5.png | Bin 0 -> 11753 bytes
.../rest/widget/doc-files/PetStore_Query_r6.png | Bin 0 -> 32244 bytes
.../rest/widget/doc-files/PetStore_Query_r8.png | Bin 0 -> 15575 bytes
.../rest/widget/doc-files/PetStore_Query_r9.png | Bin 0 -> 24393 bytes
.../widget/doc-files/PetStore_Query_tooltip.png | Bin 0 -> 64060 bytes
.../rest/widget/doc-files/Petstore_Query_r7.png | Bin 0 -> 32202 bytes
.../juneau/rest/widget/package-frame.html | 1 +
.../juneau/rest/widget/package-summary.html | 6 +
.../apache/juneau/rest/widget/package-tree.html | 1 +
.../juneau/serializer/SerializerGroup.html | 50 +-
.../org/apache/juneau/utils/PojoQuery.html | 147 +-
.../juneau/utils/ProcBuilder.Matcher.html | 4 +-
.../apache/juneau/utils/SearchArgs.Builder.html | 537 ++++
.../org/apache/juneau/utils/SearchArgs.html | 380 +++
.../org/apache/juneau/utils/StringMessage.html | 4 +-
.../org/apache/juneau/utils/package-frame.html | 2 +
.../apache/juneau/utils/package-summary.html | 14 +-
.../org/apache/juneau/utils/package-tree.html | 2 +
content/site/apidocs/overview-summary.html | 1 +
content/site/apidocs/overview-tree.html | 3 +
.../src-html/org/apache/juneau/BeanContext.html | 8 +-
.../src-html/org/apache/juneau/BeanMap.html | 511 ++--
.../apache/juneau/BeanPropertyMeta.Builder.html | 1528 ++++++------
.../org/apache/juneau/BeanPropertyMeta.html | 1528 ++++++------
.../src-html/org/apache/juneau/ObjectList.html | 862 +++----
.../src-html/org/apache/juneau/ObjectMap.html | 2306 +++++++++---------
.../juneau/html/HtmlDocSerializerContext.html | 524 ++--
.../juneau/html/HtmlDocSerializerSession.html | 4 +-
.../juneau/html/HtmlDocTemplateBasic.html | 150 +-
.../org/apache/juneau/internal/StringUtils.html | 1573 ++++++------
.../org/apache/juneau/rest/RequestFormData.html | 430 ++--
.../org/apache/juneau/rest/RequestHeaders.html | 1196 ++++-----
.../org/apache/juneau/rest/RequestQuery.html | 682 +++---
.../org/apache/juneau/rest/RestRequest.html | 26 +-
.../juneau/rest/converters/Introspectable.html | 4 +-
.../juneau/rest/converters/Queryable.html | 126 +-
.../juneau/rest/response/DefaultHandler.html | 4 +-
.../org/apache/juneau/rest/vars/RequestVar.html | 4 +-
.../apache/juneau/rest/widget/QueryWidget.html | 202 ++
.../juneau/serializer/SerializerGroup.html | 285 +--
.../org/apache/juneau/utils/PojoQuery.html | 2245 ++++++++---------
.../apache/juneau/utils/SearchArgs.Builder.html | 373 +++
.../org/apache/juneau/utils/SearchArgs.html | 373 +++
82 files changed, 10540 insertions(+), 7510 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/allclasses-frame.html b/content/site/apidocs/allclasses-frame.html
index 79f8601..dcdc303 100644
--- a/content/site/apidocs/allclasses-frame.html
+++ b/content/site/apidocs/allclasses-frame.html
@@ -481,6 +481,7 @@
<li><a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation" target="classFrame">Query</a></li>
<li><a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters" target="classFrame">Queryable</a></li>
<li><a href="org/apache/juneau/remoteable/QueryIfNE.html" title="annotation in org.apache.juneau.remoteable" target="classFrame">QueryIfNE</a></li>
+<li><a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget" target="classFrame">QueryWidget</a></li>
<li><a href="org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http" target="classFrame">Range</a></li>
<li><a href="org/apache/juneau/dto/html5/Rb.html" title="class in org.apache.juneau.dto.html5" target="classFrame">Rb</a></li>
<li><a href="org/apache/juneau/jena/annotation/Rdf.html" title="annotation in org.apache.juneau.jena.annotation" target="classFrame">Rdf</a></li>
@@ -603,6 +604,8 @@
<li><a href="org/apache/juneau/dto/jsonschema/SchemaPropertySimpleArray.html" title="class in org.apache.juneau.dto.jsonschema" target="classFrame">SchemaPropertySimpleArray</a></li>
<li><a href="org/apache/juneau/dto/jsonschema/SchemaRef.html" title="class in org.apache.juneau.dto.jsonschema" target="classFrame">SchemaRef</a></li>
<li><a href="org/apache/juneau/dto/html5/Script.html" title="class in org.apache.juneau.dto.html5" target="classFrame">Script</a></li>
+<li><a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils" target="classFrame">SearchArgs</a></li>
+<li><a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils" target="classFrame">SearchArgs.Builder</a></li>
<li><a href="org/apache/juneau/dto/html5/Section.html" title="class in org.apache.juneau.dto.html5" target="classFrame">Section</a></li>
<li><a href="org/apache/juneau/ini/Section.html" title="class in org.apache.juneau.ini" target="classFrame">Section</a></li>
<li><a href="org/apache/juneau/ini/SectionListener.html" title="class in org.apache.juneau.ini" target="classFrame">SectionListener</a></li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/allclasses-noframe.html b/content/site/apidocs/allclasses-noframe.html
index b46c69e..f425614 100644
--- a/content/site/apidocs/allclasses-noframe.html
+++ b/content/site/apidocs/allclasses-noframe.html
@@ -481,6 +481,7 @@
<li><a href="org/apache/juneau/rest/annotation/Query.html" title="annotation in org.apache.juneau.rest.annotation">Query</a></li>
<li><a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters">Queryable</a></li>
<li><a href="org/apache/juneau/remoteable/QueryIfNE.html" title="annotation in org.apache.juneau.remoteable">QueryIfNE</a></li>
+<li><a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget">QueryWidget</a></li>
<li><a href="org/apache/juneau/http/Range.html" title="class in org.apache.juneau.http">Range</a></li>
<li><a href="org/apache/juneau/dto/html5/Rb.html" title="class in org.apache.juneau.dto.html5">Rb</a></li>
<li><a href="org/apache/juneau/jena/annotation/Rdf.html" title="annotation in org.apache.juneau.jena.annotation">Rdf</a></li>
@@ -603,6 +604,8 @@
<li><a href="org/apache/juneau/dto/jsonschema/SchemaPropertySimpleArray.html" title="class in org.apache.juneau.dto.jsonschema">SchemaPropertySimpleArray</a></li>
<li><a href="org/apache/juneau/dto/jsonschema/SchemaRef.html" title="class in org.apache.juneau.dto.jsonschema">SchemaRef</a></li>
<li><a href="org/apache/juneau/dto/html5/Script.html" title="class in org.apache.juneau.dto.html5">Script</a></li>
+<li><a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></li>
+<li><a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></li>
<li><a href="org/apache/juneau/dto/html5/Section.html" title="class in org.apache.juneau.dto.html5">Section</a></li>
<li><a href="org/apache/juneau/ini/Section.html" title="class in org.apache.juneau.ini">Section</a></li>
<li><a href="org/apache/juneau/ini/SectionListener.html" title="class in org.apache.juneau.ini">SectionListener</a></li>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/index-all.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/index-all.html b/content/site/apidocs/index-all.html
index 64b1041..2db16b1 100644
--- a/content/site/apidocs/index-all.html
+++ b/content/site/apidocs/index-all.html
@@ -3162,6 +3162,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html#build--">build()</a></span> - Method in class org.apache.juneau.urlencoding.<a href="org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.html" title="class in org.apache.juneau.urlencoding">UrlEncodingSerializerBuilder</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#build--">build()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Construct the <a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/xml/XmlParserBuilder.html#build--">build()</a></span> - Method in class org.apache.juneau.xml.<a href="org/apache/juneau/xml/XmlParserBuilder.html" title="class in org.apache.juneau.xml">XmlParserBuilder</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/xml/XmlSchemaSerializerBuilder.html#build--">build()</a></span> - Method in class org.apache.juneau.xml.<a href="org/apache/juneau/xml/XmlSchemaSerializerBuilder.html" title="class in org.apache.juneau.xml">XmlSchemaSerializerBuilder</a></dt>
@@ -3225,6 +3229,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/urlencoding/UrlEncodingSerializer.html#builder--">builder()</a></span> - Method in class org.apache.juneau.urlencoding.<a href="org/apache/juneau/urlencoding/UrlEncodingSerializer.html" title="class in org.apache.juneau.urlencoding">UrlEncodingSerializer</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#Builder--">Builder()</a></span> - Constructor for class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/xml/XmlParser.html#builder--">builder()</a></span> - Method in class org.apache.juneau.xml.<a href="org/apache/juneau/xml/XmlParser.html" title="class in org.apache.juneau.xml">XmlParser</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/xml/XmlSerializer.html#builder--">builder()</a></span> - Method in class org.apache.juneau.xml.<a href="org/apache/juneau/xml/XmlSerializer.html" title="class in org.apache.juneau.xml">XmlSerializer</a></dt>
@@ -4767,7 +4773,7 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/converters/Introspectable.html#convert-org.apache.juneau.rest.RestRequest-java.lang.Object-org.apache.juneau.ClassMeta-">convert(RestRequest, Object, ClassMeta)</a></span> - Method in class org.apache.juneau.rest.converters.<a href="org/apache/juneau/rest/converters/Introspectable.html" title="class in org.apache.juneau.rest.converters">Introspectable</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/converters/Queryable.html#convert-org.apache.juneau.rest.RestRequest-java.lang.Object-org.apache.juneau.ClassMeta-">convert(RestRequest, Object, ClassMeta)</a></span> - Method in class org.apache.juneau.rest.converters.<a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters">Queryable</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/converters/Queryable.html#convert-org.apache.juneau.rest.RestRequest-java.lang.Object-org.apache.juneau.ClassMeta-">convert(RestRequest, Object, ClassMeta<?>)</a></span> - Method in class org.apache.juneau.rest.converters.<a href="org/apache/juneau/rest/converters/Queryable.html" title="class in org.apache.juneau.rest.converters">Queryable</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/converters/Traversable.html#convert-org.apache.juneau.rest.RestRequest-java.lang.Object-org.apache.juneau.ClassMeta-">convert(RestRequest, Object, ClassMeta)</a></span> - Method in class org.apache.juneau.rest.converters.<a href="org/apache/juneau/rest/converters/Traversable.html" title="class in org.apache.juneau.rest.converters">Traversable</a></dt>
<dd> </dd>
@@ -6533,6 +6539,10 @@
<dd>
<div class="block">An efficient method for checking if a string ends with a character.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/internal/StringUtils.html#endsWith-java.lang.String-char...-">endsWith(String, char...)</a></span> - Static method in class org.apache.juneau.internal.<a href="org/apache/juneau/internal/StringUtils.html" title="class in org.apache.juneau.internal">StringUtils</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/internal/StringUtils.html#endsWith-java.lang.String-char-"><code>StringUtils.endsWith(String, char)</code></a> except check for multiple characters.</div>
+</dd>
<dt><a href="org/apache/juneau/http/EntityValidator.html" title="class in org.apache.juneau.http"><span class="typeNameLink">EntityValidator</span></a> - Class in <a href="org/apache/juneau/http/package-summary.html">org.apache.juneau.http</a></dt>
<dd>
<div class="block">Represents a validator value.</div>
@@ -7106,7 +7116,7 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/internal/FileUtils.html#FileUtils--">FileUtils()</a></span> - Constructor for class org.apache.juneau.internal.<a href="org/apache/juneau/internal/FileUtils.html" title="class in org.apache.juneau.internal">FileUtils</a></dt>
<dd> </dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoQuery.html#filterCollection-java.util.Map-java.util.List-java.util.List-int-int-boolean-">filterCollection(Map, List, List, int, int, boolean)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoQuery.html#filter-org.apache.juneau.utils.SearchArgs-">filter(SearchArgs)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></dt>
<dd>
<div class="block">Filters the input object as a collection of maps.</div>
</dd>
@@ -7126,10 +7136,6 @@
<dd>
<div class="block">Remove all but the specified keys from this map.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoQuery.html#filterMap-java.util.List-">filterMap(List)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></dt>
-<dd>
-<div class="block">Filters the input object as a map.</div>
-</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/client/RestClient.html#finalize--">finalize()</a></span> - Method in class org.apache.juneau.rest.client.<a href="org/apache/juneau/rest/client/RestClient.html" title="class in org.apache.juneau.rest.client">RestClient</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/Session.html#finalize--">finalize()</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/Session.html" title="class in org.apache.juneau">Session</a></dt>
@@ -8222,6 +8228,10 @@
<dd>
<div class="block">Convenience method for calling <code>getContext().getBeanContext();</code></div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/serializer/SerializerGroup.html#getBeanContext--">getBeanContext()</a></span> - Method in class org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerGroup.html" title="class in org.apache.juneau.serializer">SerializerGroup</a></dt>
+<dd>
+<div class="block">Returns a bean context with the same properties as this group.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/transform/BeanFilter.html#getBeanDictionary--">getBeanDictionary()</a></span> - Method in class org.apache.juneau.transform.<a href="org/apache/juneau/transform/BeanFilter.html" title="class in org.apache.juneau.transform">BeanFilter</a></dt>
<dd>
<div class="block">Returns the bean dictionary defined on this bean.</div>
@@ -8342,6 +8352,30 @@
<dd>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getBoolean-java.lang.String-">getBoolean(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>RequestFormData.getString(String)</code></a> but converts the value to a boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getBoolean-java.lang.String-boolean-">getBoolean(String, boolean)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>RequestFormData.getString(String,String)</code></a> but converts the value to a boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getBoolean-java.lang.String-">getBoolean(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>RequestHeaders.getString(String)</code></a> but converts the value to a boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getBoolean-java.lang.String-boolean-">getBoolean(String, boolean)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>RequestHeaders.getString(String,String)</code></a> but converts the value to a boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getBoolean-java.lang.String-">getBoolean(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>RequestQuery.getString(String)</code></a> but converts the value to a boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getBoolean-java.lang.String-boolean-">getBoolean(String, boolean)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>RequestQuery.getString(String,String)</code></a> but converts the value to a boolean.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoRest.html#getBoolean-java.lang.String-">getBoolean(String)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoRest.html" title="class in org.apache.juneau.utils">PojoRest</a></dt>
<dd>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a>.</div>
@@ -9136,30 +9170,6 @@
<dd>
<div class="block">Returns the first object in the specified collection or array.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-">getFirst(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
-<dd>
-<div class="block">Returns a form data parameter value.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-java.lang.String-">getFirst(String, String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
-<dd>
-<div class="block">Same as <a href="org/apache/juneau/rest/RequestFormData.html#getFirst-java.lang.String-"><code>RequestFormData.getFirst(String)</code></a> except returns a default value if <jk>null</jk> or empty.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getFirst-java.lang.String-">getFirst(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
-<dd>
-<div class="block">Returns the specified header value, or <jk>null</jk> if the header doesn't exist.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getFirst-java.lang.String-java.lang.String-">getFirst(String, String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
-<dd>
-<div class="block">Returns the specified header value, or a default value if the header doesn't exist.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-">getFirst(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
-<dd>
-<div class="block">Returns a query parameter value.</div>
-</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-java.lang.String-">getFirst(String, String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
-<dd>
-<div class="block">Same as <a href="org/apache/juneau/rest/RequestQuery.html#getFirst-java.lang.String-"><code>RequestQuery.getFirst(String)</code></a> but returns the specified default value if the query parameter was not specified.</div>
-</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/ObjectMap.html#getFirstKey--">getFirstKey()</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/ObjectMap.html" title="class in org.apache.juneau">ObjectMap</a></dt>
<dd>
<div class="block">Returns the first key in the map.</div>
@@ -9198,7 +9208,7 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RestRequest.html#getFormData-java.lang.String-">getFormData(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a></dt>
<dd>
-<div class="block">Shortcut for calling <code>getFormData().getFirst(name)</code>.</div>
+<div class="block">Shortcut for calling <code>getFormData().getString(name)</code>.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/remoteable/RemoteableMethodMeta.html#getFormDataArgs--">getFormDataArgs()</a></span> - Method in class org.apache.juneau.remoteable.<a href="org/apache/juneau/remoteable/RemoteableMethodMeta.html" title="class in org.apache.juneau.remoteable">RemoteableMethodMeta</a></dt>
<dd>
@@ -9498,6 +9508,30 @@
<dd>
<div class="block">Returns the specified entry value converted to an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getInt-java.lang.String-">getInt(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>RequestFormData.getString(String)</code></a> but converts the value to an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getInt-java.lang.String-int-">getInt(String, int)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-"><code>RequestFormData.getString(String,String)</code></a> but converts the value to an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getInt-java.lang.String-">getInt(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-"><code>RequestHeaders.getString(String)</code></a> but converts the value to an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getInt-java.lang.String-int-">getInt(String, int)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-"><code>RequestHeaders.getString(String,String)</code></a> but converts the value to an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getInt-java.lang.String-">getInt(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>RequestQuery.getString(String)</code></a> but converts the value to an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getInt-java.lang.String-int-">getInt(String, int)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-"><code>RequestQuery.getString(String,String)</code></a> but converts the value to an integer.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoRest.html#getInt-java.lang.String-">getInt(String)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoRest.html" title="class in org.apache.juneau.utils">PojoRest</a></dt>
<dd>
<div class="block">Returns the specified entry value converted to an <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang"><code>Integer</code></a>.</div>
@@ -9616,6 +9650,10 @@
<dd>
<div class="block">Returns the localized license information of this REST resource.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.html#getLimit--">getLimit()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dt>
+<dd>
+<div class="block">The number of rows to return.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/parser/ParserReader.html#getLine--">getLine()</a></span> - Method in class org.apache.juneau.parser.<a href="org/apache/juneau/parser/ParserReader.html" title="class in org.apache.juneau.parser">ParserReader</a></dt>
<dd>
<div class="block">Returns the current line number position in this reader.</div>
@@ -10141,6 +10179,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/PoweredByJuneauWidget.html#getName--">getName()</a></span> - Method in class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget">PoweredByJuneauWidget</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/QueryWidget.html#getName--">getName()</a></span> - Method in class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget">QueryWidget</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/Widget.html#getName--">getName()</a></span> - Method in class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">Widget</a></dt>
<dd>
<div class="block">The widget key (i.e.</div>
@@ -10585,6 +10625,10 @@
<dd>
<div class="block">Returns the port that this microservice started up on.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.html#getPosition--">getPosition()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dt>
+<dd>
+<div class="block">The first-row position.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getPragma--">getPragma()</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
<dd>
<div class="block">Returns the <code>Pragma</code> header on the request.</div>
@@ -10769,7 +10813,7 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RestRequest.html#getQuery-java.lang.String-">getQuery(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestRequest.html" title="class in org.apache.juneau.rest">RestRequest</a></dt>
<dd>
-<div class="block">Shortcut for calling <code>getQuery().getFirst(name)</code>.</div>
+<div class="block">Shortcut for calling <code>getQuery().getString(name)</code>.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/remoteable/RemoteableMethodMeta.html#getQueryArgs--">getQueryArgs()</a></span> - Method in class org.apache.juneau.remoteable.<a href="org/apache/juneau/remoteable/RemoteableMethodMeta.html" title="class in org.apache.juneau.remoteable">RemoteableMethodMeta</a></dt>
<dd>
@@ -10791,6 +10835,15 @@
<dd>
<div class="block">Returns the <code>Range</code> header on the request.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-">getRaw(Object)</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>BeanMap.get(Object)</code></a> except bypasses the POJO filter associated with the bean property or
+ bean filter associated with the bean class.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/BeanPropertyMeta.html#getRaw-org.apache.juneau.BeanMap-java.lang.String-">getRaw(BeanMap<?>, String)</a></span> - Method in class org.apache.juneau.<a href="org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a></dt>
+<dd>
+<div class="block">Equivalent to calling <a href="org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-"><code>BeanMap.getRaw(Object)</code></a>, but is faster since it avoids looking up the property meta.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/jena/RdfSerializerSession.html#getRdfLanguage--">getRdfLanguage()</a></span> - Method in class org.apache.juneau.jena.<a href="org/apache/juneau/jena/RdfSerializerSession.html" title="class in org.apache.juneau.jena">RdfSerializerSession</a></dt>
<dd>
<div class="block">Returns the <a href="org/apache/juneau/jena/RdfCommonContext.html#RDF_language"><code>RdfCommonContext.RDF_language</code></a> setting value for this session.</div>
@@ -11170,6 +11223,14 @@
<dd>
<div class="block">Bean property getter: <property>scopes</property>.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.html#getSearch--">getSearch()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dt>
+<dd>
+<div class="block">The query search terms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getSearchArgs--">getSearchArgs()</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Locates the special search query arguments in the query and returns them as a <a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> object.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/ini/ConfigFile.html#getSection-java.lang.String-">getSection(String)</a></span> - Method in class org.apache.juneau.ini.<a href="org/apache/juneau/ini/ConfigFile.html" title="class in org.apache.juneau.ini">ConfigFile</a></dt>
<dd>
<div class="block">Gets the section with the specified name.</div>
@@ -11305,6 +11366,10 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/jaxrs/BaseProvider.html#getSize-java.lang.Object-java.lang.Class-java.lang.reflect.Type-java.lang.annotation.Annotation:A-javax.ws.rs.core.MediaType-">getSize(Object, Class<?>, Type, Annotation[], MediaType)</a></span> - Method in class org.apache.juneau.rest.jaxrs.<a href="org/apache/juneau/rest/jaxrs/BaseProvider.html" title="class in org.apache.juneau.rest.jaxrs">BaseProvider</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.html#getSort--">getSort()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dt>
+<dd>
+<div class="block">The sort columns.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/dto/atom/Entry.html#getSource--">getSource()</a></span> - Method in class org.apache.juneau.dto.atom.<a href="org/apache/juneau/dto/atom/Entry.html" title="class in org.apache.juneau.dto.atom">Entry</a></dt>
<dd>
<div class="block">Returns the source of this entry.</div>
@@ -11353,6 +11418,30 @@
<dd>
<div class="block">Returns the specified entry value converted to a <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-">getString(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
+<dd>
+<div class="block">Returns a form data parameter value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-java.lang.String-">getString(String, String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestFormData.html" title="class in org.apache.juneau.rest">RequestFormData</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestFormData.html#getString-java.lang.String-"><code>RequestFormData.getString(String)</code></a> except returns a default value if <jk>null</jk> or empty.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-">getString(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
+<dd>
+<div class="block">Returns the specified header value, or <jk>null</jk> if the header doesn't exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getString-java.lang.String-java.lang.String-">getString(String, String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
+<dd>
+<div class="block">Returns the specified header value, or a default value if the header doesn't exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-">getString(String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Returns a query parameter value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-java.lang.String-">getString(String, String)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Same as <a href="org/apache/juneau/rest/RequestQuery.html#getString-java.lang.String-"><code>RequestQuery.getString(String)</code></a> but returns the specified default value if the query parameter was not specified.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/MessageBundle.html#getString-java.lang.String-java.lang.Object...-">getString(String, Object...)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/MessageBundle.html" title="class in org.apache.juneau.utils">MessageBundle</a></dt>
<dd>
<div class="block">Similar to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html?is-external=true#getString-java.lang.String-" title="class or interface in java.util"><code>ResourceBundle.getString(String)</code></a> except allows you to pass in <a href="http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html?is-external=true" title="class or interface in java.text"><code>MessageFormat</code></a> objects.</div>
@@ -11867,6 +11956,10 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html#getView--">getView()</a></span> - Method in class org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/DirectoryResource.FileResource.html" title="class in org.apache.juneau.microservice.resources">DirectoryResource.FileResource</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.html#getView--">getView()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dt>
+<dd>
+<div class="block">The view columns.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestHeaders.html#getWarning--">getWarning()</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestHeaders.html" title="class in org.apache.juneau.rest">RequestHeaders</a></dt>
<dd>
<div class="block">Returns the <code>Warning</code> header on the request.</div>
@@ -12072,6 +12165,10 @@
<div class="block">The main method for serializing POJOs passed in through the <a href="org/apache/juneau/rest/RestResponse.html#setOutput-java.lang.Object-"><code>RestResponse.setOutput(Object)</code></a> method or returned by
the Java method.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/RequestQuery.html#hasAny-java.lang.String...-">hasAny(String...)</a></span> - Method in class org.apache.juneau.rest.<a href="org/apache/juneau/rest/RequestQuery.html" title="class in org.apache.juneau.rest">RequestQuery</a></dt>
+<dd>
+<div class="block">Returns <jk>true</jk> if the query parameters contains any of the specified names.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/Args.html#hasArg-int-">hasArg(int)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/Args.html" title="class in org.apache.juneau.utils">Args</a></dt>
<dd>
<div class="block">Returns <jk>true</jk> if argument exists at specified index.</div>
@@ -13255,6 +13352,10 @@
<dd>
<div class="block">Constructor.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#ignoreCase-boolean-">ignoreCase(boolean)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies whether case-insensitive search should be used.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/client/RestCall.html#ignoreErrors--">ignoreErrors()</a></span> - Method in class org.apache.juneau.rest.client.<a href="org/apache/juneau/rest/client/RestCall.html" title="class in org.apache.juneau.rest.client">RestCall</a></dt>
<dd>
<div class="block">Prevent <a href="org/apache/juneau/rest/client/RestCallException.html" title="class in org.apache.juneau.rest.client"><code>RestCallExceptions</code></a> from being thrown when HTTP status 400+ is encountered.</div>
@@ -13907,6 +14008,10 @@
<div class="block">Returns the index position of the element in the specified array
using the <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>String.equals(Object)</code></a> method.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/internal/StringUtils.html#indexOf-java.lang.String-char...-">indexOf(String, char...)</a></span> - Static method in class org.apache.juneau.internal.<a href="org/apache/juneau/internal/StringUtils.html" title="class in org.apache.juneau.internal">StringUtils</a></dt>
+<dd>
+<div class="block">Same as <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true#indexOf-int-" title="class or interface in java.lang"><code>String.indexOf(int)</code></a> except allows you to check for mulitiple characters.</div>
+</dd>
<dt><a href="org/apache/juneau/dto/swagger/Info.html" title="class in org.apache.juneau.dto.swagger"><span class="typeNameLink">Info</span></a> - Class in <a href="org/apache/juneau/dto/swagger/package-summary.html">org.apache.juneau.dto.swagger</a></dt>
<dd>
<div class="block">The object provides metadata about the API.</div>
@@ -14479,6 +14584,10 @@
<dd>
<div class="block">Returns <jk>true</jk> if we're serializing HTML.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.html#isIgnoreCase--">isIgnoreCase()</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils">SearchArgs</a></dt>
+<dd>
+<div class="block">The ignore-case flag.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/serializer/SerializerSession.html#isIgnoreRecursions--">isIgnoreRecursions()</a></span> - Method in class org.apache.juneau.serializer.<a href="org/apache/juneau/serializer/SerializerSession.html" title="class in org.apache.juneau.serializer">SerializerSession</a></dt>
<dd>
<div class="block">Returns the <a href="org/apache/juneau/serializer/SerializerContext.html#SERIALIZER_ignoreRecursions"><code>SerializerContext.SERIALIZER_ignoreRecursions</code></a> setting value for this session.</div>
@@ -15418,6 +15527,10 @@
<dd>
<div class="block">Creates an <a href="org/apache/juneau/dto/swagger/License.html" title="class in org.apache.juneau.dto.swagger"><code>License</code></a> element with the specified <a href="org/apache/juneau/dto/swagger/License.html#name-java.lang.String-"><code>License.name(String)</code></a> attribute.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#limit-int-">limit(int)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies the number of rows to return.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/microservice/resources/LogParser.Entry.html#line">line</a></span> - Variable in class org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogParser.Entry.html" title="class in org.apache.juneau.microservice.resources">LogParser.Entry</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/IOPipe.html#lineProcessor-org.apache.juneau.utils.IOPipe.LineProcessor-">lineProcessor(IOPipe.LineProcessor)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/IOPipe.html" title="class in org.apache.juneau.utils">IOPipe</a></dt>
@@ -18277,10 +18390,6 @@
<dd>
<div class="block">Parses the date value using the given date formats.</div>
</dd>
-<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoQuery.html#parseDate-java.lang.String-java.text.ParsePosition-">parseDate(String, ParsePosition)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></dt>
-<dd>
-<div class="block">Parses a timestamp string off the beginning of the string segment 'seg'.</div>
-</dd>
<dt><a href="org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser"><span class="typeNameLink">ParseException</span></a> - Exception in <a href="org/apache/juneau/parser/package-summary.html">org.apache.juneau.parser</a></dt>
<dd>
<div class="block">Exception that indicates invalid syntax encountered during parsing.</div>
@@ -18729,7 +18838,7 @@
</dd>
<dt><a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">PojoQuery</span></a> - Class in <a href="org/apache/juneau/utils/package-summary.html">org.apache.juneau.utils</a></dt>
<dd>
-<div class="block">Designed to provide query/view/sort/paging filtering on tabular in-memory POJO models.</div>
+<div class="block">Designed to provide search/view/sort/paging filtering on tabular in-memory POJO models.</div>
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoQuery.html#PojoQuery-java.lang.Object-org.apache.juneau.BeanSession-">PojoQuery(Object, BeanSession)</a></span> - Constructor for class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoQuery.html" title="class in org.apache.juneau.utils">PojoQuery</a></dt>
<dd>
@@ -18909,6 +19018,10 @@
<dd>
<div class="block">Sets the URI port.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#position-int-">position(int)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies the starting line number.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/PojoRest.html#post-java.lang.String-java.lang.Object-">post(String, Object)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/PojoRest.html" title="class in org.apache.juneau.utils">PojoRest</a></dt>
<dd>
<div class="block">Adds a value to a list element in a POJO model.</div>
@@ -19590,6 +19703,12 @@
<dd>
<div class="block">Adds query parameters to the URI for any parameters that aren't null/empty.</div>
</dd>
+<dt><a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget"><span class="typeNameLink">QueryWidget</span></a> - Class in <a href="org/apache/juneau/rest/widget/package-summary.html">org.apache.juneau.rest.widget</a></dt>
+<dd>
+<div class="block">Adds a <code>QUERY</code> link to the page that allows you to perform search/view/sort/paging on the page data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/QueryWidget.html#QueryWidget--">QueryWidget()</a></span> - Constructor for class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget">QueryWidget</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/csv/CsvSerializerBuilder.html#quoteChar-char-">quoteChar(char)</a></span> - Method in class org.apache.juneau.csv.<a href="org/apache/juneau/csv/CsvSerializerBuilder.html" title="class in org.apache.juneau.csv">CsvSerializerBuilder</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/html/HtmlSerializerBuilder.html#quoteChar-char-">quoteChar(char)</a></span> - Method in class org.apache.juneau.html.<a href="org/apache/juneau/html/HtmlSerializerBuilder.html" title="class in org.apache.juneau.html">HtmlSerializerBuilder</a></dt>
@@ -21190,6 +21309,8 @@
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/PoweredByJuneauWidget.html#resolve-org.apache.juneau.rest.RestRequest-">resolve(RestRequest)</a></span> - Method in class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/PoweredByJuneauWidget.html" title="class in org.apache.juneau.rest.widget">PoweredByJuneauWidget</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/QueryWidget.html#resolve-org.apache.juneau.rest.RestRequest-">resolve(RestRequest)</a></span> - Method in class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/QueryWidget.html" title="class in org.apache.juneau.rest.widget">QueryWidget</a></dt>
+<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/rest/widget/Widget.html#resolve-org.apache.juneau.rest.RestRequest-">resolve(RestRequest)</a></span> - Method in class org.apache.juneau.rest.widget.<a href="org/apache/juneau/rest/widget/Widget.html" title="class in org.apache.juneau.rest.widget">Widget</a></dt>
<dd>
<div class="block">Resolves the value for the variable.</div>
@@ -22052,6 +22173,22 @@
</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/dto/html5/Script.html#Script--">Script()</a></span> - Constructor for class org.apache.juneau.dto.html5.<a href="org/apache/juneau/dto/html5/Script.html" title="class in org.apache.juneau.dto.html5">Script</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#search-java.lang.String-">search(String)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Adds search terms to this builder.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#search-java.lang.String-java.lang.String-">search(String, String)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Adds a search term to this builder.</div>
+</dd>
+<dt><a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">SearchArgs</span></a> - Class in <a href="org/apache/juneau/utils/package-summary.html">org.apache.juneau.utils</a></dt>
+<dd>
+<div class="block">Encapsulates arguments for basic search/view/sort/position/limit functionality.</div>
+</dd>
+<dt><a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils"><span class="typeNameLink">SearchArgs.Builder</span></a> - Class in <a href="org/apache/juneau/utils/package-summary.html">org.apache.juneau.utils</a></dt>
+<dd>
+<div class="block">Builder for <a href="org/apache/juneau/utils/SearchArgs.html" title="class in org.apache.juneau.utils"><code>SearchArgs</code></a> class.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/internal/Pair.html#second--">second()</a></span> - Method in class org.apache.juneau.internal.<a href="org/apache/juneau/internal/Pair.html" title="class in org.apache.juneau.internal">Pair</a></dt>
<dd>
<div class="block">Returns the second object in the pair.</div>
@@ -24637,6 +24774,14 @@
<dd>
<div class="block">Sorts the specified collection if <a href="org/apache/juneau/serializer/SerializerSession.html#isSortCollections--"><code>SerializerSession.isSortCollections()</code></a> returns <jk>true</jk>.</div>
</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#sort-java.lang.String-">sort(String)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies the sort arguments.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#sort-java.util.Collection-">sort(Collection<String>)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies the sort arguments.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/csv/CsvSerializerBuilder.html#sortCollections-boolean-">sortCollections(boolean)</a></span> - Method in class org.apache.juneau.csv.<a href="org/apache/juneau/csv/CsvSerializerBuilder.html" title="class in org.apache.juneau.csv">CsvSerializerBuilder</a></dt>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/html/HtmlSerializerBuilder.html#sortCollections-boolean-">sortCollections(boolean)</a></span> - Method in class org.apache.juneau.html.<a href="org/apache/juneau/html/HtmlSerializerBuilder.html" title="class in org.apache.juneau.html">HtmlSerializerBuilder</a></dt>
@@ -28004,6 +28149,14 @@ the order they are declared.</div>
<dd> </dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/microservice/resources/LogsResource.FileResource.html#view">view</a></span> - Variable in class org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogsResource.FileResource.html" title="class in org.apache.juneau.microservice.resources">LogsResource.FileResource</a></dt>
<dd> </dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#view-java.lang.String-">view(String)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies the list of columns to view.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/juneau/utils/SearchArgs.Builder.html#view-java.util.Collection-">view(Collection<String>)</a></span> - Method in class org.apache.juneau.utils.<a href="org/apache/juneau/utils/SearchArgs.Builder.html" title="class in org.apache.juneau.utils">SearchArgs.Builder</a></dt>
+<dd>
+<div class="block">Specifies the list of columns to view.</div>
+</dd>
<dt><span class="memberNameLink"><a href="org/apache/juneau/microservice/resources/LogsResource.html#viewFile-org.apache.juneau.rest.RestRequest-org.apache.juneau.rest.RestResponse-java.lang.String-org.apache.juneau.ObjectMap-boolean-java.lang.String-java.lang.String-java.lang.String-java.lang.String:A-java.lang.String:A-">viewFile(RestRequest, RestResponse, String, ObjectMap, boolean, String, String, String, String[], String[])</a></span> - Method in class org.apache.juneau.microservice.resources.<a href="org/apache/juneau/microservice/resources/LogsResource.html" title="class in org.apache.juneau.microservice.resources">LogsResource</a></dt>
<dd>
<div class="block">[VIEW /*] - Retrieve the contents of a log file.</div>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/BeanMap.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanMap.html b/content/site/apidocs/org/apache/juneau/BeanMap.html
index fd73d3f..2448563 100644
--- a/content/site/apidocs/org/apache/juneau/BeanMap.html
+++ b/content/site/apidocs/org/apache/juneau/BeanMap.html
@@ -18,7 +18,7 @@
catch(err) {
}
//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
@@ -323,45 +323,52 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
</td>
</tr>
<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#getRaw-java.lang.Object-">getRaw</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> property)</code>
+<div class="block">Same as <a href="../../../org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>get(Object)</code></a> except bypasses the POJO filter associated with the bean property or
+ bean filter associated with the bean class.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau">BeanPropertyValue</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#getValues-boolean-org.apache.juneau.BeanPropertyValue...-">getValues</a></span>(boolean ignoreNulls,
<a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau">BeanPropertyValue</a>... prependVals)</code>
<div class="block">Invokes all the getters on this bean and return the values as a list of <a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau"><code>BeanPropertyValue</code></a> objects.</div>
</td>
</tr>
-<tr id="i12" class="altColor">
+<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#keySet--">keySet</a></span>()</code>
<div class="block">Returns the names of all properties associated with the bean.</div>
</td>
</tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#load-java.util.Map-">load</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a> entries)</code>
<div class="block">Convenience method for loading this map with the contents of the specified map.</div>
</td>
</tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#load-java.io.Reader-org.apache.juneau.parser.ReaderParser-">load</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
<a href="../../../org/apache/juneau/parser/ReaderParser.html" title="class in org.apache.juneau.parser">ReaderParser</a> p)</code>
<div class="block">Convenience method for setting multiple property values by passing in a reader.</div>
</td>
</tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#load-java.lang.String-">load</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> input)</code>
<div class="block">Convenience method for setting multiple property values by passing in JSON (or other) text.</div>
</td>
</tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#put-java.lang.String-java.lang.Object-">put</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> property,
<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</code>
<div class="block">Sets a property on the bean.</div>
</td>
</tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/juneau/BeanMap.html#resolveVars-java.lang.String-">resolveVars</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</code>
<div class="block">Given a string containing variables of the form <code>"{property}"</code>, replaces those variables with
@@ -667,13 +674,30 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
</dl>
</li>
</ul>
+<a name="getRaw-java.lang.Object-">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRaw</h4>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.292">getRaw</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> property)</pre>
+<div class="block">Same as <a href="../../../org/apache/juneau/BeanMap.html#get-java.lang.Object-"><code>get(Object)</code></a> except bypasses the POJO filter associated with the bean property or
+ bean filter associated with the bean class.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The name of the property to get.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The raw property value.</dd>
+</dl>
+</li>
+</ul>
<a name="load-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>load</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.301">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> input)
+<pre>public <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.316">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> input)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a></pre>
<div class="block">Convenience method for setting multiple property values by passing in JSON (or other) text.
<p>
@@ -701,7 +725,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>load</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.315">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
+<pre>public <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.330">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a> r,
<a href="../../../org/apache/juneau/parser/ReaderParser.html" title="class in org.apache.juneau.parser">ReaderParser</a> p)
throws <a href="../../../org/apache/juneau/parser/ParseException.html" title="class in org.apache.juneau.parser">ParseException</a>,
<a href="http://docs.oracle.com/javase/7/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -724,7 +748,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>load</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.329">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a> entries)</pre>
+<pre>public <a href="../../../org/apache/juneau/BeanMap.html" title="class in org.apache.juneau">BeanMap</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.344">load</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a> entries)</pre>
<div class="block">Convenience method for loading this map with the contents of the specified map.
<p>
Identical to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/AbstractMap.html?is-external=true#putAll-java.util.Map-" title="class or interface in java.util"><code>AbstractMap.putAll(Map)</code></a> except as a fluent-style method.</div>
@@ -742,7 +766,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>keySet</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.340">keySet</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.355">keySet</a>()</pre>
<div class="block">Returns the names of all properties associated with the bean.
<p>
The returned set is unmodifiable.</div>
@@ -760,7 +784,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>getProperty</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanMapEntry.html" title="class in org.apache.juneau">BeanMapEntry</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.368">getProperty</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> propertyName)</pre>
+<pre>public <a href="../../../org/apache/juneau/BeanMapEntry.html" title="class in org.apache.juneau">BeanMapEntry</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.383">getProperty</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> propertyName)</pre>
<div class="block">Returns the specified property on this bean map.
<p>
Allows you to get and set an individual property on a bean without having a
@@ -783,7 +807,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>getPropertyMeta</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.381">getPropertyMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> propertyName)</pre>
+<pre>public <a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.396">getPropertyMeta</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> propertyName)</pre>
<div class="block">Returns the metadata on the specified property.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
@@ -799,7 +823,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>getClassMeta</h4>
-<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.394">getClassMeta</a>()</pre>
+<pre>public <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau">ClassMeta</a><<a href="../../../org/apache/juneau/BeanMap.html" title="type parameter in BeanMap">T</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.409">getClassMeta</a>()</pre>
<div class="block">Returns the <a href="../../../org/apache/juneau/ClassMeta.html" title="class in org.apache.juneau"><code>ClassMeta</code></a> of the wrapped bean.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -815,7 +839,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>getValues</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau">BeanPropertyValue</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.410">getValues</a>(boolean ignoreNulls,
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau">BeanPropertyValue</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.425">getValues</a>(boolean ignoreNulls,
<a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau">BeanPropertyValue</a>... prependVals)</pre>
<div class="block">Invokes all the getters on this bean and return the values as a list of <a href="../../../org/apache/juneau/BeanPropertyValue.html" title="class in org.apache.juneau"><code>BeanPropertyValue</code></a> objects.
<p>
@@ -836,7 +860,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>resolveVars</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.449">resolveVars</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.464">resolveVars</a>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> s)</pre>
<div class="block">Given a string containing variables of the form <code>"{property}"</code>, replaces those variables with
property values in this bean.</div>
<dl>
@@ -853,7 +877,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockList">
<li class="blockList">
<h4>getProperties</h4>
-<pre>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.457">getProperties</a>()</pre>
+<pre>protected <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.472">getProperties</a>()</pre>
<div class="block">Returns a simple collection of properties for this bean map.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
@@ -867,7 +891,7 @@ implements <a href="../../../org/apache/juneau/Delegate.html" title="interface i
<ul class="blockListLast">
<li class="blockList">
<h4>entrySet</h4>
-<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.466">entrySet</a>()</pre>
+<pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.Entry.html?is-external=true" title="class or interface in java.util">Map.Entry</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>>> <a href="../../../src-html/org/apache/juneau/BeanMap.html#line.481">entrySet</a>()</pre>
<div class="block">Returns all the properties associated with the bean.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
index b3c9680..554c6c7 100644
--- a/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
+++ b/content/site/apidocs/org/apache/juneau/BeanPropertyMeta.Builder.html
@@ -215,7 +215,7 @@ extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?
<ul class="blockListLast">
<li class="blockList">
<h4>build</h4>
-<pre>public <a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.Builder.html#line.223">build</a>()</pre>
+<pre>public <a href="../../../org/apache/juneau/BeanPropertyMeta.html" title="class in org.apache.juneau">BeanPropertyMeta</a> <a href="../../../src-html/org/apache/juneau/BeanPropertyMeta.Builder.html#line.221">build</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new BeanPropertyMeta object using this builder.</dd>
[06/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/RequestFormData.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RequestFormData.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RequestFormData.html
index c7d0716..bd36e44 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/RequestFormData.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RequestFormData.html
@@ -102,7 +102,7 @@
<span class="sourceLineNo">094</span> * @param name The form data parameter name.<a name="line.94"></a>
<span class="sourceLineNo">095</span> * @return The parameter value, or <jk>null</jk> if parameter does not exist.<a name="line.95"></a>
<span class="sourceLineNo">096</span> */<a name="line.96"></a>
-<span class="sourceLineNo">097</span> public String getFirst(String name) {<a name="line.97"></a>
+<span class="sourceLineNo">097</span> public String getString(String name) {<a name="line.97"></a>
<span class="sourceLineNo">098</span> String[] v = get(name);<a name="line.98"></a>
<span class="sourceLineNo">099</span> if (v == null || v.length == 0)<a name="line.99"></a>
<span class="sourceLineNo">100</span> return null;<a name="line.100"></a>
@@ -117,207 +117,251 @@
<span class="sourceLineNo">109</span> }<a name="line.109"></a>
<span class="sourceLineNo">110</span><a name="line.110"></a>
<span class="sourceLineNo">111</span> /**<a name="line.111"></a>
-<span class="sourceLineNo">112</span> * Same as {@link #getFirst(String)} except returns a default value if <jk>null</jk> or empty.<a name="line.112"></a>
+<span class="sourceLineNo">112</span> * Same as {@link #getString(String)} except returns a default value if <jk>null</jk> or empty.<a name="line.112"></a>
<span class="sourceLineNo">113</span> *<a name="line.113"></a>
<span class="sourceLineNo">114</span> * @param name The form data parameter name.<a name="line.114"></a>
<span class="sourceLineNo">115</span> * @param def The default value.<a name="line.115"></a>
-<span class="sourceLineNo">116</span> * @return The parameter value, or the default value if <jk>null</jk> or empty.<a name="line.116"></a>
+<span class="sourceLineNo">116</span> * @return The parameter value, or the default value if parameter does not exist or is <jk>null</jk> or empty.<a name="line.116"></a>
<span class="sourceLineNo">117</span> */<a name="line.117"></a>
-<span class="sourceLineNo">118</span> public String getFirst(String name, String def) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span> String s = getFirst(name);<a name="line.119"></a>
+<span class="sourceLineNo">118</span> public String getString(String name, String def) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> String s = getString(name);<a name="line.119"></a>
<span class="sourceLineNo">120</span> return StringUtils.isEmpty(s) ? def : s;<a name="line.120"></a>
<span class="sourceLineNo">121</span> }<a name="line.121"></a>
<span class="sourceLineNo">122</span><a name="line.122"></a>
<span class="sourceLineNo">123</span> /**<a name="line.123"></a>
-<span class="sourceLineNo">124</span> * Returns the specified form data parameter value converted to a POJO using the<a name="line.124"></a>
-<span class="sourceLineNo">125</span> * {@link UrlEncodingParser} registered with this servlet.<a name="line.125"></a>
-<span class="sourceLineNo">126</span> * <p><a name="line.126"></a>
-<span class="sourceLineNo">127</span> * <h5 class='section'>Examples:</h5><a name="line.127"></a>
-<span class="sourceLineNo">128</span> * <p class='bcode'><a name="line.128"></a>
-<span class="sourceLineNo">129</span> * <jc>// Parse into an integer.</jc><a name="line.129"></a>
-<span class="sourceLineNo">130</span> * <jk>int</jk> myparam = req.getFormDataParameter(<js>"myparam"</js>, <jk>int</jk>.<jk>class</jk>);<a name="line.130"></a>
-<span class="sourceLineNo">131</span> *<a name="line.131"></a>
-<span class="sourceLineNo">132</span> * <jc>// Parse into an int array.</jc><a name="line.132"></a>
-<span class="sourceLineNo">133</span> * <jk>int</jk>[] myparam = req.getFormDataParameter(<js>"myparam"</js>, <jk>int</jk>[].<jk>class</jk>);<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> * <jc>// Parse into a bean.</jc><a name="line.135"></a>
-<span class="sourceLineNo">136</span> * MyBean myparam = req.getFormDataParameter(<js>"myparam"</js>, MyBean.<jk>class</jk>);<a name="line.136"></a>
-<span class="sourceLineNo">137</span> *<a name="line.137"></a>
-<span class="sourceLineNo">138</span> * <jc>// Parse into a linked-list of objects.</jc><a name="line.138"></a>
-<span class="sourceLineNo">139</span> * List myparam = req.getFormDataParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> *<a name="line.140"></a>
-<span class="sourceLineNo">141</span> * <jc>// Parse into a map of object keys/values.</jc><a name="line.141"></a>
-<span class="sourceLineNo">142</span> * Map myparam = req.getFormDataParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>);<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * </p><a name="line.143"></a>
-<span class="sourceLineNo">144</span> * <p><a name="line.144"></a>
-<span class="sourceLineNo">145</span> * <h5 class='section'>Notes:</h5><a name="line.145"></a>
-<span class="sourceLineNo">146</span> * <ul><a name="line.146"></a>
-<span class="sourceLineNo">147</span> * <li>Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by the underlying servlet API.<a name="line.147"></a>
-<span class="sourceLineNo">148</span> * </ul><a name="line.148"></a>
-<span class="sourceLineNo">149</span> *<a name="line.149"></a>
-<span class="sourceLineNo">150</span> * @param name The parameter name.<a name="line.150"></a>
-<span class="sourceLineNo">151</span> * @param type The class type to convert the parameter value to.<a name="line.151"></a>
-<span class="sourceLineNo">152</span> * @param <T> The class type to convert the parameter value to.<a name="line.152"></a>
-<span class="sourceLineNo">153</span> * @return The parameter value converted to the specified class type.<a name="line.153"></a>
-<span class="sourceLineNo">154</span> * @throws ParseException<a name="line.154"></a>
-<span class="sourceLineNo">155</span> */<a name="line.155"></a>
-<span class="sourceLineNo">156</span> public <T> T get(String name, Class<T> type) throws ParseException {<a name="line.156"></a>
-<span class="sourceLineNo">157</span> return parse(name, beanSession.getClassMeta(type));<a name="line.157"></a>
-<span class="sourceLineNo">158</span> }<a name="line.158"></a>
-<span class="sourceLineNo">159</span><a name="line.159"></a>
-<span class="sourceLineNo">160</span> /**<a name="line.160"></a>
-<span class="sourceLineNo">161</span> * Same as {@link #get(String, Class)} except returns a default value if not specified.<a name="line.161"></a>
-<span class="sourceLineNo">162</span> *<a name="line.162"></a>
-<span class="sourceLineNo">163</span> * @param name The parameter name.<a name="line.163"></a>
-<span class="sourceLineNo">164</span> * @param def The default value if the parameter was not specified or is <jk>null</jk>.<a name="line.164"></a>
-<span class="sourceLineNo">165</span> * @param type The class type to convert the parameter value to.<a name="line.165"></a>
-<span class="sourceLineNo">166</span> * @param <T> The class type to convert the parameter value to.<a name="line.166"></a>
-<span class="sourceLineNo">167</span> * @return The parameter value converted to the specified class type.<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * @throws ParseException<a name="line.168"></a>
-<span class="sourceLineNo">169</span> */<a name="line.169"></a>
-<span class="sourceLineNo">170</span> public <T> T get(String name, T def, Class<T> type) throws ParseException {<a name="line.170"></a>
-<span class="sourceLineNo">171</span> return parse(name, def, beanSession.getClassMeta(type));<a name="line.171"></a>
-<span class="sourceLineNo">172</span> }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span> /**<a name="line.174"></a>
-<span class="sourceLineNo">175</span> * Same as {@link #get(String, Class)} except for use on multi-part parameters<a name="line.175"></a>
-<span class="sourceLineNo">176</span> * (e.g. <js>"key=1&amp;key=2&amp;key=3"</js> instead of <js>"key=(1,2,3)"</js>)<a name="line.176"></a>
-<span class="sourceLineNo">177</span> * <p><a name="line.177"></a>
-<span class="sourceLineNo">178</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.178"></a>
-<span class="sourceLineNo">179</span> *<a name="line.179"></a>
-<span class="sourceLineNo">180</span> * @param name The parameter name.<a name="line.180"></a>
-<span class="sourceLineNo">181</span> * @param type The class type to convert the parameter value to.<a name="line.181"></a>
-<span class="sourceLineNo">182</span> * @return The parameter value converted to the specified class type.<a name="line.182"></a>
-<span class="sourceLineNo">183</span> * @throws ParseException<a name="line.183"></a>
-<span class="sourceLineNo">184</span> */<a name="line.184"></a>
-<span class="sourceLineNo">185</span> public <T> T getAll(String name, Class<T> type) throws ParseException {<a name="line.185"></a>
-<span class="sourceLineNo">186</span> return parseAll(name, beanSession.getClassMeta(type));<a name="line.186"></a>
-<span class="sourceLineNo">187</span> }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span> /**<a name="line.189"></a>
-<span class="sourceLineNo">190</span> * Returns the specified form data parameter value converted to a POJO using the<a name="line.190"></a>
-<span class="sourceLineNo">191</span> * {@link UrlEncodingParser} registered with this servlet.<a name="line.191"></a>
-<span class="sourceLineNo">192</span> * <p><a name="line.192"></a>
-<span class="sourceLineNo">193</span> * <h5 class='section'>Notes:</h5><a name="line.193"></a>
-<span class="sourceLineNo">194</span> * <ul><a name="line.194"></a>
-<span class="sourceLineNo">195</span> * <li>Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by the underlying servlet API.<a name="line.195"></a>
-<span class="sourceLineNo">196</span> * <li>Use this method if you want to parse into a parameterized <code>Map</code>/<code>Collection</code> object.<a name="line.196"></a>
-<span class="sourceLineNo">197</span> * </ul><a name="line.197"></a>
-<span class="sourceLineNo">198</span> * <p><a name="line.198"></a>
-<span class="sourceLineNo">199</span> * <h5 class='section'>Examples:</h5><a name="line.199"></a>
-<span class="sourceLineNo">200</span> * <p class='bcode'><a name="line.200"></a>
-<span class="sourceLineNo">201</span> * <jc>// Parse into a linked-list of strings.</jc><a name="line.201"></a>
-<span class="sourceLineNo">202</span> * List&lt;String&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.202"></a>
-<span class="sourceLineNo">203</span> *<a name="line.203"></a>
-<span class="sourceLineNo">204</span> * <jc>// Parse into a linked-list of linked-lists of strings.</jc><a name="line.204"></a>
-<span class="sourceLineNo">205</span> * List&lt;List&lt;String&gt;&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.205"></a>
+<span class="sourceLineNo">124</span> * Same as {@link #getString(String)} but converts the value to an integer.<a name="line.124"></a>
+<span class="sourceLineNo">125</span> *<a name="line.125"></a>
+<span class="sourceLineNo">126</span> * @param name The form data parameter name.<a name="line.126"></a>
+<span class="sourceLineNo">127</span> * @return The parameter value, or <code>0</code> if parameter does not exist or is <jk>null</jk> or empty.<a name="line.127"></a>
+<span class="sourceLineNo">128</span> */<a name="line.128"></a>
+<span class="sourceLineNo">129</span> public int getInt(String name) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span> return getInt(name, 0);<a name="line.130"></a>
+<span class="sourceLineNo">131</span> }<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span> /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span> * Same as {@link #getString(String,String)} but converts the value to an integer.<a name="line.134"></a>
+<span class="sourceLineNo">135</span> *<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * @param name The form data parameter name.<a name="line.136"></a>
+<span class="sourceLineNo">137</span> * @param def The default value.<a name="line.137"></a>
+<span class="sourceLineNo">138</span> * @return The parameter value, or the default value if parameter does not exist or is <jk>null</jk> or empty.<a name="line.138"></a>
+<span class="sourceLineNo">139</span> */<a name="line.139"></a>
+<span class="sourceLineNo">140</span> public int getInt(String name, int def) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> String s = getString(name);<a name="line.141"></a>
+<span class="sourceLineNo">142</span> return StringUtils.isEmpty(s) ? def : Integer.parseInt(s);<a name="line.142"></a>
+<span class="sourceLineNo">143</span> }<a name="line.143"></a>
+<span class="sourceLineNo">144</span><a name="line.144"></a>
+<span class="sourceLineNo">145</span> /**<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * Same as {@link #getString(String)} but converts the value to a boolean.<a name="line.146"></a>
+<span class="sourceLineNo">147</span> *<a name="line.147"></a>
+<span class="sourceLineNo">148</span> * @param name The form data parameter name.<a name="line.148"></a>
+<span class="sourceLineNo">149</span> * @return The parameter value, or <jk>false</jk> if parameter does not exist or is <jk>null</jk> or empty.<a name="line.149"></a>
+<span class="sourceLineNo">150</span> */<a name="line.150"></a>
+<span class="sourceLineNo">151</span> public boolean getBoolean(String name) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span> return getBoolean(name, false);<a name="line.152"></a>
+<span class="sourceLineNo">153</span> }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span> /**<a name="line.155"></a>
+<span class="sourceLineNo">156</span> * Same as {@link #getString(String,String)} but converts the value to a boolean.<a name="line.156"></a>
+<span class="sourceLineNo">157</span> *<a name="line.157"></a>
+<span class="sourceLineNo">158</span> * @param name The form data parameter name.<a name="line.158"></a>
+<span class="sourceLineNo">159</span> * @param def The default value.<a name="line.159"></a>
+<span class="sourceLineNo">160</span> * @return The parameter value, or the default value if parameter does not exist or is <jk>null</jk> or empty.<a name="line.160"></a>
+<span class="sourceLineNo">161</span> */<a name="line.161"></a>
+<span class="sourceLineNo">162</span> public boolean getBoolean(String name, boolean def) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span> String s = getString(name);<a name="line.163"></a>
+<span class="sourceLineNo">164</span> return StringUtils.isEmpty(s) ? def : Boolean.parseBoolean(s);<a name="line.164"></a>
+<span class="sourceLineNo">165</span> }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span> /**<a name="line.167"></a>
+<span class="sourceLineNo">168</span> * Returns the specified form data parameter value converted to a POJO using the<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * {@link UrlEncodingParser} registered with this servlet.<a name="line.169"></a>
+<span class="sourceLineNo">170</span> * <p><a name="line.170"></a>
+<span class="sourceLineNo">171</span> * <h5 class='section'>Examples:</h5><a name="line.171"></a>
+<span class="sourceLineNo">172</span> * <p class='bcode'><a name="line.172"></a>
+<span class="sourceLineNo">173</span> * <jc>// Parse into an integer.</jc><a name="line.173"></a>
+<span class="sourceLineNo">174</span> * <jk>int</jk> myparam = req.getFormDataParameter(<js>"myparam"</js>, <jk>int</jk>.<jk>class</jk>);<a name="line.174"></a>
+<span class="sourceLineNo">175</span> *<a name="line.175"></a>
+<span class="sourceLineNo">176</span> * <jc>// Parse into an int array.</jc><a name="line.176"></a>
+<span class="sourceLineNo">177</span> * <jk>int</jk>[] myparam = req.getFormDataParameter(<js>"myparam"</js>, <jk>int</jk>[].<jk>class</jk>);<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span> * <jc>// Parse into a bean.</jc><a name="line.179"></a>
+<span class="sourceLineNo">180</span> * MyBean myparam = req.getFormDataParameter(<js>"myparam"</js>, MyBean.<jk>class</jk>);<a name="line.180"></a>
+<span class="sourceLineNo">181</span> *<a name="line.181"></a>
+<span class="sourceLineNo">182</span> * <jc>// Parse into a linked-list of objects.</jc><a name="line.182"></a>
+<span class="sourceLineNo">183</span> * List myparam = req.getFormDataParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>);<a name="line.183"></a>
+<span class="sourceLineNo">184</span> *<a name="line.184"></a>
+<span class="sourceLineNo">185</span> * <jc>// Parse into a map of object keys/values.</jc><a name="line.185"></a>
+<span class="sourceLineNo">186</span> * Map myparam = req.getFormDataParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>);<a name="line.186"></a>
+<span class="sourceLineNo">187</span> * </p><a name="line.187"></a>
+<span class="sourceLineNo">188</span> * <p><a name="line.188"></a>
+<span class="sourceLineNo">189</span> * <h5 class='section'>Notes:</h5><a name="line.189"></a>
+<span class="sourceLineNo">190</span> * <ul><a name="line.190"></a>
+<span class="sourceLineNo">191</span> * <li>Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by the underlying servlet API.<a name="line.191"></a>
+<span class="sourceLineNo">192</span> * </ul><a name="line.192"></a>
+<span class="sourceLineNo">193</span> *<a name="line.193"></a>
+<span class="sourceLineNo">194</span> * @param name The parameter name.<a name="line.194"></a>
+<span class="sourceLineNo">195</span> * @param type The class type to convert the parameter value to.<a name="line.195"></a>
+<span class="sourceLineNo">196</span> * @param <T> The class type to convert the parameter value to.<a name="line.196"></a>
+<span class="sourceLineNo">197</span> * @return The parameter value converted to the specified class type.<a name="line.197"></a>
+<span class="sourceLineNo">198</span> * @throws ParseException<a name="line.198"></a>
+<span class="sourceLineNo">199</span> */<a name="line.199"></a>
+<span class="sourceLineNo">200</span> public <T> T get(String name, Class<T> type) throws ParseException {<a name="line.200"></a>
+<span class="sourceLineNo">201</span> return parse(name, beanSession.getClassMeta(type));<a name="line.201"></a>
+<span class="sourceLineNo">202</span> }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span> /**<a name="line.204"></a>
+<span class="sourceLineNo">205</span> * Same as {@link #get(String, Class)} except returns a default value if not specified.<a name="line.205"></a>
<span class="sourceLineNo">206</span> *<a name="line.206"></a>
-<span class="sourceLineNo">207</span> * <jc>// Parse into a map of string keys/values.</jc><a name="line.207"></a>
-<span class="sourceLineNo">208</span> * Map&lt;String,String&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);<a name="line.208"></a>
-<span class="sourceLineNo">209</span> *<a name="line.209"></a>
-<span class="sourceLineNo">210</span> * <jc>// Parse into a map containing string keys and values of lists containing beans.</jc><a name="line.210"></a>
-<span class="sourceLineNo">211</span> * Map&lt;String,List&lt;MyBean&gt;&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);<a name="line.211"></a>
-<span class="sourceLineNo">212</span> * </p><a name="line.212"></a>
-<span class="sourceLineNo">213</span> *<a name="line.213"></a>
-<span class="sourceLineNo">214</span> * @param name The parameter name.<a name="line.214"></a>
-<span class="sourceLineNo">215</span> * @param type The type of object to create.<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.218"></a>
-<span class="sourceLineNo">219</span> * <br>Ignored if the main type is not a map or collection.<a name="line.219"></a>
-<span class="sourceLineNo">220</span> * @return The parameter value converted to the specified class type.<a name="line.220"></a>
-<span class="sourceLineNo">221</span> * @throws ParseException<a name="line.221"></a>
-<span class="sourceLineNo">222</span> */<a name="line.222"></a>
-<span class="sourceLineNo">223</span> public <T> T get(String name, Type type, Type...args) throws ParseException {<a name="line.223"></a>
-<span class="sourceLineNo">224</span> return (T)parse(name, beanSession.getClassMeta(type, args));<a name="line.224"></a>
-<span class="sourceLineNo">225</span> }<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span> /**<a name="line.227"></a>
-<span class="sourceLineNo">228</span> * Same as {@link #get(String, Type, Type...)} except for use on multi-part parameters<a name="line.228"></a>
-<span class="sourceLineNo">229</span> * (e.g. <js>"key=1&amp;key=2&amp;key=3"</js> instead of <js>"key=(1,2,3)"</js>)<a name="line.229"></a>
-<span class="sourceLineNo">230</span> * <p><a name="line.230"></a>
-<span class="sourceLineNo">231</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.231"></a>
-<span class="sourceLineNo">232</span> *<a name="line.232"></a>
-<span class="sourceLineNo">233</span> * @param name The parameter name.<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * @param type The type of object to create.<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.235"></a>
-<span class="sourceLineNo">236</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * <br>Ignored if the main type is not a map or collection.<a name="line.238"></a>
-<span class="sourceLineNo">239</span> * @return The parameter value converted to the specified class type.<a name="line.239"></a>
-<span class="sourceLineNo">240</span> * @throws ParseException<a name="line.240"></a>
-<span class="sourceLineNo">241</span> */<a name="line.241"></a>
-<span class="sourceLineNo">242</span> public <T> T getAll(String name, Type type, Type...args) throws ParseException {<a name="line.242"></a>
-<span class="sourceLineNo">243</span> return (T)parseAll(name, beanSession.getClassMeta(type, args));<a name="line.243"></a>
-<span class="sourceLineNo">244</span> }<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span> /* Workhorse method */<a name="line.246"></a>
-<span class="sourceLineNo">247</span> <T> T parse(String name, T def, ClassMeta<T> cm) throws ParseException {<a name="line.247"></a>
-<span class="sourceLineNo">248</span> String val = getFirst(name);<a name="line.248"></a>
-<span class="sourceLineNo">249</span> if (val == null)<a name="line.249"></a>
-<span class="sourceLineNo">250</span> return def;<a name="line.250"></a>
-<span class="sourceLineNo">251</span> return parseValue(val, cm);<a name="line.251"></a>
-<span class="sourceLineNo">252</span> }<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span> /* Workhorse method */<a name="line.254"></a>
-<span class="sourceLineNo">255</span> <T> T parse(String name, ClassMeta<T> cm) throws ParseException {<a name="line.255"></a>
-<span class="sourceLineNo">256</span> String val = getFirst(name);<a name="line.256"></a>
-<span class="sourceLineNo">257</span> if (cm.isPrimitive() && (val == null || val.isEmpty()))<a name="line.257"></a>
-<span class="sourceLineNo">258</span> return cm.getPrimitiveDefault();<a name="line.258"></a>
-<span class="sourceLineNo">259</span> return parseValue(val, cm);<a name="line.259"></a>
-<span class="sourceLineNo">260</span> }<a name="line.260"></a>
-<span class="sourceLineNo">261</span><a name="line.261"></a>
-<span class="sourceLineNo">262</span> /* Workhorse method */<a name="line.262"></a>
-<span class="sourceLineNo">263</span> @SuppressWarnings("rawtypes")<a name="line.263"></a>
-<span class="sourceLineNo">264</span> <T> T parseAll(String name, ClassMeta<T> cm) throws ParseException {<a name="line.264"></a>
-<span class="sourceLineNo">265</span> String[] p = get(name);<a name="line.265"></a>
-<span class="sourceLineNo">266</span> if (p == null)<a name="line.266"></a>
-<span class="sourceLineNo">267</span> return null;<a name="line.267"></a>
-<span class="sourceLineNo">268</span> if (cm.isArray()) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span> List c = new ArrayList();<a name="line.269"></a>
-<span class="sourceLineNo">270</span> for (int i = 0; i < p.length; i++)<a name="line.270"></a>
-<span class="sourceLineNo">271</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.271"></a>
-<span class="sourceLineNo">272</span> return (T)toArray(c, cm.getElementType().getInnerClass());<a name="line.272"></a>
-<span class="sourceLineNo">273</span> } else if (cm.isCollection()) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span> try {<a name="line.274"></a>
-<span class="sourceLineNo">275</span> Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());<a name="line.275"></a>
-<span class="sourceLineNo">276</span> for (int i = 0; i < p.length; i++)<a name="line.276"></a>
-<span class="sourceLineNo">277</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.277"></a>
-<span class="sourceLineNo">278</span> return (T)c;<a name="line.278"></a>
-<span class="sourceLineNo">279</span> } catch (ParseException e) {<a name="line.279"></a>
-<span class="sourceLineNo">280</span> throw e;<a name="line.280"></a>
-<span class="sourceLineNo">281</span> } catch (Exception e) {<a name="line.281"></a>
-<span class="sourceLineNo">282</span> // Typically an instantiation exception.<a name="line.282"></a>
-<span class="sourceLineNo">283</span> throw new ParseException(e);<a name="line.283"></a>
-<span class="sourceLineNo">284</span> }<a name="line.284"></a>
-<span class="sourceLineNo">285</span> }<a name="line.285"></a>
-<span class="sourceLineNo">286</span> throw new ParseException("Invalid call to getParameters(String, ClassMeta). Class type must be a Collection or array.");<a name="line.286"></a>
-<span class="sourceLineNo">287</span> }<a name="line.287"></a>
-<span class="sourceLineNo">288</span><a name="line.288"></a>
-<span class="sourceLineNo">289</span> private <T> T parseValue(String val, ClassMeta<T> c) throws ParseException {<a name="line.289"></a>
-<span class="sourceLineNo">290</span> return parser.parse(PartType.FORM_DATA, val, c);<a name="line.290"></a>
-<span class="sourceLineNo">291</span> }<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span> /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span> * Converts the form data parameters to a readable string.<a name="line.294"></a>
-<span class="sourceLineNo">295</span> *<a name="line.295"></a>
-<span class="sourceLineNo">296</span> * @param sorted Sort the form data parameters by name.<a name="line.296"></a>
-<span class="sourceLineNo">297</span> * @return A JSON string containing the contents of the form data parameters.<a name="line.297"></a>
-<span class="sourceLineNo">298</span> */<a name="line.298"></a>
-<span class="sourceLineNo">299</span> public String toString(boolean sorted) {<a name="line.299"></a>
-<span class="sourceLineNo">300</span> Map<String,Object> m = (sorted ? new TreeMap<String,Object>() : new LinkedHashMap<String,Object>());<a name="line.300"></a>
-<span class="sourceLineNo">301</span> for (Map.Entry<String,String[]> e : this.entrySet()) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span> String[] v = e.getValue();<a name="line.302"></a>
-<span class="sourceLineNo">303</span> m.put(e.getKey(), v.length == 1 ? v[0] : v);<a name="line.303"></a>
-<span class="sourceLineNo">304</span> }<a name="line.304"></a>
-<span class="sourceLineNo">305</span> return JsonSerializer.DEFAULT_LAX.toString(m);<a name="line.305"></a>
-<span class="sourceLineNo">306</span> }<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span> @Override /* Object */<a name="line.308"></a>
-<span class="sourceLineNo">309</span> public String toString() {<a name="line.309"></a>
-<span class="sourceLineNo">310</span> return toString(false);<a name="line.310"></a>
-<span class="sourceLineNo">311</span> }<a name="line.311"></a>
-<span class="sourceLineNo">312</span>}<a name="line.312"></a>
+<span class="sourceLineNo">207</span> * @param name The parameter name.<a name="line.207"></a>
+<span class="sourceLineNo">208</span> * @param def The default value if the parameter was not specified or is <jk>null</jk>.<a name="line.208"></a>
+<span class="sourceLineNo">209</span> * @param type The class type to convert the parameter value to.<a name="line.209"></a>
+<span class="sourceLineNo">210</span> * @param <T> The class type to convert the parameter value to.<a name="line.210"></a>
+<span class="sourceLineNo">211</span> * @return The parameter value converted to the specified class type.<a name="line.211"></a>
+<span class="sourceLineNo">212</span> * @throws ParseException<a name="line.212"></a>
+<span class="sourceLineNo">213</span> */<a name="line.213"></a>
+<span class="sourceLineNo">214</span> public <T> T get(String name, T def, Class<T> type) throws ParseException {<a name="line.214"></a>
+<span class="sourceLineNo">215</span> return parse(name, def, beanSession.getClassMeta(type));<a name="line.215"></a>
+<span class="sourceLineNo">216</span> }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span> /**<a name="line.218"></a>
+<span class="sourceLineNo">219</span> * Same as {@link #get(String, Class)} except for use on multi-part parameters<a name="line.219"></a>
+<span class="sourceLineNo">220</span> * (e.g. <js>"key=1&amp;key=2&amp;key=3"</js> instead of <js>"key=(1,2,3)"</js>)<a name="line.220"></a>
+<span class="sourceLineNo">221</span> * <p><a name="line.221"></a>
+<span class="sourceLineNo">222</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.222"></a>
+<span class="sourceLineNo">223</span> *<a name="line.223"></a>
+<span class="sourceLineNo">224</span> * @param name The parameter name.<a name="line.224"></a>
+<span class="sourceLineNo">225</span> * @param type The class type to convert the parameter value to.<a name="line.225"></a>
+<span class="sourceLineNo">226</span> * @return The parameter value converted to the specified class type.<a name="line.226"></a>
+<span class="sourceLineNo">227</span> * @throws ParseException<a name="line.227"></a>
+<span class="sourceLineNo">228</span> */<a name="line.228"></a>
+<span class="sourceLineNo">229</span> public <T> T getAll(String name, Class<T> type) throws ParseException {<a name="line.229"></a>
+<span class="sourceLineNo">230</span> return parseAll(name, beanSession.getClassMeta(type));<a name="line.230"></a>
+<span class="sourceLineNo">231</span> }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span> /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span> * Returns the specified form data parameter value converted to a POJO using the<a name="line.234"></a>
+<span class="sourceLineNo">235</span> * {@link UrlEncodingParser} registered with this servlet.<a name="line.235"></a>
+<span class="sourceLineNo">236</span> * <p><a name="line.236"></a>
+<span class="sourceLineNo">237</span> * <h5 class='section'>Notes:</h5><a name="line.237"></a>
+<span class="sourceLineNo">238</span> * <ul><a name="line.238"></a>
+<span class="sourceLineNo">239</span> * <li>Calling this method on URL-Encoded FORM posts causes the body content to be loaded and parsed by the underlying servlet API.<a name="line.239"></a>
+<span class="sourceLineNo">240</span> * <li>Use this method if you want to parse into a parameterized <code>Map</code>/<code>Collection</code> object.<a name="line.240"></a>
+<span class="sourceLineNo">241</span> * </ul><a name="line.241"></a>
+<span class="sourceLineNo">242</span> * <p><a name="line.242"></a>
+<span class="sourceLineNo">243</span> * <h5 class='section'>Examples:</h5><a name="line.243"></a>
+<span class="sourceLineNo">244</span> * <p class='bcode'><a name="line.244"></a>
+<span class="sourceLineNo">245</span> * <jc>// Parse into a linked-list of strings.</jc><a name="line.245"></a>
+<span class="sourceLineNo">246</span> * List&lt;String&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.246"></a>
+<span class="sourceLineNo">247</span> *<a name="line.247"></a>
+<span class="sourceLineNo">248</span> * <jc>// Parse into a linked-list of linked-lists of strings.</jc><a name="line.248"></a>
+<span class="sourceLineNo">249</span> * List&lt;List&lt;String&gt;&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, LinkedList.<jk>class</jk>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.249"></a>
+<span class="sourceLineNo">250</span> *<a name="line.250"></a>
+<span class="sourceLineNo">251</span> * <jc>// Parse into a map of string keys/values.</jc><a name="line.251"></a>
+<span class="sourceLineNo">252</span> * Map&lt;String,String&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, String.<jk>class</jk>);<a name="line.252"></a>
+<span class="sourceLineNo">253</span> *<a name="line.253"></a>
+<span class="sourceLineNo">254</span> * <jc>// Parse into a map containing string keys and values of lists containing beans.</jc><a name="line.254"></a>
+<span class="sourceLineNo">255</span> * Map&lt;String,List&lt;MyBean&gt;&gt; myparam = req.getFormDataParameter(<js>"myparam"</js>, TreeMap.<jk>class</jk>, String.<jk>class</jk>, List.<jk>class</jk>, MyBean.<jk>class</jk>);<a name="line.255"></a>
+<span class="sourceLineNo">256</span> * </p><a name="line.256"></a>
+<span class="sourceLineNo">257</span> *<a name="line.257"></a>
+<span class="sourceLineNo">258</span> * @param name The parameter name.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> * @param type The type of object to create.<a name="line.259"></a>
+<span class="sourceLineNo">260</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.260"></a>
+<span class="sourceLineNo">261</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.261"></a>
+<span class="sourceLineNo">262</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.262"></a>
+<span class="sourceLineNo">263</span> * <br>Ignored if the main type is not a map or collection.<a name="line.263"></a>
+<span class="sourceLineNo">264</span> * @return The parameter value converted to the specified class type.<a name="line.264"></a>
+<span class="sourceLineNo">265</span> * @throws ParseException<a name="line.265"></a>
+<span class="sourceLineNo">266</span> */<a name="line.266"></a>
+<span class="sourceLineNo">267</span> public <T> T get(String name, Type type, Type...args) throws ParseException {<a name="line.267"></a>
+<span class="sourceLineNo">268</span> return (T)parse(name, beanSession.getClassMeta(type, args));<a name="line.268"></a>
+<span class="sourceLineNo">269</span> }<a name="line.269"></a>
+<span class="sourceLineNo">270</span><a name="line.270"></a>
+<span class="sourceLineNo">271</span> /**<a name="line.271"></a>
+<span class="sourceLineNo">272</span> * Same as {@link #get(String, Type, Type...)} except for use on multi-part parameters<a name="line.272"></a>
+<span class="sourceLineNo">273</span> * (e.g. <js>"key=1&amp;key=2&amp;key=3"</js> instead of <js>"key=(1,2,3)"</js>)<a name="line.273"></a>
+<span class="sourceLineNo">274</span> * <p><a name="line.274"></a>
+<span class="sourceLineNo">275</span> * This method must only be called when parsing into classes of type Collection or array.<a name="line.275"></a>
+<span class="sourceLineNo">276</span> *<a name="line.276"></a>
+<span class="sourceLineNo">277</span> * @param name The parameter name.<a name="line.277"></a>
+<span class="sourceLineNo">278</span> * @param type The type of object to create.<a name="line.278"></a>
+<span class="sourceLineNo">279</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.279"></a>
+<span class="sourceLineNo">280</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.280"></a>
+<span class="sourceLineNo">281</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.281"></a>
+<span class="sourceLineNo">282</span> * <br>Ignored if the main type is not a map or collection.<a name="line.282"></a>
+<span class="sourceLineNo">283</span> * @return The parameter value converted to the specified class type.<a name="line.283"></a>
+<span class="sourceLineNo">284</span> * @throws ParseException<a name="line.284"></a>
+<span class="sourceLineNo">285</span> */<a name="line.285"></a>
+<span class="sourceLineNo">286</span> public <T> T getAll(String name, Type type, Type...args) throws ParseException {<a name="line.286"></a>
+<span class="sourceLineNo">287</span> return (T)parseAll(name, beanSession.getClassMeta(type, args));<a name="line.287"></a>
+<span class="sourceLineNo">288</span> }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span> /* Workhorse method */<a name="line.290"></a>
+<span class="sourceLineNo">291</span> <T> T parse(String name, T def, ClassMeta<T> cm) throws ParseException {<a name="line.291"></a>
+<span class="sourceLineNo">292</span> String val = getString(name);<a name="line.292"></a>
+<span class="sourceLineNo">293</span> if (val == null)<a name="line.293"></a>
+<span class="sourceLineNo">294</span> return def;<a name="line.294"></a>
+<span class="sourceLineNo">295</span> return parseValue(val, cm);<a name="line.295"></a>
+<span class="sourceLineNo">296</span> }<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span> /* Workhorse method */<a name="line.298"></a>
+<span class="sourceLineNo">299</span> <T> T parse(String name, ClassMeta<T> cm) throws ParseException {<a name="line.299"></a>
+<span class="sourceLineNo">300</span> String val = getString(name);<a name="line.300"></a>
+<span class="sourceLineNo">301</span> if (cm.isPrimitive() && (val == null || val.isEmpty()))<a name="line.301"></a>
+<span class="sourceLineNo">302</span> return cm.getPrimitiveDefault();<a name="line.302"></a>
+<span class="sourceLineNo">303</span> return parseValue(val, cm);<a name="line.303"></a>
+<span class="sourceLineNo">304</span> }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span> /* Workhorse method */<a name="line.306"></a>
+<span class="sourceLineNo">307</span> @SuppressWarnings("rawtypes")<a name="line.307"></a>
+<span class="sourceLineNo">308</span> <T> T parseAll(String name, ClassMeta<T> cm) throws ParseException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span> String[] p = get(name);<a name="line.309"></a>
+<span class="sourceLineNo">310</span> if (p == null)<a name="line.310"></a>
+<span class="sourceLineNo">311</span> return null;<a name="line.311"></a>
+<span class="sourceLineNo">312</span> if (cm.isArray()) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span> List c = new ArrayList();<a name="line.313"></a>
+<span class="sourceLineNo">314</span> for (int i = 0; i < p.length; i++)<a name="line.314"></a>
+<span class="sourceLineNo">315</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.315"></a>
+<span class="sourceLineNo">316</span> return (T)toArray(c, cm.getElementType().getInnerClass());<a name="line.316"></a>
+<span class="sourceLineNo">317</span> } else if (cm.isCollection()) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span> try {<a name="line.318"></a>
+<span class="sourceLineNo">319</span> Collection c = (Collection)(cm.canCreateNewInstance() ? cm.newInstance() : new ObjectList());<a name="line.319"></a>
+<span class="sourceLineNo">320</span> for (int i = 0; i < p.length; i++)<a name="line.320"></a>
+<span class="sourceLineNo">321</span> c.add(parseValue(p[i], cm.getElementType()));<a name="line.321"></a>
+<span class="sourceLineNo">322</span> return (T)c;<a name="line.322"></a>
+<span class="sourceLineNo">323</span> } catch (ParseException e) {<a name="line.323"></a>
+<span class="sourceLineNo">324</span> throw e;<a name="line.324"></a>
+<span class="sourceLineNo">325</span> } catch (Exception e) {<a name="line.325"></a>
+<span class="sourceLineNo">326</span> // Typically an instantiation exception.<a name="line.326"></a>
+<span class="sourceLineNo">327</span> throw new ParseException(e);<a name="line.327"></a>
+<span class="sourceLineNo">328</span> }<a name="line.328"></a>
+<span class="sourceLineNo">329</span> }<a name="line.329"></a>
+<span class="sourceLineNo">330</span> throw new ParseException("Invalid call to getParameters(String, ClassMeta). Class type must be a Collection or array.");<a name="line.330"></a>
+<span class="sourceLineNo">331</span> }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span> private <T> T parseValue(String val, ClassMeta<T> c) throws ParseException {<a name="line.333"></a>
+<span class="sourceLineNo">334</span> return parser.parse(PartType.FORM_DATA, val, c);<a name="line.334"></a>
+<span class="sourceLineNo">335</span> }<a name="line.335"></a>
+<span class="sourceLineNo">336</span><a name="line.336"></a>
+<span class="sourceLineNo">337</span> /**<a name="line.337"></a>
+<span class="sourceLineNo">338</span> * Converts the form data parameters to a readable string.<a name="line.338"></a>
+<span class="sourceLineNo">339</span> *<a name="line.339"></a>
+<span class="sourceLineNo">340</span> * @param sorted Sort the form data parameters by name.<a name="line.340"></a>
+<span class="sourceLineNo">341</span> * @return A JSON string containing the contents of the form data parameters.<a name="line.341"></a>
+<span class="sourceLineNo">342</span> */<a name="line.342"></a>
+<span class="sourceLineNo">343</span> public String toString(boolean sorted) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span> Map<String,Object> m = (sorted ? new TreeMap<String,Object>() : new LinkedHashMap<String,Object>());<a name="line.344"></a>
+<span class="sourceLineNo">345</span> for (Map.Entry<String,String[]> e : this.entrySet()) {<a name="line.345"></a>
+<span class="sourceLineNo">346</span> String[] v = e.getValue();<a name="line.346"></a>
+<span class="sourceLineNo">347</span> m.put(e.getKey(), v.length == 1 ? v[0] : v);<a name="line.347"></a>
+<span class="sourceLineNo">348</span> }<a name="line.348"></a>
+<span class="sourceLineNo">349</span> return JsonSerializer.DEFAULT_LAX.toString(m);<a name="line.349"></a>
+<span class="sourceLineNo">350</span> }<a name="line.350"></a>
+<span class="sourceLineNo">351</span><a name="line.351"></a>
+<span class="sourceLineNo">352</span> @Override /* Object */<a name="line.352"></a>
+<span class="sourceLineNo">353</span> public String toString() {<a name="line.353"></a>
+<span class="sourceLineNo">354</span> return toString(false);<a name="line.354"></a>
+<span class="sourceLineNo">355</span> }<a name="line.355"></a>
+<span class="sourceLineNo">356</span>}<a name="line.356"></a>
[05/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/rest/RequestHeaders.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/rest/RequestHeaders.html b/content/site/apidocs/src-html/org/apache/juneau/rest/RequestHeaders.html
index fea687b..35f6ab6 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/rest/RequestHeaders.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/rest/RequestHeaders.html
@@ -112,7 +112,7 @@
<span class="sourceLineNo">104</span> * @param name The header name.<a name="line.104"></a>
<span class="sourceLineNo">105</span> * @return The header value, or <jk>null</jk> if it doesn't exist.<a name="line.105"></a>
<span class="sourceLineNo">106</span> */<a name="line.106"></a>
-<span class="sourceLineNo">107</span> public String getFirst(String name) {<a name="line.107"></a>
+<span class="sourceLineNo">107</span> public String getString(String name) {<a name="line.107"></a>
<span class="sourceLineNo">108</span> String[] v = null;<a name="line.108"></a>
<span class="sourceLineNo">109</span> if (queryParams != null)<a name="line.109"></a>
<span class="sourceLineNo">110</span> v = queryParams.get(name);<a name="line.110"></a>
@@ -132,601 +132,645 @@
<span class="sourceLineNo">124</span> * @param def The default value to return if the header value isn't found.<a name="line.124"></a>
<span class="sourceLineNo">125</span> * @return The header value, or the default value if the header isn't present.<a name="line.125"></a>
<span class="sourceLineNo">126</span> */<a name="line.126"></a>
-<span class="sourceLineNo">127</span> public String getFirst(String name, String def) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span> String s = getFirst(name);<a name="line.128"></a>
+<span class="sourceLineNo">127</span> public String getString(String name, String def) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span> String s = getString(name);<a name="line.128"></a>
<span class="sourceLineNo">129</span> return StringUtils.isEmpty(s) ? def : s;<a name="line.129"></a>
<span class="sourceLineNo">130</span> }<a name="line.130"></a>
<span class="sourceLineNo">131</span><a name="line.131"></a>
<span class="sourceLineNo">132</span> /**<a name="line.132"></a>
-<span class="sourceLineNo">133</span> * Sets a request header value.<a name="line.133"></a>
+<span class="sourceLineNo">133</span> * Same as {@link #getString(String)} but converts the value to an integer.<a name="line.133"></a>
<span class="sourceLineNo">134</span> *<a name="line.134"></a>
-<span class="sourceLineNo">135</span> * @param name The header name.<a name="line.135"></a>
-<span class="sourceLineNo">136</span> * @param value The header value.<a name="line.136"></a>
+<span class="sourceLineNo">135</span> * @param name The HTTP header name.<a name="line.135"></a>
+<span class="sourceLineNo">136</span> * @return The header value, or the default value if the header isn't present.<a name="line.136"></a>
<span class="sourceLineNo">137</span> */<a name="line.137"></a>
-<span class="sourceLineNo">138</span> public void put(String name, Object value) {<a name="line.138"></a>
-<span class="sourceLineNo">139</span> super.put(name, new String[]{StringUtils.toString(value)});<a name="line.139"></a>
+<span class="sourceLineNo">138</span> public int getInt(String name) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span> return getInt(name, 0);<a name="line.139"></a>
<span class="sourceLineNo">140</span> }<a name="line.140"></a>
<span class="sourceLineNo">141</span><a name="line.141"></a>
<span class="sourceLineNo">142</span> /**<a name="line.142"></a>
-<span class="sourceLineNo">143</span> * Returns the specified header value converted to a POJO.<a name="line.143"></a>
-<span class="sourceLineNo">144</span> * <p><a name="line.144"></a>
-<span class="sourceLineNo">145</span> * The type can be any POJO type convertable from a <code>String</code><a name="line.145"></a>
-<span class="sourceLineNo">146</span> * (See <a class="doclink" href="package-summary.html#PojosConvertableFromString">POJOs Convertable From Strings</a>).<a name="line.146"></a>
-<span class="sourceLineNo">147</span> * <p><a name="line.147"></a>
-<span class="sourceLineNo">148</span> * <h5 class='section'>Examples:</h5><a name="line.148"></a>
-<span class="sourceLineNo">149</span> * <p class='bcode'><a name="line.149"></a>
-<span class="sourceLineNo">150</span> * <jc>// Parse into an integer.</jc><a name="line.150"></a>
-<span class="sourceLineNo">151</span> * <jk>int</jk> myheader = req.getHeader(<js>"My-Header"</js>, <jk>int</jk>.<jk>class</jk>);<a name="line.151"></a>
-<span class="sourceLineNo">152</span> *<a name="line.152"></a>
-<span class="sourceLineNo">153</span> * <jc>// Parse a UUID.</jc><a name="line.153"></a>
-<span class="sourceLineNo">154</span> * UUID myheader = req.getHeader(<js>"My-Header"</js>, UUID.<jk>class</jk>);<a name="line.154"></a>
-<span class="sourceLineNo">155</span> * </p><a name="line.155"></a>
+<span class="sourceLineNo">143</span> * Same as {@link #getString(String,String)} but converts the value to an integer.<a name="line.143"></a>
+<span class="sourceLineNo">144</span> *<a name="line.144"></a>
+<span class="sourceLineNo">145</span> * @param name The HTTP header name.<a name="line.145"></a>
+<span class="sourceLineNo">146</span> * @param def The default value to return if the header value isn't found.<a name="line.146"></a>
+<span class="sourceLineNo">147</span> * @return The header value, or the default value if the header isn't present.<a name="line.147"></a>
+<span class="sourceLineNo">148</span> */<a name="line.148"></a>
+<span class="sourceLineNo">149</span> public int getInt(String name, int def) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span> String s = getString(name);<a name="line.150"></a>
+<span class="sourceLineNo">151</span> return StringUtils.isEmpty(s) ? def : Integer.parseInt(s);<a name="line.151"></a>
+<span class="sourceLineNo">152</span> }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span> /**<a name="line.154"></a>
+<span class="sourceLineNo">155</span> * Same as {@link #getString(String)} but converts the value to a boolean.<a name="line.155"></a>
<span class="sourceLineNo">156</span> *<a name="line.156"></a>
<span class="sourceLineNo">157</span> * @param name The HTTP header name.<a name="line.157"></a>
-<span class="sourceLineNo">158</span> * @param type The class type to convert the header value to.<a name="line.158"></a>
-<span class="sourceLineNo">159</span> * @param <T> The class type to convert the header value to.<a name="line.159"></a>
-<span class="sourceLineNo">160</span> * @return The parameter value converted to the specified class type.<a name="line.160"></a>
-<span class="sourceLineNo">161</span> */<a name="line.161"></a>
-<span class="sourceLineNo">162</span> public <T> T get(String name, Class<T> type) {<a name="line.162"></a>
-<span class="sourceLineNo">163</span> String h = getFirst(name);<a name="line.163"></a>
-<span class="sourceLineNo">164</span> return beanSession.convertToType(h, type);<a name="line.164"></a>
-<span class="sourceLineNo">165</span> }<a name="line.165"></a>
-<span class="sourceLineNo">166</span><a name="line.166"></a>
-<span class="sourceLineNo">167</span> /**<a name="line.167"></a>
-<span class="sourceLineNo">168</span> * Same as {@link #get(String, Class)} but returns a default value if not found.<a name="line.168"></a>
-<span class="sourceLineNo">169</span> *<a name="line.169"></a>
-<span class="sourceLineNo">170</span> * @param name The HTTP header name.<a name="line.170"></a>
-<span class="sourceLineNo">171</span> * @param def The default value if the header was not specified or is <jk>null</jk>.<a name="line.171"></a>
-<span class="sourceLineNo">172</span> * @param type The class type to convert the header value to.<a name="line.172"></a>
-<span class="sourceLineNo">173</span> * @param <T> The class type to convert the header value to.<a name="line.173"></a>
-<span class="sourceLineNo">174</span> * @return The parameter value converted to the specified class type.<a name="line.174"></a>
-<span class="sourceLineNo">175</span> */<a name="line.175"></a>
-<span class="sourceLineNo">176</span> public <T> T get(String name, T def, Class<T> type) {<a name="line.176"></a>
-<span class="sourceLineNo">177</span> String h = getFirst(name);<a name="line.177"></a>
-<span class="sourceLineNo">178</span> if (h == null)<a name="line.178"></a>
-<span class="sourceLineNo">179</span> return def;<a name="line.179"></a>
-<span class="sourceLineNo">180</span> return beanSession.convertToType(h, type);<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> /**<a name="line.183"></a>
-<span class="sourceLineNo">184</span> * Returns the specified header value converted to a POJO.<a name="line.184"></a>
-<span class="sourceLineNo">185</span> * <p><a name="line.185"></a>
-<span class="sourceLineNo">186</span> * The type can be any POJO type convertable from a <code>String</code><a name="line.186"></a>
-<span class="sourceLineNo">187</span> * (See <a class="doclink" href="package-summary.html#PojosConvertableFromString">POJOs Convertable From Strings</a>).<a name="line.187"></a>
+<span class="sourceLineNo">158</span> * @return The header value, or the default value if the header isn't present.<a name="line.158"></a>
+<span class="sourceLineNo">159</span> */<a name="line.159"></a>
+<span class="sourceLineNo">160</span> public boolean getBoolean(String name) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span> return getBoolean(name, false);<a name="line.161"></a>
+<span class="sourceLineNo">162</span> }<a name="line.162"></a>
+<span class="sourceLineNo">163</span><a name="line.163"></a>
+<span class="sourceLineNo">164</span> /**<a name="line.164"></a>
+<span class="sourceLineNo">165</span> * Same as {@link #getString(String,String)} but converts the value to a boolean.<a name="line.165"></a>
+<span class="sourceLineNo">166</span> *<a name="line.166"></a>
+<span class="sourceLineNo">167</span> * @param name The HTTP header name.<a name="line.167"></a>
+<span class="sourceLineNo">168</span> * @param def The default value to return if the header value isn't found.<a name="line.168"></a>
+<span class="sourceLineNo">169</span> * @return The header value, or the default value if the header isn't present.<a name="line.169"></a>
+<span class="sourceLineNo">170</span> */<a name="line.170"></a>
+<span class="sourceLineNo">171</span> public boolean getBoolean(String name, boolean def) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span> String s = getString(name);<a name="line.172"></a>
+<span class="sourceLineNo">173</span> return StringUtils.isEmpty(s) ? def : Boolean.parseBoolean(s);<a name="line.173"></a>
+<span class="sourceLineNo">174</span> }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span> /**<a name="line.176"></a>
+<span class="sourceLineNo">177</span> * Sets a request header value.<a name="line.177"></a>
+<span class="sourceLineNo">178</span> *<a name="line.178"></a>
+<span class="sourceLineNo">179</span> * @param name The header name.<a name="line.179"></a>
+<span class="sourceLineNo">180</span> * @param value The header value.<a name="line.180"></a>
+<span class="sourceLineNo">181</span> */<a name="line.181"></a>
+<span class="sourceLineNo">182</span> public void put(String name, Object value) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span> super.put(name, new String[]{StringUtils.toString(value)});<a name="line.183"></a>
+<span class="sourceLineNo">184</span> }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span> /**<a name="line.186"></a>
+<span class="sourceLineNo">187</span> * Returns the specified header value converted to a POJO.<a name="line.187"></a>
<span class="sourceLineNo">188</span> * <p><a name="line.188"></a>
-<span class="sourceLineNo">189</span> * <h5 class='section'>Examples:</h5><a name="line.189"></a>
-<span class="sourceLineNo">190</span> * <p class='bcode'><a name="line.190"></a>
-<span class="sourceLineNo">191</span> * <jc>// Parse into a linked-list of strings.</jc><a name="line.191"></a>
-<span class="sourceLineNo">192</span> * List&lt;String&gt; myheader = req.getHeader(<js>"My-Header"</js>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.192"></a>
-<span class="sourceLineNo">193</span> * </p><a name="line.193"></a>
-<span class="sourceLineNo">194</span> *<a name="line.194"></a>
-<span class="sourceLineNo">195</span> * @param name The HTTP header name.<a name="line.195"></a>
-<span class="sourceLineNo">196</span> * @param type The type of object to create.<a name="line.196"></a>
-<span class="sourceLineNo">197</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.197"></a>
-<span class="sourceLineNo">198</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.198"></a>
-<span class="sourceLineNo">199</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.199"></a>
-<span class="sourceLineNo">200</span> * <br>Ignored if the main type is not a map or collection.<a name="line.200"></a>
-<span class="sourceLineNo">201</span> * @param <T> The class type to convert the header value to.<a name="line.201"></a>
-<span class="sourceLineNo">202</span> * @return The parameter value converted to the specified class type.<a name="line.202"></a>
-<span class="sourceLineNo">203</span> * @throws ParseException If the header could not be converted to the specified type.<a name="line.203"></a>
-<span class="sourceLineNo">204</span> */<a name="line.204"></a>
-<span class="sourceLineNo">205</span> @SuppressWarnings("unchecked")<a name="line.205"></a>
-<span class="sourceLineNo">206</span> public <T> T get(String name, Type type, Type...args) throws ParseException {<a name="line.206"></a>
-<span class="sourceLineNo">207</span> String h = getFirst(name);<a name="line.207"></a>
-<span class="sourceLineNo">208</span> return (T)parser.parse(PartType.HEADER, h, beanSession.getClassMeta(type, args));<a name="line.208"></a>
+<span class="sourceLineNo">189</span> * The type can be any POJO type convertable from a <code>String</code><a name="line.189"></a>
+<span class="sourceLineNo">190</span> * (See <a class="doclink" href="package-summary.html#PojosConvertableFromString">POJOs Convertable From Strings</a>).<a name="line.190"></a>
+<span class="sourceLineNo">191</span> * <p><a name="line.191"></a>
+<span class="sourceLineNo">192</span> * <h5 class='section'>Examples:</h5><a name="line.192"></a>
+<span class="sourceLineNo">193</span> * <p class='bcode'><a name="line.193"></a>
+<span class="sourceLineNo">194</span> * <jc>// Parse into an integer.</jc><a name="line.194"></a>
+<span class="sourceLineNo">195</span> * <jk>int</jk> myheader = req.getHeader(<js>"My-Header"</js>, <jk>int</jk>.<jk>class</jk>);<a name="line.195"></a>
+<span class="sourceLineNo">196</span> *<a name="line.196"></a>
+<span class="sourceLineNo">197</span> * <jc>// Parse a UUID.</jc><a name="line.197"></a>
+<span class="sourceLineNo">198</span> * UUID myheader = req.getHeader(<js>"My-Header"</js>, UUID.<jk>class</jk>);<a name="line.198"></a>
+<span class="sourceLineNo">199</span> * </p><a name="line.199"></a>
+<span class="sourceLineNo">200</span> *<a name="line.200"></a>
+<span class="sourceLineNo">201</span> * @param name The HTTP header name.<a name="line.201"></a>
+<span class="sourceLineNo">202</span> * @param type The class type to convert the header value to.<a name="line.202"></a>
+<span class="sourceLineNo">203</span> * @param <T> The class type to convert the header value to.<a name="line.203"></a>
+<span class="sourceLineNo">204</span> * @return The parameter value converted to the specified class type.<a name="line.204"></a>
+<span class="sourceLineNo">205</span> */<a name="line.205"></a>
+<span class="sourceLineNo">206</span> public <T> T get(String name, Class<T> type) {<a name="line.206"></a>
+<span class="sourceLineNo">207</span> String h = getString(name);<a name="line.207"></a>
+<span class="sourceLineNo">208</span> return beanSession.convertToType(h, type);<a name="line.208"></a>
<span class="sourceLineNo">209</span> }<a name="line.209"></a>
<span class="sourceLineNo">210</span><a name="line.210"></a>
<span class="sourceLineNo">211</span> /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span> * Returns a copy of this object, but only with the specified header names copied.<a name="line.212"></a>
-<span class="sourceLineNo">213</span> * @param headers The headers to include in the copy.<a name="line.213"></a>
-<span class="sourceLineNo">214</span> * @return A new headers object.<a name="line.214"></a>
-<span class="sourceLineNo">215</span> */<a name="line.215"></a>
-<span class="sourceLineNo">216</span> public RequestHeaders subset(String...headers) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span> RequestHeaders rh2 = new RequestHeaders().setParser(parser).setBeanSession(beanSession).setQueryParams(queryParams);<a name="line.217"></a>
-<span class="sourceLineNo">218</span> for (String h : headers)<a name="line.218"></a>
-<span class="sourceLineNo">219</span> if (containsKey(h))<a name="line.219"></a>
-<span class="sourceLineNo">220</span> rh2.put(h, get(h));<a name="line.220"></a>
-<span class="sourceLineNo">221</span> return rh2;<a name="line.221"></a>
-<span class="sourceLineNo">222</span> }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span> /**<a name="line.224"></a>
-<span class="sourceLineNo">225</span> * Same as {@link #subset(String...)}, but allows you to specify header names as a comma-delimited list.<a name="line.225"></a>
-<span class="sourceLineNo">226</span> * @param headers The headers to include in the copy.<a name="line.226"></a>
-<span class="sourceLineNo">227</span> * @return A new headers object.<a name="line.227"></a>
-<span class="sourceLineNo">228</span> */<a name="line.228"></a>
-<span class="sourceLineNo">229</span> public RequestHeaders subset(String headers) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span> return subset(split(headers, ','));<a name="line.230"></a>
-<span class="sourceLineNo">231</span> }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span> /**<a name="line.233"></a>
-<span class="sourceLineNo">234</span> * Returns the <code>Accept</code> header on the request.<a name="line.234"></a>
-<span class="sourceLineNo">235</span> * <p><a name="line.235"></a>
-<span class="sourceLineNo">236</span> * Content-Types that are acceptable for the response.<a name="line.236"></a>
-<span class="sourceLineNo">237</span> *<a name="line.237"></a>
-<span class="sourceLineNo">238</span> * <h6 class='figure'>Example:</h6><a name="line.238"></a>
-<span class="sourceLineNo">239</span> * <p class='bcode'><a name="line.239"></a>
-<span class="sourceLineNo">240</span> * Accept: text/plain<a name="line.240"></a>
-<span class="sourceLineNo">241</span> * </p><a name="line.241"></a>
-<span class="sourceLineNo">242</span> *<a name="line.242"></a>
-<span class="sourceLineNo">243</span> * @return The parsed <code>Accept</code> header on the request, or <jk>null</jk> if not found.<a name="line.243"></a>
-<span class="sourceLineNo">244</span> *<a name="line.244"></a>
-<span class="sourceLineNo">245</span> */<a name="line.245"></a>
-<span class="sourceLineNo">246</span> public Accept getAccept() {<a name="line.246"></a>
-<span class="sourceLineNo">247</span> return Accept.forString(getFirst("Accept"));<a name="line.247"></a>
-<span class="sourceLineNo">248</span> }<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span> /**<a name="line.250"></a>
-<span class="sourceLineNo">251</span> * Returns the <code>Accept-Charset</code> header on the request.<a name="line.251"></a>
-<span class="sourceLineNo">252</span> * <p><a name="line.252"></a>
-<span class="sourceLineNo">253</span> * Character sets that are acceptable.<a name="line.253"></a>
-<span class="sourceLineNo">254</span> *<a name="line.254"></a>
-<span class="sourceLineNo">255</span> * <h6 class='figure'>Example:</h6><a name="line.255"></a>
-<span class="sourceLineNo">256</span> * <p class='bcode'><a name="line.256"></a>
-<span class="sourceLineNo">257</span> * Accept-Charset: utf-8<a name="line.257"></a>
-<span class="sourceLineNo">258</span> * </p><a name="line.258"></a>
-<span class="sourceLineNo">259</span> *<a name="line.259"></a>
-<span class="sourceLineNo">260</span> * @return The parsed <code>Accept-Charset</code> header on the request, or <jk>null</jk> if not found.<a name="line.260"></a>
-<span class="sourceLineNo">261</span> */<a name="line.261"></a>
-<span class="sourceLineNo">262</span> public AcceptCharset getAcceptCharset() {<a name="line.262"></a>
-<span class="sourceLineNo">263</span> return AcceptCharset.forString(getFirst("Accept-Charset"));<a name="line.263"></a>
-<span class="sourceLineNo">264</span> }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span> /**<a name="line.266"></a>
-<span class="sourceLineNo">267</span> * Returns the <code>Accept-Encoding</code> header on the request.<a name="line.267"></a>
-<span class="sourceLineNo">268</span> * <p><a name="line.268"></a>
-<span class="sourceLineNo">269</span> * List of acceptable encodings.<a name="line.269"></a>
-<span class="sourceLineNo">270</span> *<a name="line.270"></a>
-<span class="sourceLineNo">271</span> * <h6 class='figure'>Example:</h6><a name="line.271"></a>
-<span class="sourceLineNo">272</span> * <p class='bcode'><a name="line.272"></a>
-<span class="sourceLineNo">273</span> * Accept-Encoding: gzip, deflate<a name="line.273"></a>
-<span class="sourceLineNo">274</span> * </p><a name="line.274"></a>
-<span class="sourceLineNo">275</span> *<a name="line.275"></a>
-<span class="sourceLineNo">276</span> * @return The parsed <code>Accept-Encoding</code> header on the request, or <jk>null</jk> if not found.<a name="line.276"></a>
-<span class="sourceLineNo">277</span> */<a name="line.277"></a>
-<span class="sourceLineNo">278</span> public AcceptEncoding getAcceptEncoding() {<a name="line.278"></a>
-<span class="sourceLineNo">279</span> return AcceptEncoding.forString(getFirst("Accept-Encoding"));<a name="line.279"></a>
-<span class="sourceLineNo">280</span> }<a name="line.280"></a>
-<span class="sourceLineNo">281</span><a name="line.281"></a>
-<span class="sourceLineNo">282</span> /**<a name="line.282"></a>
-<span class="sourceLineNo">283</span> * Returns the <code>Accept-Language</code> header on the request.<a name="line.283"></a>
-<span class="sourceLineNo">284</span> * <p><a name="line.284"></a>
-<span class="sourceLineNo">285</span> * List of acceptable human languages for response.<a name="line.285"></a>
+<span class="sourceLineNo">212</span> * Same as {@link #get(String, Class)} but returns a default value if not found.<a name="line.212"></a>
+<span class="sourceLineNo">213</span> *<a name="line.213"></a>
+<span class="sourceLineNo">214</span> * @param name The HTTP header name.<a name="line.214"></a>
+<span class="sourceLineNo">215</span> * @param def The default value if the header was not specified or is <jk>null</jk>.<a name="line.215"></a>
+<span class="sourceLineNo">216</span> * @param type The class type to convert the header value to.<a name="line.216"></a>
+<span class="sourceLineNo">217</span> * @param <T> The class type to convert the header value to.<a name="line.217"></a>
+<span class="sourceLineNo">218</span> * @return The parameter value converted to the specified class type.<a name="line.218"></a>
+<span class="sourceLineNo">219</span> */<a name="line.219"></a>
+<span class="sourceLineNo">220</span> public <T> T get(String name, T def, Class<T> type) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span> String h = getString(name);<a name="line.221"></a>
+<span class="sourceLineNo">222</span> if (h == null)<a name="line.222"></a>
+<span class="sourceLineNo">223</span> return def;<a name="line.223"></a>
+<span class="sourceLineNo">224</span> return beanSession.convertToType(h, type);<a name="line.224"></a>
+<span class="sourceLineNo">225</span> }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span> /**<a name="line.227"></a>
+<span class="sourceLineNo">228</span> * Returns the specified header value converted to a POJO.<a name="line.228"></a>
+<span class="sourceLineNo">229</span> * <p><a name="line.229"></a>
+<span class="sourceLineNo">230</span> * The type can be any POJO type convertable from a <code>String</code><a name="line.230"></a>
+<span class="sourceLineNo">231</span> * (See <a class="doclink" href="package-summary.html#PojosConvertableFromString">POJOs Convertable From Strings</a>).<a name="line.231"></a>
+<span class="sourceLineNo">232</span> * <p><a name="line.232"></a>
+<span class="sourceLineNo">233</span> * <h5 class='section'>Examples:</h5><a name="line.233"></a>
+<span class="sourceLineNo">234</span> * <p class='bcode'><a name="line.234"></a>
+<span class="sourceLineNo">235</span> * <jc>// Parse into a linked-list of strings.</jc><a name="line.235"></a>
+<span class="sourceLineNo">236</span> * List&lt;String&gt; myheader = req.getHeader(<js>"My-Header"</js>, LinkedList.<jk>class</jk>, String.<jk>class</jk>);<a name="line.236"></a>
+<span class="sourceLineNo">237</span> * </p><a name="line.237"></a>
+<span class="sourceLineNo">238</span> *<a name="line.238"></a>
+<span class="sourceLineNo">239</span> * @param name The HTTP header name.<a name="line.239"></a>
+<span class="sourceLineNo">240</span> * @param type The type of object to create.<a name="line.240"></a>
+<span class="sourceLineNo">241</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.241"></a>
+<span class="sourceLineNo">242</span> * @param args The type arguments of the class if it's a collection or map.<a name="line.242"></a>
+<span class="sourceLineNo">243</span> * <br>Can be any of the following: {@link ClassMeta}, {@link Class}, {@link ParameterizedType}, {@link GenericArrayType}<a name="line.243"></a>
+<span class="sourceLineNo">244</span> * <br>Ignored if the main type is not a map or collection.<a name="line.244"></a>
+<span class="sourceLineNo">245</span> * @param <T> The class type to convert the header value to.<a name="line.245"></a>
+<span class="sourceLineNo">246</span> * @return The parameter value converted to the specified class type.<a name="line.246"></a>
+<span class="sourceLineNo">247</span> * @throws ParseException If the header could not be converted to the specified type.<a name="line.247"></a>
+<span class="sourceLineNo">248</span> */<a name="line.248"></a>
+<span class="sourceLineNo">249</span> @SuppressWarnings("unchecked")<a name="line.249"></a>
+<span class="sourceLineNo">250</span> public <T> T get(String name, Type type, Type...args) throws ParseException {<a name="line.250"></a>
+<span class="sourceLineNo">251</span> String h = getString(name);<a name="line.251"></a>
+<span class="sourceLineNo">252</span> return (T)parser.parse(PartType.HEADER, h, beanSession.getClassMeta(type, args));<a name="line.252"></a>
+<span class="sourceLineNo">253</span> }<a name="line.253"></a>
+<span class="sourceLineNo">254</span><a name="line.254"></a>
+<span class="sourceLineNo">255</span> /**<a name="line.255"></a>
+<span class="sourceLineNo">256</span> * Returns a copy of this object, but only with the specified header names copied.<a name="line.256"></a>
+<span class="sourceLineNo">257</span> * @param headers The headers to include in the copy.<a name="line.257"></a>
+<span class="sourceLineNo">258</span> * @return A new headers object.<a name="line.258"></a>
+<span class="sourceLineNo">259</span> */<a name="line.259"></a>
+<span class="sourceLineNo">260</span> public RequestHeaders subset(String...headers) {<a name="line.260"></a>
+<span class="sourceLineNo">261</span> RequestHeaders rh2 = new RequestHeaders().setParser(parser).setBeanSession(beanSession).setQueryParams(queryParams);<a name="line.261"></a>
+<span class="sourceLineNo">262</span> for (String h : headers)<a name="line.262"></a>
+<span class="sourceLineNo">263</span> if (containsKey(h))<a name="line.263"></a>
+<span class="sourceLineNo">264</span> rh2.put(h, get(h));<a name="line.264"></a>
+<span class="sourceLineNo">265</span> return rh2;<a name="line.265"></a>
+<span class="sourceLineNo">266</span> }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span> /**<a name="line.268"></a>
+<span class="sourceLineNo">269</span> * Same as {@link #subset(String...)}, but allows you to specify header names as a comma-delimited list.<a name="line.269"></a>
+<span class="sourceLineNo">270</span> * @param headers The headers to include in the copy.<a name="line.270"></a>
+<span class="sourceLineNo">271</span> * @return A new headers object.<a name="line.271"></a>
+<span class="sourceLineNo">272</span> */<a name="line.272"></a>
+<span class="sourceLineNo">273</span> public RequestHeaders subset(String headers) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span> return subset(split(headers, ','));<a name="line.274"></a>
+<span class="sourceLineNo">275</span> }<a name="line.275"></a>
+<span class="sourceLineNo">276</span><a name="line.276"></a>
+<span class="sourceLineNo">277</span> /**<a name="line.277"></a>
+<span class="sourceLineNo">278</span> * Returns the <code>Accept</code> header on the request.<a name="line.278"></a>
+<span class="sourceLineNo">279</span> * <p><a name="line.279"></a>
+<span class="sourceLineNo">280</span> * Content-Types that are acceptable for the response.<a name="line.280"></a>
+<span class="sourceLineNo">281</span> *<a name="line.281"></a>
+<span class="sourceLineNo">282</span> * <h6 class='figure'>Example:</h6><a name="line.282"></a>
+<span class="sourceLineNo">283</span> * <p class='bcode'><a name="line.283"></a>
+<span class="sourceLineNo">284</span> * Accept: text/plain<a name="line.284"></a>
+<span class="sourceLineNo">285</span> * </p><a name="line.285"></a>
<span class="sourceLineNo">286</span> *<a name="line.286"></a>
-<span class="sourceLineNo">287</span> * <h6 class='figure'>Example:</h6><a name="line.287"></a>
-<span class="sourceLineNo">288</span> * <p class='bcode'><a name="line.288"></a>
-<span class="sourceLineNo">289</span> * Accept-Language: en-US<a name="line.289"></a>
-<span class="sourceLineNo">290</span> * </p><a name="line.290"></a>
-<span class="sourceLineNo">291</span> *<a name="line.291"></a>
-<span class="sourceLineNo">292</span> * @return The parsed <code>Accept-Language</code> header on the request, or <jk>null</jk> if not found.<a name="line.292"></a>
-<span class="sourceLineNo">293</span> */<a name="line.293"></a>
-<span class="sourceLineNo">294</span> public AcceptLanguage getAcceptLanguage() {<a name="line.294"></a>
-<span class="sourceLineNo">295</span> return AcceptLanguage.forString(getFirst("Accept-Language"));<a name="line.295"></a>
-<span class="sourceLineNo">296</span> }<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span> /**<a name="line.298"></a>
-<span class="sourceLineNo">299</span> * Returns the <code>Authorization</code> header on the request.<a name="line.299"></a>
-<span class="sourceLineNo">300</span> * <p><a name="line.300"></a>
-<span class="sourceLineNo">301</span> * Authentication credentials for HTTP authentication.<a name="line.301"></a>
-<span class="sourceLineNo">302</span> *<a name="line.302"></a>
-<span class="sourceLineNo">303</span> * <h6 class='figure'>Example:</h6><a name="line.303"></a>
-<span class="sourceLineNo">304</span> * <p class='bcode'><a name="line.304"></a>
-<span class="sourceLineNo">305</span> * Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==<a name="line.305"></a>
-<span class="sourceLineNo">306</span> * </p><a name="line.306"></a>
-<span class="sourceLineNo">307</span> *<a name="line.307"></a>
-<span class="sourceLineNo">308</span> * @return The parsed <code>Authorization</code> header on the request, or <jk>null</jk> if not found.<a name="line.308"></a>
-<span class="sourceLineNo">309</span> */<a name="line.309"></a>
-<span class="sourceLineNo">310</span> public Authorization getAuthorization() {<a name="line.310"></a>
-<span class="sourceLineNo">311</span> return Authorization.forString(getFirst("Authorization"));<a name="line.311"></a>
-<span class="sourceLineNo">312</span> }<a name="line.312"></a>
-<span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span> /**<a name="line.314"></a>
-<span class="sourceLineNo">315</span> * Returns the <code>Cache-Control</code> header on the request.<a name="line.315"></a>
-<span class="sourceLineNo">316</span> * <p><a name="line.316"></a>
-<span class="sourceLineNo">317</span> * Used to specify directives that must be obeyed by all caching mechanisms along the request-response chain.<a name="line.317"></a>
-<span class="sourceLineNo">318</span> *<a name="line.318"></a>
-<span class="sourceLineNo">319</span> * <h6 class='figure'>Example:</h6><a name="line.319"></a>
-<span class="sourceLineNo">320</span> * <p class='bcode'><a name="line.320"></a>
-<span class="sourceLineNo">321</span> * Cache-Control: no-cache<a name="line.321"></a>
-<span class="sourceLineNo">322</span> * </p><a name="line.322"></a>
-<span class="sourceLineNo">323</span> *<a name="line.323"></a>
-<span class="sourceLineNo">324</span> * @return The parsed <code>Cache-Control</code> header on the request, or <jk>null</jk> if not found.<a name="line.324"></a>
-<span class="sourceLineNo">325</span> */<a name="line.325"></a>
-<span class="sourceLineNo">326</span> public CacheControl getCacheControl() {<a name="line.326"></a>
-<span class="sourceLineNo">327</span> return CacheControl.forString(getFirst("Cache-Control"));<a name="line.327"></a>
-<span class="sourceLineNo">328</span> }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span> /**<a name="line.330"></a>
-<span class="sourceLineNo">331</span> * Returns the <code>Connection</code> header on the request.<a name="line.331"></a>
-<span class="sourceLineNo">332</span> * <p><a name="line.332"></a>
-<span class="sourceLineNo">333</span> * Control options for the current connection and list of hop-by-hop request fields.<a name="line.333"></a>
-<span class="sourceLineNo">334</span> *<a name="line.334"></a>
-<span class="sourceLineNo">335</span> * <h6 class='figure'>Example:</h6><a name="line.335"></a>
-<span class="sourceLineNo">336</span> * <p class='bcode'><a name="line.336"></a>
-<span class="sourceLineNo">337</span> * Connection: keep-alive<a name="line.337"></a>
-<span class="sourceLineNo">338</span> * Connection: Upgrade<a name="line.338"></a>
-<span class="sourceLineNo">339</span> * </p><a name="line.339"></a>
-<span class="sourceLineNo">340</span> *<a name="line.340"></a>
-<span class="sourceLineNo">341</span> * @return The parsed <code></code> header on the request, or <jk>null</jk> if not found.<a name="line.341"></a>
-<span class="sourceLineNo">342</span> */<a name="line.342"></a>
-<span class="sourceLineNo">343</span> public Connection getConnection() {<a name="line.343"></a>
-<span class="sourceLineNo">344</span> return Connection.forString(getFirst("Connection"));<a name="line.344"></a>
-<span class="sourceLineNo">345</span> }<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span> /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span> * Returns the <code>Content-Length</code> header on the request.<a name="line.348"></a>
-<span class="sourceLineNo">349</span> * <p><a name="line.349"></a>
-<span class="sourceLineNo">350</span> * The length of the request body in octets (8-bit bytes).<a name="line.350"></a>
+<span class="sourceLineNo">287</span> * @return The parsed <code>Accept</code> header on the request, or <jk>null</jk> if not found.<a name="line.287"></a>
+<span class="sourceLineNo">288</span> *<a name="line.288"></a>
+<span class="sourceLineNo">289</span> */<a name="line.289"></a>
+<span class="sourceLineNo">290</span> public Accept getAccept() {<a name="line.290"></a>
+<span class="sourceLineNo">291</span> return Accept.forString(getString("Accept"));<a name="line.291"></a>
+<span class="sourceLineNo">292</span> }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span> /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span> * Returns the <code>Accept-Charset</code> header on the request.<a name="line.295"></a>
+<span class="sourceLineNo">296</span> * <p><a name="line.296"></a>
+<span class="sourceLineNo">297</span> * Character sets that are acceptable.<a name="line.297"></a>
+<span class="sourceLineNo">298</span> *<a name="line.298"></a>
+<span class="sourceLineNo">299</span> * <h6 class='figure'>Example:</h6><a name="line.299"></a>
+<span class="sourceLineNo">300</span> * <p class='bcode'><a name="line.300"></a>
+<span class="sourceLineNo">301</span> * Accept-Charset: utf-8<a name="line.301"></a>
+<span class="sourceLineNo">302</span> * </p><a name="line.302"></a>
+<span class="sourceLineNo">303</span> *<a name="line.303"></a>
+<span class="sourceLineNo">304</span> * @return The parsed <code>Accept-Charset</code> header on the request, or <jk>null</jk> if not found.<a name="line.304"></a>
+<span class="sourceLineNo">305</span> */<a name="line.305"></a>
+<span class="sourceLineNo">306</span> public AcceptCharset getAcceptCharset() {<a name="line.306"></a>
+<span class="sourceLineNo">307</span> return AcceptCharset.forString(getString("Accept-Charset"));<a name="line.307"></a>
+<span class="sourceLineNo">308</span> }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span> /**<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * Returns the <code>Accept-Encoding</code> header on the request.<a name="line.311"></a>
+<span class="sourceLineNo">312</span> * <p><a name="line.312"></a>
+<span class="sourceLineNo">313</span> * List of acceptable encodings.<a name="line.313"></a>
+<span class="sourceLineNo">314</span> *<a name="line.314"></a>
+<span class="sourceLineNo">315</span> * <h6 class='figure'>Example:</h6><a name="line.315"></a>
+<span class="sourceLineNo">316</span> * <p class='bcode'><a name="line.316"></a>
+<span class="sourceLineNo">317</span> * Accept-Encoding: gzip, deflate<a name="line.317"></a>
+<span class="sourceLineNo">318</span> * </p><a name="line.318"></a>
+<span class="sourceLineNo">319</span> *<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * @return The parsed <code>Accept-Encoding</code> header on the request, or <jk>null</jk> if not found.<a name="line.320"></a>
+<span class="sourceLineNo">321</span> */<a name="line.321"></a>
+<span class="sourceLineNo">322</span> public AcceptEncoding getAcceptEncoding() {<a name="line.322"></a>
+<span class="sourceLineNo">323</span> return AcceptEncoding.forString(getString("Accept-Encoding"));<a name="line.323"></a>
+<span class="sourceLineNo">324</span> }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span> /**<a name="line.326"></a>
+<span class="sourceLineNo">327</span> * Returns the <code>Accept-Language</code> header on the request.<a name="line.327"></a>
+<span class="sourceLineNo">328</span> * <p><a name="line.328"></a>
+<span class="sourceLineNo">329</span> * List of acceptable human languages for response.<a name="line.329"></a>
+<span class="sourceLineNo">330</span> *<a name="line.330"></a>
+<span class="sourceLineNo">331</span> * <h6 class='figure'>Example:</h6><a name="line.331"></a>
+<span class="sourceLineNo">332</span> * <p class='bcode'><a name="line.332"></a>
+<span class="sourceLineNo">333</span> * Accept-Language: en-US<a name="line.333"></a>
+<span class="sourceLineNo">334</span> * </p><a name="line.334"></a>
+<span class="sourceLineNo">335</span> *<a name="line.335"></a>
+<span class="sourceLineNo">336</span> * @return The parsed <code>Accept-Language</code> header on the request, or <jk>null</jk> if not found.<a name="line.336"></a>
+<span class="sourceLineNo">337</span> */<a name="line.337"></a>
+<span class="sourceLineNo">338</span> public AcceptLanguage getAcceptLanguage() {<a name="line.338"></a>
+<span class="sourceLineNo">339</span> return AcceptLanguage.forString(getString("Accept-Language"));<a name="line.339"></a>
+<span class="sourceLineNo">340</span> }<a name="line.340"></a>
+<span class="sourceLineNo">341</span><a name="line.341"></a>
+<span class="sourceLineNo">342</span> /**<a name="line.342"></a>
+<span class="sourceLineNo">343</span> * Returns the <code>Authorization</code> header on the request.<a name="line.343"></a>
+<span class="sourceLineNo">344</span> * <p><a name="line.344"></a>
+<span class="sourceLineNo">345</span> * Authentication credentials for HTTP authentication.<a name="line.345"></a>
+<span class="sourceLineNo">346</span> *<a name="line.346"></a>
+<span class="sourceLineNo">347</span> * <h6 class='figure'>Example:</h6><a name="line.347"></a>
+<span class="sourceLineNo">348</span> * <p class='bcode'><a name="line.348"></a>
+<span class="sourceLineNo">349</span> * Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==<a name="line.349"></a>
+<span class="sourceLineNo">350</span> * </p><a name="line.350"></a>
<span class="sourceLineNo">351</span> *<a name="line.351"></a>
-<span class="sourceLineNo">352</span> * <h6 class='figure'>Example:</h6><a name="line.352"></a>
-<span class="sourceLineNo">353</span> * <p class='bcode'><a name="line.353"></a>
-<span class="sourceLineNo">354</span> * Content-Length: 348<a name="line.354"></a>
-<span class="sourceLineNo">355</span> * </p><a name="line.355"></a>
-<span class="sourceLineNo">356</span> *<a name="line.356"></a>
-<span class="sourceLineNo">357</span> * @return The parsed <code>Content-Length</code> header on the request, or <jk>null</jk> if not found.<a name="line.357"></a>
-<span class="sourceLineNo">358</span> */<a name="line.358"></a>
-<span class="sourceLineNo">359</span> public ContentLength getContentLength() {<a name="line.359"></a>
-<span class="sourceLineNo">360</span> return ContentLength.forString(getFirst("Content-Length"));<a name="line.360"></a>
-<span class="sourceLineNo">361</span> }<a name="line.361"></a>
-<span class="sourceLineNo">362</span><a name="line.362"></a>
-<span class="sourceLineNo">363</span> /**<a name="line.363"></a>
-<span class="sourceLineNo">364</span> * Returns the <code>Content-Type</code> header on the request.<a name="line.364"></a>
-<span class="sourceLineNo">365</span> * <p><a name="line.365"></a>
-<span class="sourceLineNo">366</span> * The MIME type of the body of the request (used with POST and PUT requests).<a name="line.366"></a>
+<span class="sourceLineNo">352</span> * @return The parsed <code>Authorization</code> header on the request, or <jk>null</jk> if not found.<a name="line.352"></a>
+<span class="sourceLineNo">353</span> */<a name="line.353"></a>
+<span class="sourceLineNo">354</span> public Authorization getAuthorization() {<a name="line.354"></a>
+<span class="sourceLineNo">355</span> return Authorization.forString(getString("Authorization"));<a name="line.355"></a>
+<span class="sourceLineNo">356</span> }<a name="line.356"></a>
+<span class="sourceLineNo">357</span><a name="line.357"></a>
+<span class="sourceLineNo">358</span> /**<a name="line.358"></a>
+<span class="sourceLineNo">359</span> * Returns the <code>Cache-Control</code> header on the request.<a name="line.359"></a>
+<span class="sourceLineNo">360</span> * <p><a name="line.360"></a>
+<span class="sourceLineNo">361</span> * Used to specify directives that must be obeyed by all caching mechanisms along the request-response chain.<a name="line.361"></a>
+<span class="sourceLineNo">362</span> *<a name="line.362"></a>
+<span class="sourceLineNo">363</span> * <h6 class='figure'>Example:</h6><a name="line.363"></a>
+<span class="sourceLineNo">364</span> * <p class='bcode'><a name="line.364"></a>
+<span class="sourceLineNo">365</span> * Cache-Control: no-cache<a name="line.365"></a>
+<span class="sourceLineNo">366</span> * </p><a name="line.366"></a>
<span class="sourceLineNo">367</span> *<a name="line.367"></a>
-<span class="sourceLineNo">368</span> * <h6 class='figure'>Example:</h6><a name="line.368"></a>
-<span class="sourceLineNo">369</span> * <p class='bcode'><a name="line.369"></a>
-<span class="sourceLineNo">370</span> * Content-Type: application/x-www-form-urlencoded<a name="line.370"></a>
-<span class="sourceLineNo">371</span> * </p><a name="line.371"></a>
-<span class="sourceLineNo">372</span> *<a name="line.372"></a>
-<span class="sourceLineNo">373</span> * @return The parsed <code>Content-Type</code> header on the request, or <jk>null</jk> if not found.<a name="line.373"></a>
-<span class="sourceLineNo">374</span> */<a name="line.374"></a>
-<span class="sourceLineNo">375</span> public ContentType getContentType() {<a name="line.375"></a>
-<span class="sourceLineNo">376</span> return ContentType.forString(getFirst("Content-Type"));<a name="line.376"></a>
-<span class="sourceLineNo">377</span> }<a name="line.377"></a>
-<span class="sourceLineNo">378</span><a name="line.378"></a>
-<span class="sourceLineNo">379</span> /**<a name="line.379"></a>
-<span class="sourceLineNo">380</span> * Returns the <code>Date</code> header on the request.<a name="line.380"></a>
-<span class="sourceLineNo">381</span> * <p><a name="line.381"></a>
-<span class="sourceLineNo">382</span> * The date and time that the message was originated (in "HTTP-date" format as defined by RFC 7231 Date/Time Formats).<a name="line.382"></a>
-<span class="sourceLineNo">383</span> *<a name="line.383"></a>
-<span class="sourceLineNo">384</span> * <h6 class='figure'>Example:</h6><a name="line.384"></a>
-<span class="sourceLineNo">385</span> * <p class='bcode'><a name="line.385"></a>
-<span class="sourceLineNo">386</span> * Date: Tue, 15 Nov 1994 08:12:31 GMT<a name="line.386"></a>
-<span class="sourceLineNo">387</span> * </p><a name="line.387"></a>
-<span class="sourceLineNo">388</span> *<a name="line.388"></a>
-<span class="sourceLineNo">389</span> * @return The parsed <code>Date</code> header on the request, or <jk>null</jk> if not found.<a name="line.389"></a>
-<span class="sourceLineNo">390</span> */<a name="line.390"></a>
-<span class="sourceLineNo">391</span> public Date getDate() {<a name="line.391"></a>
-<span class="sourceLineNo">392</span> return Date.forString(getFirst("Date"));<a name="line.392"></a>
-<span class="sourceLineNo">393</span> }<a name="line.393"></a>
-<span class="sourceLineNo">394</span><a name="line.394"></a>
-<span class="sourceLineNo">395</span> /**<a name="line.395"></a>
-<span class="sourceLineNo">396</span> * Returns the <code>Expect</code> header on the request.<a name="line.396"></a>
-<span class="sourceLineNo">397</span> * <p><a name="line.397"></a>
-<span class="sourceLineNo">398</span> * Indicates that particular server behaviors are required by the client.<a name="line.398"></a>
-<span class="sourceLineNo">399</span> *<a name="line.399"></a>
-<span class="sourceLineNo">400</span> * <h6 class='figure'>Example:</h6><a name="line.400"></a>
-<span class="sourceLineNo">401</span> * <p class='bcode'><a name="line.401"></a>
-<span class="sourceLineNo">402</span> * Expect: 100-continue<a name="line.402"></a>
-<span class="sourceLineNo">403</span> * </p><a name="line.403"></a>
-<span class="sourceLineNo">404</span> *<a name="line.404"></a>
-<span class="sourceLineNo">405</span> * @return The parsed <code>Expect</code> header on the request, or <jk>null</jk> if not found.<a name="line.405"></a>
-<span class="sourceLineNo">406</span> */<a name="line.406"></a>
-<span class="sourceLineNo">407</span> public Expect getExpect() {<a name="line.407"></a>
-<span class="sourceLineNo">408</span> return Expect.forString(getFirst("Expect"));<a name="line.408"></a>
-<span class="sourceLineNo">409</span> }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span> /**<a name="line.411"></a>
-<span class="sourceLineNo">412</span> * Returns the <code>From</code> header on the request.<a name="line.412"></a>
-<span class="sourceLineNo">413</span> * <p><a name="line.413"></a>
-<span class="sourceLineNo">414</span> * The email address of the user making the request.<a name="line.414"></a>
-<span class="sourceLineNo">415</span> *<a name="line.415"></a>
-<span class="sourceLineNo">416</span> * <h6 class='figure'>Example:</h6><a name="line.416"></a>
-<span class="sourceLineNo">417</span> * <p class='bcode'><a name="line.417"></a>
-<span class="sourceLineNo">418</span> * From: user@example.com<a name="line.418"></a>
-<span class="sourceLineNo">419</span> * </p><a name="line.419"></a>
-<span class="sourceLineNo">420</span> *<a name="line.420"></a>
-<span class="sourceLineNo">421</span> * @return The parsed <code>From</code> header on the request, or <jk>null</jk> if not found.<a name="line.421"></a>
-<span class="sourceLineNo">422</span> */<a name="line.422"></a>
-<span class="sourceLineNo">423</span> public From getFrom() {<a name="line.423"></a>
-<span class="sourceLineNo">424</span> return From.forString(getFirst("From"));<a name="line.424"></a>
-<span class="sourceLineNo">425</span> }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span> /**<a name="line.427"></a>
-<span class="sourceLineNo">428</span> * Returns the <code>Host</code> header on the request.<a name="line.428"></a>
-<span class="sourceLineNo">429</span> * <p><a name="line.429"></a>
-<span class="sourceLineNo">430</span> * The domain name of the server (for virtual hosting), and the TCP port number on which the server is listening.<a name="line.430"></a>
-<span class="sourceLineNo">431</span> * The port number may be omitted if the port is the standard port for the service requested.<a name="line.431"></a>
+<span class="sourceLineNo">368</span> * @return The parsed <code>Cache-Control</code> header on the request, or <jk>null</jk> if not found.<a name="line.368"></a>
+<span class="sourceLineNo">369</span> */<a name="line.369"></a>
+<span class="sourceLineNo">370</span> public CacheControl getCacheControl() {<a name="line.370"></a>
+<span class="sourceLineNo">371</span> return CacheControl.forString(getString("Cache-Control"));<a name="line.371"></a>
+<span class="sourceLineNo">372</span> }<a name="line.372"></a>
+<span class="sourceLineNo">373</span><a name="line.373"></a>
+<span class="sourceLineNo">374</span> /**<a name="line.374"></a>
+<span class="sourceLineNo">375</span> * Returns the <code>Connection</code> header on the request.<a name="line.375"></a>
+<span class="sourceLineNo">376</span> * <p><a name="line.376"></a>
+<span class="sourceLineNo">377</span> * Control options for the current connection and list of hop-by-hop request fields.<a name="line.377"></a>
+<span class="sourceLineNo">378</span> *<a name="line.378"></a>
+<span class="sourceLineNo">379</span> * <h6 class='figure'>Example:</h6><a name="line.379"></a>
+<span class="sourceLineNo">380</span> * <p class='bcode'><a name="line.380"></a>
+<span class="sourceLineNo">381</span> * Connection: keep-alive<a name="line.381"></a>
+<span class="sourceLineNo">382</span> * Connection: Upgrade<a name="line.382"></a>
+<span class="sourceLineNo">383</span> * </p><a name="line.383"></a>
+<span class="sourceLineNo">384</span> *<a name="line.384"></a>
+<span class="sourceLineNo">385</span> * @return The parsed <code></code> header on the request, or <jk>null</jk> if not found.<a name="line.385"></a>
+<span class="sourceLineNo">386</span> */<a name="line.386"></a>
+<span class="sourceLineNo">387</span> public Connection getConnection() {<a name="line.387"></a>
+<span class="sourceLineNo">388</span> return Connection.forString(getString("Connection"));<a name="line.388"></a>
+<span class="sourceLineNo">389</span> }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span> /**<a name="line.391"></a>
+<span class="sourceLineNo">392</span> * Returns the <code>Content-Length</code> header on the request.<a name="line.392"></a>
+<span class="sourceLineNo">393</span> * <p><a name="line.393"></a>
+<span class="sourceLineNo">394</span> * The length of the request body in octets (8-bit bytes).<a name="line.394"></a>
+<span class="sourceLineNo">395</span> *<a name="line.395"></a>
+<span class="sourceLineNo">396</span> * <h6 class='figure'>Example:</h6><a name="line.396"></a>
+<span class="sourceLineNo">397</span> * <p class='bcode'><a name="line.397"></a>
+<span class="sourceLineNo">398</span> * Content-Length: 348<a name="line.398"></a>
+<span class="sourceLineNo">399</span> * </p><a name="line.399"></a>
+<span class="sourceLineNo">400</span> *<a name="line.400"></a>
+<span class="sourceLineNo">401</span> * @return The parsed <code>Content-Length</code> header on the request, or <jk>null</jk> if not found.<a name="line.401"></a>
+<span class="sourceLineNo">402</span> */<a name="line.402"></a>
+<span class="sourceLineNo">403</span> public ContentLength getContentLength() {<a name="line.403"></a>
+<span class="sourceLineNo">404</span> return ContentLength.forString(getString("Content-Length"));<a name="line.404"></a>
+<span class="sourceLineNo">405</span> }<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span> /**<a name="line.407"></a>
+<span class="sourceLineNo">408</span> * Returns the <code>Content-Type</code> header on the request.<a name="line.408"></a>
+<span class="sourceLineNo">409</span> * <p><a name="line.409"></a>
+<span class="sourceLineNo">410</span> * The MIME type of the body of the request (used with POST and PUT requests).<a name="line.410"></a>
+<span class="sourceLineNo">411</span> *<a name="line.411"></a>
+<span class="sourceLineNo">412</span> * <h6 class='figure'>Example:</h6><a name="line.412"></a>
+<span class="sourceLineNo">413</span> * <p class='bcode'><a name="line.413"></a>
+<span class="sourceLineNo">414</span> * Content-Type: application/x-www-form-urlencoded<a name="line.414"></a>
+<span class="sourceLineNo">415</span> * </p><a name="line.415"></a>
+<span class="sourceLineNo">416</span> *<a name="line.416"></a>
+<span class="sourceLineNo">417</span> * @return The parsed <code>Content-Type</code> header on the request, or <jk>null</jk> if not found.<a name="line.417"></a>
+<span class="sourceLineNo">418</span> */<a name="line.418"></a>
+<span class="sourceLineNo">419</span> public ContentType getContentType() {<a name="line.419"></a>
+<span class="sourceLineNo">420</span> return ContentType.forString(getString("Content-Type"));<a name="line.420"></a>
+<span class="sourceLineNo">421</span> }<a name="line.421"></a>
+<span class="sourceLineNo">422</span><a name="line.422"></a>
+<span class="sourceLineNo">423</span> /**<a name="line.423"></a>
+<span class="sourceLineNo">424</span> * Returns the <code>Date</code> header on the request.<a name="line.424"></a>
+<span class="sourceLineNo">425</span> * <p><a name="line.425"></a>
+<span class="sourceLineNo">426</span> * The date and time that the message was originated (in "HTTP-date" format as defined by RFC 7231 Date/Time Formats).<a name="line.426"></a>
+<span class="sourceLineNo">427</span> *<a name="line.427"></a>
+<span class="sourceLineNo">428</span> * <h6 class='figure'>Example:</h6><a name="line.428"></a>
+<span class="sourceLineNo">429</span> * <p class='bcode'><a name="line.429"></a>
+<span class="sourceLineNo">430</span> * Date: Tue, 15 Nov 1994 08:12:31 GMT<a name="line.430"></a>
+<span class="sourceLineNo">431</span> * </p><a name="line.431"></a>
<span class="sourceLineNo">432</span> *<a name="line.432"></a>
-<span class="sourceLineNo">433</span> * <h6 class='figure'>Example:</h6><a name="line.433"></a>
-<span class="sourceLineNo">434</span> * <p class='bcode'><a name="line.434"></a>
-<span class="sourceLineNo">435</span> * Host: en.wikipedia.org:8080<a name="line.435"></a>
-<span class="sourceLineNo">436</span> * Host: en.wikipedia.org<a name="line.436"></a>
-<span class="sourceLineNo">437</span> * </p><a name="line.437"></a>
-<span class="sourceLineNo">438</span> *<a name="line.438"></a>
-<span class="sourceLineNo">439</span> * @return The parsed <code>Host</code> header on the request, or <jk>null</jk> if not found.<a name="line.439"></a>
-<span class="sourceLineNo">440</span> */<a name="line.440"></a>
-<span class="sourceLineNo">441</span> public Host getHost() {<a name="line.441"></a>
-<span class="sourceLineNo">442</span> return Host.forString(getFirst("Host"));<a name="line.442"></a>
-<span class="sourceLineNo">443</span> }<a name="line.443"></a>
-<span class="sourceLineNo">444</span><a name="line.444"></a>
-<span class="sourceLineNo">445</span> /**<a name="line.445"></a>
-<span class="sourceLineNo">446</span> * Returns the <code>If-Match</code> header on the request.<a name="line.446"></a>
-<span class="sourceLineNo">447</span> * <p><a name="line.447"></a>
-<span class="sourceLineNo">448</span> * Only perform the action if the client supplied entity matches the same entity on the server.<a name="line.448"></a>
-<span class="sourceLineNo">449</span> * This is mainly for methods like PUT to only update a resource if it has not been modified since the user last updated it.<a name="line.449"></a>
-<span class="sourceLineNo">450</span> *<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * <h6 class='figure'>Example:</h6><a name="line.451"></a>
-<span class="sourceLineNo">452</span> * <p class='bcode'><a name="line.452"></a>
-<span class="sourceLineNo">453</span> * If-Match: "737060cd8c284d8af7ad3082f209582d"<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * </p><a name="line.454"></a>
-<span class="sourceLineNo">455</span> *<a name="line.455"></a>
-<span class="sourceLineNo">456</span> * @return The parsed <code>If-Match</code> header on the request, or <jk>null</jk> if not found.<a name="line.456"></a>
-<span class="sourceLineNo">457</span> */<a name="line.457"></a>
-<span class="sourceLineNo">458</span> public IfMatch getIfMatch() {<a name="line.458"></a>
-<span class="sourceLineNo">459</span> return IfMatch.forString(getFirst("If-Match"));<a name="line.459"></a>
-<span class="sourceLineNo">460</span> }<a name="line.460"></a>
-<span class="sourceLineNo">461</span><a name="line.461"></a>
-<span class="sourceLineNo">462</span> /**<a name="line.462"></a>
-<span class="sourceLineNo">463</span> * Returns the <code>If-Modified-Since</code> header on the request.<a name="line.463"></a>
-<span class="sourceLineNo">464</span> * <p><a name="line.464"></a>
-<span class="sourceLineNo">465</span> * Allows a 304 Not Modified to be returned if content is unchanged.<a name="line.465"></a>
-<span class="sourceLineNo">466</span> *<a name="line.466"></a>
-<span class="sourceLineNo">467</span> * <h6 class='figure'>Example:</h6><a name="line.467"></a>
-<span class="sourceLineNo">468</span> * <p class='bcode'><a name="line.468"></a>
-<span class="sourceLineNo">469</span> * If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT<a name="line.469"></a>
-<span class="sourceLineNo">470</span> * </p><a name="line.470"></a>
-<span class="sourceLineNo">471</span> *<a name="line.471"></a>
-<span class="sourceLineNo">472</span> * @return The parsed <code>If-Modified-Since</code> header on the request, or <jk>null</jk> if not found.<a name="line.472"></a>
-<span class="sourceLineNo">473</span> */<a name="line.473"></a>
-<span class="sourceLineNo">474</span> public IfModifiedSince getIfModifiedSince() {<a name="line.474"></a>
-<span class="sourceLineNo">475</span> return IfModifiedSince.forString(getFirst("If-Modified-Since"));<a name="line.475"></a>
-<span class="sourceLineNo">476</span> }<a name="line.476"></a>
-<span class="sourceLineNo">477</span><a name="line.477"></a>
-<span class="sourceLineNo">478</span> /**<a name="line.478"></a>
-<span class="sourceLineNo">479</span> * Returns the <code>If-None-Match</code> header on the request.<a name="line.479"></a>
-<span class="sourceLineNo">480</span> * <p><a name="line.480"></a>
-<span class="sourceLineNo">481</span> * Allows a 304 Not Modified to be returned if content is unchanged, see HTTP ETag.<a name="line.481"></a>
+<span class="sourceLineNo">433</span> * @return The parsed <code>Date</code> header on the request, or <jk>null</jk> if not found.<a name="line.433"></a>
+<span class="sourceLineNo">434</span> */<a name="line.434"></a>
+<span class="sourceLineNo">435</span> public Date getDate() {<a name="line.435"></a>
+<span class="sourceLineNo">436</span> return Date.forString(getString("Date"));<a name="line.436"></a>
+<span class="sourceLineNo">437</span> }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span> /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span> * Returns the <code>Expect</code> header on the request.<a name="line.440"></a>
+<span class="sourceLineNo">441</span> * <p><a name="line.441"></a>
+<span class="sourceLineNo">442</span> * Indicates that particular server behaviors are required by the client.<a name="line.442"></a>
+<span class="sourceLineNo">443</span> *<a name="line.443"></a>
+<span class="sourceLineNo">444</span> * <h6 class='figure'>Example:</h6><a name="line.444"></a>
+<span class="sourceLineNo">445</span> * <p class='bcode'><a name="line.445"></a>
+<span class="sourceLineNo">446</span> * Expect: 100-continue<a name="line.446"></a>
+<span class="sourceLineNo">447</span> * </p><a name="line.447"></a>
+<span class="sourceLineNo">448</span> *<a name="line.448"></a>
+<span class="sourceLineNo">449</span> * @return The parsed <code>Expect</code> header on the request, or <jk>null</jk> if not found.<a name="line.449"></a>
+<span class="sourceLineNo">450</span> */<a name="line.450"></a>
+<span class="sourceLineNo">451</span> public Expect getExpect() {<a name="line.451"></a>
+<span class="sourceLineNo">452</span> return Expect.forString(getString("Expect"));<a name="line.452"></a>
+<span class="sourceLineNo">453</span> }<a name="line.453"></a>
+<span class="sourceLineNo">454</span><a name="line.454"></a>
+<span class="sourceLineNo">455</span> /**<a name="line.455"></a>
+<span class="sourceLineNo">456</span> * Returns the <code>From</code> header on the request.<a name="line.456"></a>
+<span class="sourceLineNo">457</span> * <p><a name="line.457"></a>
+<span class="sourceLineNo">458</span> * The email address of the user making the request.<a name="line.458"></a>
+<span class="sourceLineNo">459</span> *<a name="line.459"></a>
+<span class="sourceLineNo">460</span> * <h6 class='figure'>Example:</h6><a name="line.460"></a>
+<span class="sourceLineNo">461</span> * <p class='bcode'><a name="line.461"></a>
+<span class="sourceLineNo">462</span> * From: user@example.com<a name="line.462"></a>
+<span class="sourceLineNo">463</span> * </p><a name="line.463"></a>
+<span class="sourceLineNo">464</span> *<a name="line.464"></a>
+<span class="sourceLineNo">465</span> * @return The parsed <code>From</code> header on the request, or <jk>null</jk> if not found.<a name="line.465"></a>
+<span class="sourceLineNo">466</span> */<a name="line.466"></a>
+<span class="sourceLineNo">467</span> public From getFrom() {<a name="line.467"></a>
+<span class="sourceLineNo">468</span> return From.forString(getString("From"));<a name="line.468"></a>
+<span class="sourceLineNo">469</span> }<a name="line.469"></a>
+<span class="sourceLineNo">470</span><a name="line.470"></a>
+<span class="sourceLineNo">471</span> /**<a name="line.471"></a>
+<span class="sourceLineNo">472</span> * Returns the <code>Host</code> header on the request.<a name="line.472"></a>
+<span class="sourceLineNo">473</span> * <p><a name="line.473"></a>
+<span class="sourceLineNo">474</span> * The domain name of the server (for virtual hosting), and the TCP port number on which the server is listening.<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * The port number may be omitted if the port is the standard port for the service requested.<a name="line.475"></a>
+<span class="sourceLineNo">476</span> *<a name="line.476"></a>
+<span class="sourceLineNo">477</span> * <h6 class='figure'>Example:</h6><a name="line.477"></a>
+<span class="sourceLineNo">478</span> * <p class='bcode'><a name="line.478"></a>
+<span class="sourceLineNo">479</span> * Host: en.wikipedia.org:8080<a name="line.479"></a>
+<span class="sourceLineNo">480</span> * Host: en.wikipedia.org<a name="line.480"></a>
+<span class="sourceLineNo">481</span> * </p><a name="line.481"></a>
<span class="sourceLineNo">482</span> *<a name="line.482"></a>
-<span class="sourceLineNo">483</span> * <h6 class='figure'>Example:</h6><a name="line.483"></a>
-<span class="sourceLineNo">484</span> * <p class='bcode'><a name="line.484"></a>
-<span class="sourceLineNo">485</span> * If-None-Match: "737060cd8c284d8af7ad3082f209582d"<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * </p><a name="line.486"></a>
-<span class="sourceLineNo">487</span> *<a name="line.487"></a>
-<span class="sourceLineNo">488</span> * @return The parsed <code>If-None-Match</code> header on the request, or <jk>null</jk> if not found.<a name="line.488"></a>
-<span class="sourceLineNo">489</span> */<a name="line.489"></a>
-<span class="sourceLineNo">490</span> public IfNoneMatch getIfNoneMatch() {<a name="line.490"></a>
-<span class="sourceLineNo">491</span> return IfNoneMatch.forString(getFirst("If-None-Match"));<a name="line.491"></a>
-<span class="sourceLineNo">492</span> }<a name="line.492"></a>
-<span class="sourceLineNo">493</span><a name="line.493"></a>
-<span class="sourceLineNo">494</span> /**<a name="line.494"></a>
-<span class="sourceLineNo">495</span> * Returns the <code>If-Range</code> header on the request.<a name="line.495"></a>
-<span class="sourceLineNo">496</span> * <p><a name="line.496"></a>
-<span class="sourceLineNo">497</span> * If the entity is unchanged, send me the part(s) that I am missing; otherwise, send me the entire new entity.<a name="line.497"></a>
-<span class="sourceLineNo">498</span> *<a name="line.498"></a>
-<span class="sourceLineNo">499</span> * <h6 class='figure'>Example:</h6><a name="line.499"></a>
-<span class="sourceLineNo">500</span> * <p class='bcode'><a name="line.500"></a>
-<span class="sourceLineNo">501</span> * If-Range: "737060cd8c284d8af7ad3082f209582d"<a name="line.501"></a>
-<span class="sourceLineNo">502</span> * </p><a name="line.502"></a>
-<span class="sourceLineNo">503</span> *<a name="line.503"></a>
-<span class="sourceLineNo">504</span> * @return The parsed <code>If-Range</code> header on the request, or <jk>null</jk> if not found.<a name="line.504"></a>
-<span class="sourceLineNo">505</span> */<a name="line.505"></a>
-<span class="sourceLineNo">506</span> public IfRange getIfRange() {<a name="line.506"></a>
-<span class="sourceLineNo">507</span> return IfRange.forString(getFirst("If-Range"));<a name="line.507"></a>
-<span class="sourceLineNo">508</span> }<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span> /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span> * Returns the <code>If-Unmodified-Since</code> header on the request.<a name="line.511"></a>
-<span class="sourceLineNo">512</span> * <p><a name="line.512"></a>
-<span class="sourceLineNo">513</span> * Only send the response if the entity has not been modified since a specific time.<a name="line.513"></a>
-<span class="sourceLineNo">514</span> *<a name="line.514"></a>
-<span class="sourceLineNo">515</span> * <h6 class='figure'>Example:</h6><a name="line.515"></a>
-<span class="sourceLineNo">516</span> * <p class='bcode'><a name="line.516"></a>
-<span class="sourceLineNo">517</span> * If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT<a name="line.517"></a>
-<span class="sourceLineNo">518</span> * </p><a name="line.518"></a>
-<span class="sourceLineNo">519</span> *<a name="line.519"></a>
-<span class="sourceLineNo">520</span> * @return The parsed <code>If-Unmodified-Since</code> header on the request, or <jk>null</jk> if not found.<a name="line.520"></a>
-<span class="sourceLineNo">521</span> */<a name="line.521"></a>
-<span class="sourceLineNo">522</span> public IfUnmodifiedSince getIfUnmodifiedSince() {<a name="line.522"></a>
-<span class="sourceLineNo">523</span> return IfUnmodifiedSince.forString(getFirst("If-Unmodified-Since"));<a name="line.523"></a>
-<span class="sourceLineNo">524</span> }<a name="line.524"></a>
-<span class="sourceLineNo">525</span><a name="line.525"></a>
-<span class="sourceLineNo">526</span> /**<a name="line.526"></a>
-<span class="sourceLineNo">527</span> * Returns the <code>Max-Forwards</code> header on the request.<a name="line.527"></a>
-<span class="sourceLineNo">528</span> * <p><a name="line.528"></a>
-<span class="sourceLineNo">529</span> * Limit the number of times the message can be forwarded through proxies or gateways.<a name="line.529"></a>
-<span class="sourceLineNo">530</span> *<a name="line.530"></a>
-<span class="sourceLineNo">531</span> * <h6 class='figure'>Example:</h6><a name="line.531"></a>
-<span class="sourceLineNo">532</span> * <p class='bcode'><a name="line.532"></a>
-<span class="sourceLineNo">533</span> * Max-Forwards: 10<a name="line.533"></a>
-<span class="sourceLineNo">534</span> * </p><a name="line.534"></a>
-<span class="sourceLineNo">535</span> *<a name="line.535"></a>
-<span class="sourceLineNo">536</span> * @return The parsed <code>Max-Forwards</code> header on the request, or <jk>null</jk> if not found.<a name="line.536"></a>
-<span class="sourceLineNo">537</span> */<a name="line.537"></a>
-<span class="sourceLineNo">538</span> public MaxForwards getMaxForwards() {<a name="line.538"></a>
-<span class="sourceLineNo">539</span> return MaxForwards.forString(getFirst("Max-Forwards"));<a name="line.539"></a>
-<span class="sourceLineNo">540</span> }<a name="line.540"></a>
-<span class="sourceLineNo">541</span><a name="line.541"></a>
-<span class="sourceLineNo">542</span> /**<a name="line.542"></a>
-<span class="sourceLineNo">543</span> * Returns the <code>Pragma</code> header on the request.<a name="line.543"></a>
-<span class="sourceLineNo">544</span> * <p><a name="line.544"></a>
-<span class="sourceLineNo">545</span> * Implementation-specific fields that may have various effects anywhere along the request-response chain.<a name="line.545"></a>
-<span class="sourceLineNo">546</span> *<a name="line.546"></a>
-<span class="sourceLineNo">547</span> * <h6 class='figure'>Example:</h6><a name="line.547"></a>
-<span class="sourceLineNo">548</span> * <p class='bcode'><a name="line.548"></a>
-<span class="sourceLineNo">549</span> * Pragma: no-cache<a name="line.549"></a>
-<span class="sourceLineNo">550</span> * </p><a name="line.550"></a>
-<span class="sourceLineNo">551</span> *<a name="line.551"></a>
-<span class="sourceLineNo">552</span> * @return The parsed <code>Pragma</code> header on the request, or <jk>null</jk> if not found.<a name="line.552"></a>
-<span class="sourceLineNo">553</span> */<a name="line.553"></a>
-<span class="sourceLineNo">554</span> public Pragma getPragma() {<a name="line.554"></a>
-<span class="sourceLineNo">555</span> return Pragma.forString(getFirst("Pragma"));<a name="line.555"></a>
-<span class="sourceLineNo">556</span> }<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span> /**<a name="line.558"></a>
-<span class="sourceLineNo">559</span> * Returns the <code>Proxy-Authorization</code> header on the request.<a name="line.559"></a>
-<span class="sourceLineNo">560</span> * <p><a name="line.560"></a>
-<span class="sourceLineNo">561</span> * Authorization credentials for connecting to a proxy.<a name="line.561"></a>
-<span class="sourceLineNo">562</span> *<a name="line.562"></a>
-<span class="sourceLineNo">563</span> * <h6 class='figure'>Example:</h6><a name="line.563"></a>
-<span class="sourceLineNo">564</span> * <p class='bcode'><a name="line.564"></a>
-<span class="sourceLineNo">565</span> * Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==<a name="line.565"></a>
-<span class="sourceLineNo">566</span> * </p><a name="line.566"></a>
-<span class="sourceLineNo">567</span> *<a name="line.567"></a>
-<span class="sourceLineNo">568</span> * @return The parsed <code>Proxy-Authorization</code> header on the request, or <jk>null</jk> if not found.<a name="line.568"></a>
-<span class="sourceLineNo">569</span> */<a name="line.569"></a>
-<span class="sourceLineNo">570</span> public ProxyAuthorization getProxyAuthorization() {<a name="line.570"></a>
-<span class="sourceLineNo">571</span> return ProxyAuthorization.forString(getFirst("Proxy-Authorization"));<a name="line.571"></a>
-<span class="sourceLineNo">572</span> }<a name="line.572"></a>
-<span class="sourceLineNo">573</span><a name="line.573"></a>
-<span class="sourceLineNo">574</span> /**<a name="line.574"></a>
-<span class="sourceLineNo">575</span> * Returns the <code>Range</code> header on the request.<a name="line.575"></a>
-<span class="sourceLineNo">576</span> * <p><a name="line.576"></a>
-<span class="sourceLineNo">577</span> * Request only part of an entity. Bytes are numbered from 0.<a name="line.577"></a>
-<span class="sourceLineNo">578</span> *<a name="line.578"></a>
-<span class="sourceLineNo">579</span> * <h6 class='figure'>Example:</h6><a name="line.579"></a>
-<span class="sourceLineNo">580</span> * <p class='bcode'><a name="line.580"></a>
-<span class="sourceLineNo">581</span> * Range: bytes=500-999<a name="line.581"></a>
-<span class="sourceLineNo">582</span> * </p><a name="line.582"></a>
-<span class="sourceLineNo">583</span> *<a name="line.583"></a>
-<span class="sourceLineNo">584</span> * @return The parsed <code>Range</code> header on the request, or <jk>null</jk> if not found.<a name="line.584"></a>
-<span class="sourceLineNo">585</span> */<a name="line.585"></a>
-<span class="sourceLineNo">586</span> public Range getRange() {<a name="line.586"></a>
-<span class="sourceLineNo">587</span> return Range.forString(getFirst("Range"));<a name="line.587"></a>
-<span class="sourceLineNo">588</span> }<a name="line.588"></a>
-<span class="sourceLineNo">589</span><a name="line.589"></a>
-<span class="sourceLineNo">590</span> /**<a name="line.590"></a>
-<span class="sourceLineNo">591</span> * Returns the <code>Referer</code> header on the request.<a name="line.591"></a>
-<span class="sourceLineNo">592</span> * <p><a name="line.592"></a>
-<span class="sourceLineNo">593</span> * This is the address of the previous web page from which a link to the currently requested page was followed.<a name="line.593"></a>
-<span class="sourceLineNo">594</span> *<a name="line.594"></a>
-<span class="sourceLineNo">595</span> * <h6 class='figure'>Example:</h6><a name="line.595"></a>
-<span class="sourceLineNo">596</span> * <p class='bcode'><a name="line.596"></a>
-<span class="sourceLineNo">597</span> * Referer: http://en.wikipedia.org/wiki/Main_Page<a name="line.597"></a>
-<span class="sourceLineNo">598</span> * </p><a name="line.598"></a>
-<span class="sourceLineNo">599</span> *<a name="line.599"></a>
-<span class="sourceLineNo">600</span> * @return The parsed <code>Referer</code> header on the request, or <jk>null</jk> if not found.<a name="line.600"></a>
-<span class="sourceLineNo">601</span> */<a name="line.601"></a>
-<span class="sourceLineNo">602</span> public Referer getReferer() {<a name="line.602"></a>
-<span class="sourceLineNo">603</span> return Referer.forString(getFirst("Referer"));<a name="line.603"></a>
-<span class="sourceLineNo">604</span> }<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span> /**<a name="line.606"></a>
-<span class="sourceLineNo">607</span> * Returns the <code>TE</code> header on the request.<a name="line.607"></a>
-<span class="sourceLineNo">608</span> * <p><a name="line.608"></a>
-<span class="sourceLineNo">609</span> * The transfer encodings the user agent is willing to accept: the same values as for the response header field<a name="line.609"></a>
-<span class="sourceLineNo">610</span> * Transfer-Encoding can be used, plus the "trailers" value (related to the "chunked" transfer method) to notify the<a name="line.610"></a>
-<span class="sourceLineNo">611</span> * server it expects to receive additional fields in the trailer after the last, zero-sized, chunk.<a name="line.611"></a>
-<span class="sourceLineNo">612</span> *<a name="line.612"></a>
-<span class="sourceLineNo">613</span> * <h6 class='figure'>Example:</h6><a name="line.613"></a>
-<span class="sourceLineNo">614</span> * <p class='bcode'><a name="line.614"></a>
-<span class="sourceLineNo">615</span> * TE: trailers, deflate<a name="line.615"></a>
-<span class="sourceLineNo">616</span> * </p><a name="line.616"></a>
-<span class="sourceLineNo">617</span> *<a name="line.617"></a>
-<span class="sourceLineNo">618</span> * @return The parsed <code>TE</code> header on the request, or <jk>null</jk> if not found.<a name="line.618"></a>
-<span class="sourceLineNo">619</span> */<a name="line.619"></a>
-<span class="sourceLineNo">620</span> public TE getTE() {<a name="line.620"></a>
-<span class="sourceLineNo">621</span> return TE.forString(getFirst("TE"));<a name="line.621"></a>
-<span class="sourceLineNo">622</span> }<a name="line.622"></a>
-<span class="sourceLineNo">623</span><a name="line.623"></a>
-<span class="sourceLineNo">624</span> /**<a name="line.624"></a>
-<span class="sourceLineNo">625</span> * Returns the <code>Time-Zone</code> header value on the request if there is one.<a name="line.625"></a>
-<span class="sourceLineNo">626</span> * <p><a name="line.626"></a>
-<span class="sourceLineNo">627</span> * Example: <js>"GMT"</js>.<a name="line.627"></a>
-<span class="sourceLineNo">628</span> *<a name="line.628"></a>
-<span class="sourceLineNo">629</span> * @return The <code>Time-Zone</code> header value on the request, or <jk>null</jk> if not present.<a name="line.629"></a>
-<span class="sourceLineNo">630</span> */<a name="line.630"></a>
-<span class="sourceLineNo">631</span> public TimeZone getTimeZone() {<a name="line.631"></a>
-<span class="sourceLineNo">632</span> String tz = getFirst("Time-Zone");<a name="line.632"></a>
-<span class="sourceLineNo">633</span> if (tz != null)<a name="line.633"></a>
-<span class="sourceLineNo">634</span> return TimeZone.getTimeZone(tz);<a name="line.634"></a>
-<span class="sourceLineNo">635</span> return null;<a name="line.635"></a>
-<span class="sourceLineNo">636</span> }<a name="line.636"></a>
-<span class="sourceLineNo">637</span><a name="line.637"></a>
-<span class="sourceLineNo">638</span> /**<a name="line.638"></a>
-<span class="sourceLineNo">639</span> * Returns the <code>User-Agent</code> header on the request.<a name="line.639"></a>
-<span class="sourceLineNo">640</span> * <p><a name="line.640"></a>
-<span class="sourceLineNo">641</span> * The user agent string of the user agent.<a name="line.641"></a>
-<span class="sourceLineNo">642</span> *<a name="line.642"></a>
-<span class="sourceLineNo">643</span> * <h6 class='figure'>Example:</h6><a name="line.643"></a>
-<span class="sourceLineNo">644</span> * <p class='bcode'><a name="line.644"></a>
-<span class="sourceLineNo">645</span> * User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0<a name="line.645"></a>
-<span class="sourceLineNo">646</span> * </p><a name="line.646"></a>
-<span class="sourceLineNo">647</span> *<a name="line.647"></a>
-<span class="sourceLineNo">648</span> * @return The parsed <code>User-Agent</code> header on the request, or <jk>null</jk> if not found.<a name="line.648"></a>
-<span class="sourceLineNo">649</span> */<a name="line.649"></a>
-<span class="sourceLineNo">650</span> public UserAgent getUserAgent() {<a name="line.650"></a>
-<span class="sourceLineNo">651</span> return UserAgent.forString(getFirst("User-Agent"));<a name="line.651"></a>
-<span class="sourceLineNo">652</span> }<a name="line.652"></a>
-<span class="sourceLineNo">653</span><a name="line.653"></a>
-<span class="sourceLineNo">654</span> /**<a name="line.654"></a>
-<span class="sourceLineNo">655</span> * Returns the <code>Upgrade</code> header on the request.<a name="line.655"></a>
-<span class="sourceLineNo">656</span> * <p><a name="line.656"></a>
-<span class="sourceLineNo">657</span> * Ask the server to upgrade to another protocol.<a name="line.657"></a>
-<span class="sourceLineNo">658</span> *<a name="line.658"></a>
-<span class="sourceLineNo">659</span> * <h6 class='figure'>Example:</h6><a name="line.659"></a>
-<span class="sourceLineNo">660</span> * <p class='bcode'><a name="line.660"></a>
-<span class="sourceLineNo">661</span> * Upgrade: HTTP/2.0, HTTPS/1.3, IRC/6.9, RTA/x11, websocket<a name="line.661"></a>
-<span class="sourceLineNo">662</span> * </p><a name="line.662"></a>
-<span class="sourceLineNo">663</span> *<a name="line.663"></a>
-<span class="sourceLineNo">664</span> * @return The parsed <code>Upgrade</code> header on the request, or <jk>null</jk> if not found.<a name="line.664"></a>
-<span class="sourceLineNo">665</span> */<a name="line.665"></a>
-<span class="sourceLineNo">666</span> public Upgrade getUpgrade() {<a name="line.666"></a>
-<span class="sourceLineNo">667</span> return Upgrade.forString(getFirst("Upgrade"));<a name="line.667"></a>
-<span class="sourceLineNo">668</span> }<a name="line.668"></a>
-<span class="sourceLineNo">669</span><a name="line.669"></a>
-<span class="sourceLineNo">670</span> /**<a name="line.670"></a>
-<span class="sourceLineNo">671</span> * Returns the <code>Via</code> header on the request.<a name="line.671"></a>
-<span class="sourceLineNo">672</span> * <p><a name="line.672"></a>
-<span class="sourceLineNo">673</span> * Informs the server of pr
<TRUNCATED>
[08/21] incubator-juneau-website git commit: Update javadocs with
QueryWidget info.
Posted by ja...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerContext.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerContext.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerContext.html
index 524d210..f4b3ea9 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerContext.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerContext.html
@@ -285,274 +285,276 @@
<span class="sourceLineNo">277</span> * )<a name="line.277"></a>
<span class="sourceLineNo">278</span> * <jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault {<a name="line.278"></a>
<span class="sourceLineNo">279</span> * </p><a name="line.279"></a>
-<span class="sourceLineNo">280</span> */<a name="line.280"></a>
-<span class="sourceLineNo">281</span> public static final String HTMLDOC_links = "HtmlDocSerializer.links.map";<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span> /**<a name="line.283"></a>
-<span class="sourceLineNo">284</span> * <b>Configuration property:</b> Add to the {@link #HTMLDOC_links} property.<a name="line.284"></a>
-<span class="sourceLineNo">285</span> */<a name="line.285"></a>
-<span class="sourceLineNo">286</span> public static final String HTMLDOC_links_put = "HtmlDocSerializer.links.map.put";<a name="line.286"></a>
-<span class="sourceLineNo">287</span><a name="line.287"></a>
-<span class="sourceLineNo">288</span> /**<a name="line.288"></a>
-<span class="sourceLineNo">289</span> * <b>Configuration property:</b> Nav section contents.<a name="line.289"></a>
-<span class="sourceLineNo">290</span> * <p><a name="line.290"></a>
-<span class="sourceLineNo">291</span> * <ul><a name="line.291"></a>
-<span class="sourceLineNo">292</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.nav"</js><a name="line.292"></a>
-<span class="sourceLineNo">293</span> * <li><b>Data type:</b> <code>String</code><a name="line.293"></a>
-<span class="sourceLineNo">294</span> * <li><b>Default:</b> <jk>null</jk><a name="line.294"></a>
-<span class="sourceLineNo">295</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.295"></a>
-<span class="sourceLineNo">296</span> * </ul><a name="line.296"></a>
-<span class="sourceLineNo">297</span> * <p><a name="line.297"></a>
-<span class="sourceLineNo">298</span> * Allows you to override the contents of the nav section on the HTML page.<a name="line.298"></a>
-<span class="sourceLineNo">299</span> * The nav section normally contains the page links at the top of the page.<a name="line.299"></a>
-<span class="sourceLineNo">300</span> * <p><a name="line.300"></a>
-<span class="sourceLineNo">301</span> *<a name="line.301"></a>
-<span class="sourceLineNo">302</span> * <h5 class='section'>Example:</h5><a name="line.302"></a>
-<span class="sourceLineNo">303</span> * <p class='bcode'><a name="line.303"></a>
-<span class="sourceLineNo">304</span> * <ja>@RestResource</ja>(<a name="line.304"></a>
-<span class="sourceLineNo">305</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.305"></a>
-<span class="sourceLineNo">306</span> * nav=<js>"&lt;p class='special-navigation'&gt;This is my special navigation content&lt;/p&gt;"</js><a name="line.306"></a>
-<span class="sourceLineNo">307</span> * )<a name="line.307"></a>
-<span class="sourceLineNo">308</span> * )<a name="line.308"></a>
-<span class="sourceLineNo">309</span> * </p><a name="line.309"></a>
-<span class="sourceLineNo">310</span> * <p><a name="line.310"></a>
-<span class="sourceLineNo">311</span> * When this property is specified, the {@link #HTMLDOC_links} property is ignored.<a name="line.311"></a>
+<span class="sourceLineNo">280</span> * <p><a name="line.280"></a>
+<span class="sourceLineNo">281</span> * Values that start with <js>'&lt;'</js> are assumed to be HTML and rendered as-is. <a name="line.281"></a>
+<span class="sourceLineNo">282</span> */<a name="line.282"></a>
+<span class="sourceLineNo">283</span> public static final String HTMLDOC_links = "HtmlDocSerializer.links.map";<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span> /**<a name="line.285"></a>
+<span class="sourceLineNo">286</span> * <b>Configuration property:</b> Add to the {@link #HTMLDOC_links} property.<a name="line.286"></a>
+<span class="sourceLineNo">287</span> */<a name="line.287"></a>
+<span class="sourceLineNo">288</span> public static final String HTMLDOC_links_put = "HtmlDocSerializer.links.map.put";<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span> /**<a name="line.290"></a>
+<span class="sourceLineNo">291</span> * <b>Configuration property:</b> Nav section contents.<a name="line.291"></a>
+<span class="sourceLineNo">292</span> * <p><a name="line.292"></a>
+<span class="sourceLineNo">293</span> * <ul><a name="line.293"></a>
+<span class="sourceLineNo">294</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.nav"</js><a name="line.294"></a>
+<span class="sourceLineNo">295</span> * <li><b>Data type:</b> <code>String</code><a name="line.295"></a>
+<span class="sourceLineNo">296</span> * <li><b>Default:</b> <jk>null</jk><a name="line.296"></a>
+<span class="sourceLineNo">297</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.297"></a>
+<span class="sourceLineNo">298</span> * </ul><a name="line.298"></a>
+<span class="sourceLineNo">299</span> * <p><a name="line.299"></a>
+<span class="sourceLineNo">300</span> * Allows you to override the contents of the nav section on the HTML page.<a name="line.300"></a>
+<span class="sourceLineNo">301</span> * The nav section normally contains the page links at the top of the page.<a name="line.301"></a>
+<span class="sourceLineNo">302</span> * <p><a name="line.302"></a>
+<span class="sourceLineNo">303</span> *<a name="line.303"></a>
+<span class="sourceLineNo">304</span> * <h5 class='section'>Example:</h5><a name="line.304"></a>
+<span class="sourceLineNo">305</span> * <p class='bcode'><a name="line.305"></a>
+<span class="sourceLineNo">306</span> * <ja>@RestResource</ja>(<a name="line.306"></a>
+<span class="sourceLineNo">307</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.307"></a>
+<span class="sourceLineNo">308</span> * nav=<js>"&lt;p class='special-navigation'&gt;This is my special navigation content&lt;/p&gt;"</js><a name="line.308"></a>
+<span class="sourceLineNo">309</span> * )<a name="line.309"></a>
+<span class="sourceLineNo">310</span> * )<a name="line.310"></a>
+<span class="sourceLineNo">311</span> * </p><a name="line.311"></a>
<span class="sourceLineNo">312</span> * <p><a name="line.312"></a>
-<span class="sourceLineNo">313</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.313"></a>
-<span class="sourceLineNo">314</span> */<a name="line.314"></a>
-<span class="sourceLineNo">315</span> public static final String HTMLDOC_nav = "HtmlDocSerializer.nav";<a name="line.315"></a>
-<span class="sourceLineNo">316</span><a name="line.316"></a>
-<span class="sourceLineNo">317</span> /**<a name="line.317"></a>
-<span class="sourceLineNo">318</span> * <b>Configuration property:</b> Aside section contents.<a name="line.318"></a>
-<span class="sourceLineNo">319</span> * <p><a name="line.319"></a>
-<span class="sourceLineNo">320</span> * <ul><a name="line.320"></a>
-<span class="sourceLineNo">321</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.aside"</js><a name="line.321"></a>
-<span class="sourceLineNo">322</span> * <li><b>Data type:</b> <code>String</code><a name="line.322"></a>
-<span class="sourceLineNo">323</span> * <li><b>Default:</b> <jk>null</jk><a name="line.323"></a>
-<span class="sourceLineNo">324</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.324"></a>
-<span class="sourceLineNo">325</span> * </ul><a name="line.325"></a>
-<span class="sourceLineNo">326</span> * <p><a name="line.326"></a>
-<span class="sourceLineNo">327</span> * Allows you to specifigy the contents of the aside section on the HTML page.<a name="line.327"></a>
-<span class="sourceLineNo">328</span> * The aside section floats on the right of the page for providing content supporting the serialized content of<a name="line.328"></a>
-<span class="sourceLineNo">329</span> * the page.<a name="line.329"></a>
-<span class="sourceLineNo">330</span> * <p><a name="line.330"></a>
-<span class="sourceLineNo">331</span> * By default, the aside section is empty.<a name="line.331"></a>
+<span class="sourceLineNo">313</span> * When this property is specified, the {@link #HTMLDOC_links} property is ignored.<a name="line.313"></a>
+<span class="sourceLineNo">314</span> * <p><a name="line.314"></a>
+<span class="sourceLineNo">315</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.315"></a>
+<span class="sourceLineNo">316</span> */<a name="line.316"></a>
+<span class="sourceLineNo">317</span> public static final String HTMLDOC_nav = "HtmlDocSerializer.nav";<a name="line.317"></a>
+<span class="sourceLineNo">318</span><a name="line.318"></a>
+<span class="sourceLineNo">319</span> /**<a name="line.319"></a>
+<span class="sourceLineNo">320</span> * <b>Configuration property:</b> Aside section contents.<a name="line.320"></a>
+<span class="sourceLineNo">321</span> * <p><a name="line.321"></a>
+<span class="sourceLineNo">322</span> * <ul><a name="line.322"></a>
+<span class="sourceLineNo">323</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.aside"</js><a name="line.323"></a>
+<span class="sourceLineNo">324</span> * <li><b>Data type:</b> <code>String</code><a name="line.324"></a>
+<span class="sourceLineNo">325</span> * <li><b>Default:</b> <jk>null</jk><a name="line.325"></a>
+<span class="sourceLineNo">326</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.326"></a>
+<span class="sourceLineNo">327</span> * </ul><a name="line.327"></a>
+<span class="sourceLineNo">328</span> * <p><a name="line.328"></a>
+<span class="sourceLineNo">329</span> * Allows you to specifigy the contents of the aside section on the HTML page.<a name="line.329"></a>
+<span class="sourceLineNo">330</span> * The aside section floats on the right of the page for providing content supporting the serialized content of<a name="line.330"></a>
+<span class="sourceLineNo">331</span> * the page.<a name="line.331"></a>
<span class="sourceLineNo">332</span> * <p><a name="line.332"></a>
-<span class="sourceLineNo">333</span> *<a name="line.333"></a>
-<span class="sourceLineNo">334</span> * <h5 class='section'>Example:</h5><a name="line.334"></a>
-<span class="sourceLineNo">335</span> * <p class='bcode'><a name="line.335"></a>
-<span class="sourceLineNo">336</span> * <ja>@RestResource</ja>(<a name="line.336"></a>
-<span class="sourceLineNo">337</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.337"></a>
-<span class="sourceLineNo">338</span> * aside=<js>"&lt;ul&gt;&lt;li&gt;Item 1&lt;li&gt;Item 2&lt;li&gt;Item 3&lt;/ul&gt;"</js><a name="line.338"></a>
-<span class="sourceLineNo">339</span> * )<a name="line.339"></a>
-<span class="sourceLineNo">340</span> * )<a name="line.340"></a>
-<span class="sourceLineNo">341</span> * </p><a name="line.341"></a>
-<span class="sourceLineNo">342</span> * <p><a name="line.342"></a>
-<span class="sourceLineNo">343</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.343"></a>
-<span class="sourceLineNo">344</span> */<a name="line.344"></a>
-<span class="sourceLineNo">345</span> public static final String HTMLDOC_aside = "HtmlDocSerializer.aside";<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span> /**<a name="line.347"></a>
-<span class="sourceLineNo">348</span> * <b>Configuration property:</b> Footer section contents.<a name="line.348"></a>
-<span class="sourceLineNo">349</span> * <p><a name="line.349"></a>
-<span class="sourceLineNo">350</span> * <ul><a name="line.350"></a>
-<span class="sourceLineNo">351</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.footer"</js><a name="line.351"></a>
-<span class="sourceLineNo">352</span> * <li><b>Data type:</b> <code>String</code><a name="line.352"></a>
-<span class="sourceLineNo">353</span> * <li><b>Default:</b> <jk>null</jk><a name="line.353"></a>
-<span class="sourceLineNo">354</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.354"></a>
-<span class="sourceLineNo">355</span> * </ul><a name="line.355"></a>
-<span class="sourceLineNo">356</span> * <p><a name="line.356"></a>
-<span class="sourceLineNo">357</span> * Allows you to specify the contents of the footer section on the HTML page.<a name="line.357"></a>
+<span class="sourceLineNo">333</span> * By default, the aside section is empty.<a name="line.333"></a>
+<span class="sourceLineNo">334</span> * <p><a name="line.334"></a>
+<span class="sourceLineNo">335</span> *<a name="line.335"></a>
+<span class="sourceLineNo">336</span> * <h5 class='section'>Example:</h5><a name="line.336"></a>
+<span class="sourceLineNo">337</span> * <p class='bcode'><a name="line.337"></a>
+<span class="sourceLineNo">338</span> * <ja>@RestResource</ja>(<a name="line.338"></a>
+<span class="sourceLineNo">339</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.339"></a>
+<span class="sourceLineNo">340</span> * aside=<js>"&lt;ul&gt;&lt;li&gt;Item 1&lt;li&gt;Item 2&lt;li&gt;Item 3&lt;/ul&gt;"</js><a name="line.340"></a>
+<span class="sourceLineNo">341</span> * )<a name="line.341"></a>
+<span class="sourceLineNo">342</span> * )<a name="line.342"></a>
+<span class="sourceLineNo">343</span> * </p><a name="line.343"></a>
+<span class="sourceLineNo">344</span> * <p><a name="line.344"></a>
+<span class="sourceLineNo">345</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.345"></a>
+<span class="sourceLineNo">346</span> */<a name="line.346"></a>
+<span class="sourceLineNo">347</span> public static final String HTMLDOC_aside = "HtmlDocSerializer.aside";<a name="line.347"></a>
+<span class="sourceLineNo">348</span><a name="line.348"></a>
+<span class="sourceLineNo">349</span> /**<a name="line.349"></a>
+<span class="sourceLineNo">350</span> * <b>Configuration property:</b> Footer section contents.<a name="line.350"></a>
+<span class="sourceLineNo">351</span> * <p><a name="line.351"></a>
+<span class="sourceLineNo">352</span> * <ul><a name="line.352"></a>
+<span class="sourceLineNo">353</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.footer"</js><a name="line.353"></a>
+<span class="sourceLineNo">354</span> * <li><b>Data type:</b> <code>String</code><a name="line.354"></a>
+<span class="sourceLineNo">355</span> * <li><b>Default:</b> <jk>null</jk><a name="line.355"></a>
+<span class="sourceLineNo">356</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.356"></a>
+<span class="sourceLineNo">357</span> * </ul><a name="line.357"></a>
<span class="sourceLineNo">358</span> * <p><a name="line.358"></a>
-<span class="sourceLineNo">359</span> * By default, the footer section is empty.<a name="line.359"></a>
+<span class="sourceLineNo">359</span> * Allows you to specify the contents of the footer section on the HTML page.<a name="line.359"></a>
<span class="sourceLineNo">360</span> * <p><a name="line.360"></a>
-<span class="sourceLineNo">361</span> *<a name="line.361"></a>
-<span class="sourceLineNo">362</span> * <h5 class='section'>Example:</h5><a name="line.362"></a>
-<span class="sourceLineNo">363</span> * <p class='bcode'><a name="line.363"></a>
-<span class="sourceLineNo">364</span> * <ja>@RestResource</ja>(<a name="line.364"></a>
-<span class="sourceLineNo">365</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.365"></a>
-<span class="sourceLineNo">366</span> * footer=<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js><a name="line.366"></a>
-<span class="sourceLineNo">367</span> * )<a name="line.367"></a>
-<span class="sourceLineNo">368</span> * )<a name="line.368"></a>
-<span class="sourceLineNo">369</span> * </p><a name="line.369"></a>
-<span class="sourceLineNo">370</span> * <p><a name="line.370"></a>
-<span class="sourceLineNo">371</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.371"></a>
-<span class="sourceLineNo">372</span> */<a name="line.372"></a>
-<span class="sourceLineNo">373</span> public static final String HTMLDOC_footer = "HtmlDocSerializer.footer";<a name="line.373"></a>
-<span class="sourceLineNo">374</span><a name="line.374"></a>
-<span class="sourceLineNo">375</span> /**<a name="line.375"></a>
-<span class="sourceLineNo">376</span> * <b>Configuration property:</b> No-results message.<a name="line.376"></a>
-<span class="sourceLineNo">377</span> * <p><a name="line.377"></a>
-<span class="sourceLineNo">378</span> * <ul><a name="line.378"></a>
-<span class="sourceLineNo">379</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.noResultsMessage"</js><a name="line.379"></a>
-<span class="sourceLineNo">380</span> * <li><b>Data type:</b> <code>String</code><a name="line.380"></a>
-<span class="sourceLineNo">381</span> * <li><b>Default:</b> <js>"&lt;p&gt;no results&lt;/p&gt;"</js><a name="line.381"></a>
-<span class="sourceLineNo">382</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.382"></a>
-<span class="sourceLineNo">383</span> * </ul><a name="line.383"></a>
-<span class="sourceLineNo">384</span> * <p><a name="line.384"></a>
-<span class="sourceLineNo">385</span> * Allows you to specify the string message used when trying to serialize an empty array or empty list.<a name="line.385"></a>
+<span class="sourceLineNo">361</span> * By default, the footer section is empty.<a name="line.361"></a>
+<span class="sourceLineNo">362</span> * <p><a name="line.362"></a>
+<span class="sourceLineNo">363</span> *<a name="line.363"></a>
+<span class="sourceLineNo">364</span> * <h5 class='section'>Example:</h5><a name="line.364"></a>
+<span class="sourceLineNo">365</span> * <p class='bcode'><a name="line.365"></a>
+<span class="sourceLineNo">366</span> * <ja>@RestResource</ja>(<a name="line.366"></a>
+<span class="sourceLineNo">367</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.367"></a>
+<span class="sourceLineNo">368</span> * footer=<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js><a name="line.368"></a>
+<span class="sourceLineNo">369</span> * )<a name="line.369"></a>
+<span class="sourceLineNo">370</span> * )<a name="line.370"></a>
+<span class="sourceLineNo">371</span> * </p><a name="line.371"></a>
+<span class="sourceLineNo">372</span> * <p><a name="line.372"></a>
+<span class="sourceLineNo">373</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.373"></a>
+<span class="sourceLineNo">374</span> */<a name="line.374"></a>
+<span class="sourceLineNo">375</span> public static final String HTMLDOC_footer = "HtmlDocSerializer.footer";<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span> /**<a name="line.377"></a>
+<span class="sourceLineNo">378</span> * <b>Configuration property:</b> No-results message.<a name="line.378"></a>
+<span class="sourceLineNo">379</span> * <p><a name="line.379"></a>
+<span class="sourceLineNo">380</span> * <ul><a name="line.380"></a>
+<span class="sourceLineNo">381</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.noResultsMessage"</js><a name="line.381"></a>
+<span class="sourceLineNo">382</span> * <li><b>Data type:</b> <code>String</code><a name="line.382"></a>
+<span class="sourceLineNo">383</span> * <li><b>Default:</b> <js>"&lt;p&gt;no results&lt;/p&gt;"</js><a name="line.383"></a>
+<span class="sourceLineNo">384</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.384"></a>
+<span class="sourceLineNo">385</span> * </ul><a name="line.385"></a>
<span class="sourceLineNo">386</span> * <p><a name="line.386"></a>
-<span class="sourceLineNo">387</span> *<a name="line.387"></a>
-<span class="sourceLineNo">388</span> * <h5 class='section'>Example:</h5><a name="line.388"></a>
-<span class="sourceLineNo">389</span> * <p class='bcode'><a name="line.389"></a>
-<span class="sourceLineNo">390</span> * <ja>@RestResource</ja>(<a name="line.390"></a>
-<span class="sourceLineNo">391</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.391"></a>
-<span class="sourceLineNo">392</span> * =<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js><a name="line.392"></a>
-<span class="sourceLineNo">393</span> * )<a name="line.393"></a>
-<span class="sourceLineNo">394</span> * )<a name="line.394"></a>
-<span class="sourceLineNo">395</span> * </p><a name="line.395"></a>
-<span class="sourceLineNo">396</span> * <p><a name="line.396"></a>
-<span class="sourceLineNo">397</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.397"></a>
-<span class="sourceLineNo">398</span> */<a name="line.398"></a>
-<span class="sourceLineNo">399</span> public static final String HTMLDOC_noResultsMessage = "HtmlDocSerializer.noResultsMessage";<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span> /**<a name="line.401"></a>
-<span class="sourceLineNo">402</span> * <b>Configuration property:</b> Prevent word wrap on page.<a name="line.402"></a>
-<span class="sourceLineNo">403</span> * <p><a name="line.403"></a>
-<span class="sourceLineNo">404</span> * <ul><a name="line.404"></a>
-<span class="sourceLineNo">405</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.nowrap"</js><a name="line.405"></a>
-<span class="sourceLineNo">406</span> * <li><b>Data type:</b> <code>Boolean</code><a name="line.406"></a>
-<span class="sourceLineNo">407</span> * <li><b>Default:</b> <jk>false</jk><a name="line.407"></a>
-<span class="sourceLineNo">408</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.408"></a>
-<span class="sourceLineNo">409</span> * </ul><a name="line.409"></a>
-<span class="sourceLineNo">410</span> * <p><a name="line.410"></a>
-<span class="sourceLineNo">411</span> * Adds <js>"* {white-space:nowrap}"</js> to the CSS instructions on the page to prevent word wrapping.<a name="line.411"></a>
-<span class="sourceLineNo">412</span> */<a name="line.412"></a>
-<span class="sourceLineNo">413</span> public static final String HTMLDOC_nowrap = "HtmlDocSerializer.nowrap";<a name="line.413"></a>
-<span class="sourceLineNo">414</span><a name="line.414"></a>
-<span class="sourceLineNo">415</span> /**<a name="line.415"></a>
-<span class="sourceLineNo">416</span> * <b>Configuration property:</b> Stylesheet URL.<a name="line.416"></a>
-<span class="sourceLineNo">417</span> * <p><a name="line.417"></a>
-<span class="sourceLineNo">418</span> * <ul><a name="line.418"></a>
-<span class="sourceLineNo">419</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.cssUrl"</js><a name="line.419"></a>
-<span class="sourceLineNo">420</span> * <li><b>Data type:</b> <code>String</code><a name="line.420"></a>
-<span class="sourceLineNo">421</span> * <li><b>Default:</b> <js>"style.css"</js><a name="line.421"></a>
-<span class="sourceLineNo">422</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.422"></a>
-<span class="sourceLineNo">423</span> * </ul><a name="line.423"></a>
-<span class="sourceLineNo">424</span> * <p><a name="line.424"></a>
-<span class="sourceLineNo">425</span> * Adds a link to the specified stylesheet URL.<a name="line.425"></a>
+<span class="sourceLineNo">387</span> * Allows you to specify the string message used when trying to serialize an empty array or empty list.<a name="line.387"></a>
+<span class="sourceLineNo">388</span> * <p><a name="line.388"></a>
+<span class="sourceLineNo">389</span> *<a name="line.389"></a>
+<span class="sourceLineNo">390</span> * <h5 class='section'>Example:</h5><a name="line.390"></a>
+<span class="sourceLineNo">391</span> * <p class='bcode'><a name="line.391"></a>
+<span class="sourceLineNo">392</span> * <ja>@RestResource</ja>(<a name="line.392"></a>
+<span class="sourceLineNo">393</span> * htmldoc=<ja>@HtmlDoc</ja>(<a name="line.393"></a>
+<span class="sourceLineNo">394</span> * =<js>"&lt;b&gt;This interface is great!&lt;/b&gt;"</js><a name="line.394"></a>
+<span class="sourceLineNo">395</span> * )<a name="line.395"></a>
+<span class="sourceLineNo">396</span> * )<a name="line.396"></a>
+<span class="sourceLineNo">397</span> * </p><a name="line.397"></a>
+<span class="sourceLineNo">398</span> * <p><a name="line.398"></a>
+<span class="sourceLineNo">399</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.399"></a>
+<span class="sourceLineNo">400</span> */<a name="line.400"></a>
+<span class="sourceLineNo">401</span> public static final String HTMLDOC_noResultsMessage = "HtmlDocSerializer.noResultsMessage";<a name="line.401"></a>
+<span class="sourceLineNo">402</span><a name="line.402"></a>
+<span class="sourceLineNo">403</span> /**<a name="line.403"></a>
+<span class="sourceLineNo">404</span> * <b>Configuration property:</b> Prevent word wrap on page.<a name="line.404"></a>
+<span class="sourceLineNo">405</span> * <p><a name="line.405"></a>
+<span class="sourceLineNo">406</span> * <ul><a name="line.406"></a>
+<span class="sourceLineNo">407</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.nowrap"</js><a name="line.407"></a>
+<span class="sourceLineNo">408</span> * <li><b>Data type:</b> <code>Boolean</code><a name="line.408"></a>
+<span class="sourceLineNo">409</span> * <li><b>Default:</b> <jk>false</jk><a name="line.409"></a>
+<span class="sourceLineNo">410</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.410"></a>
+<span class="sourceLineNo">411</span> * </ul><a name="line.411"></a>
+<span class="sourceLineNo">412</span> * <p><a name="line.412"></a>
+<span class="sourceLineNo">413</span> * Adds <js>"* {white-space:nowrap}"</js> to the CSS instructions on the page to prevent word wrapping.<a name="line.413"></a>
+<span class="sourceLineNo">414</span> */<a name="line.414"></a>
+<span class="sourceLineNo">415</span> public static final String HTMLDOC_nowrap = "HtmlDocSerializer.nowrap";<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span> /**<a name="line.417"></a>
+<span class="sourceLineNo">418</span> * <b>Configuration property:</b> Stylesheet URL.<a name="line.418"></a>
+<span class="sourceLineNo">419</span> * <p><a name="line.419"></a>
+<span class="sourceLineNo">420</span> * <ul><a name="line.420"></a>
+<span class="sourceLineNo">421</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.cssUrl"</js><a name="line.421"></a>
+<span class="sourceLineNo">422</span> * <li><b>Data type:</b> <code>String</code><a name="line.422"></a>
+<span class="sourceLineNo">423</span> * <li><b>Default:</b> <js>"style.css"</js><a name="line.423"></a>
+<span class="sourceLineNo">424</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.424"></a>
+<span class="sourceLineNo">425</span> * </ul><a name="line.425"></a>
<span class="sourceLineNo">426</span> * <p><a name="line.426"></a>
-<span class="sourceLineNo">427</span> * If not specified, defaults to the built-in stylesheet located at <js>"style.css"</js>.<a name="line.427"></a>
-<span class="sourceLineNo">428</span> * Note that this stylesheet is controlled by the <code><ja>@RestResource</ja>.stylesheet()</code> annotation.<a name="line.428"></a>
-<span class="sourceLineNo">429</span> * <p><a name="line.429"></a>
-<span class="sourceLineNo">430</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.430"></a>
-<span class="sourceLineNo">431</span> */<a name="line.431"></a>
-<span class="sourceLineNo">432</span> public static final String HTMLDOC_cssUrl = "HtmlDocSerializer.cssUrl";<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span> /**<a name="line.434"></a>
-<span class="sourceLineNo">435</span> * <b>Configuration property:</b> CSS code.<a name="line.435"></a>
-<span class="sourceLineNo">436</span> * <p><a name="line.436"></a>
-<span class="sourceLineNo">437</span> * <ul><a name="line.437"></a>
-<span class="sourceLineNo">438</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.css.list"</js><a name="line.438"></a>
-<span class="sourceLineNo">439</span> * <li><b>Data type:</b> <code>List&lt;String&gt;</code><a name="line.439"></a>
-<span class="sourceLineNo">440</span> * <li><b>Default:</b> empty list<a name="line.440"></a>
-<span class="sourceLineNo">441</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.441"></a>
-<span class="sourceLineNo">442</span> * </ul><a name="line.442"></a>
-<span class="sourceLineNo">443</span> * <p><a name="line.443"></a>
-<span class="sourceLineNo">444</span> * Adds the specified CSS instructions to the HTML page.<a name="line.444"></a>
-<span class="sourceLineNo">445</span> *<a name="line.445"></a>
-<span class="sourceLineNo">446</span> * <h5 class='section'>Example:</h5><a name="line.446"></a>
-<span class="sourceLineNo">447</span> * </p><a name="line.447"></a>
-<span class="sourceLineNo">448</span> * <p class='bcode'><a name="line.448"></a>
-<span class="sourceLineNo">449</span> * <ja>@RestResource</ja>(<a name="line.449"></a>
-<span class="sourceLineNo">450</span> * properties={<a name="line.450"></a>
-<span class="sourceLineNo">451</span> * <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_css</jsf>, value=<js>"h3 { color: red; }\nh5 { font-weight: bold; }"</js>)<a name="line.451"></a>
-<span class="sourceLineNo">452</span> * }<a name="line.452"></a>
-<span class="sourceLineNo">453</span> * )<a name="line.453"></a>
-<span class="sourceLineNo">454</span> * </p><a name="line.454"></a>
-<span class="sourceLineNo">455</span> * A shortcut on <ja>@RestResource</ja> is also provided for this setting:<a name="line.455"></a>
-<span class="sourceLineNo">456</span> * <p class='bcode'><a name="line.456"></a>
-<span class="sourceLineNo">457</span> * <ja>@RestResource</ja>(<a name="line.457"></a>
-<span class="sourceLineNo">458</span> * htmldoc=@HtmlDoc(<a name="line.458"></a>
-<span class="sourceLineNo">459</span> * css=<js>"h3 { color: red; }\nh5 { font-weight: bold; }"</js><a name="line.459"></a>
-<span class="sourceLineNo">460</span> * )<a name="line.460"></a>
-<span class="sourceLineNo">461</span> * )<a name="line.461"></a>
-<span class="sourceLineNo">462</span> * </p><a name="line.462"></a>
-<span class="sourceLineNo">463</span> */<a name="line.463"></a>
-<span class="sourceLineNo">464</span> public static final String HTMLDOC_css = "HtmlDocSerializer.css.list";<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span> /**<a name="line.466"></a>
-<span class="sourceLineNo">467</span> * <b>Configuration property:</b> Add to the {@link #HTMLDOC_css} property.<a name="line.467"></a>
-<span class="sourceLineNo">468</span> */<a name="line.468"></a>
-<span class="sourceLineNo">469</span> public static final String HTMLDOC_css_add = "HtmlDocSerializer.css.list.add";<a name="line.469"></a>
-<span class="sourceLineNo">470</span><a name="line.470"></a>
-<span class="sourceLineNo">471</span> /**<a name="line.471"></a>
-<span class="sourceLineNo">472</span> * <b>Configuration property:</b> HTML document template.<a name="line.472"></a>
-<span class="sourceLineNo">473</span> * <p><a name="line.473"></a>
-<span class="sourceLineNo">474</span> * <ul><a name="line.474"></a>
-<span class="sourceLineNo">475</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.template"</js><a name="line.475"></a>
-<span class="sourceLineNo">476</span> * <li><b>Data type:</b> <code>Class&lt;? <jk>extends</jk> HtmlDocTemplate&gt;</code> or {@link HtmlDocTemplate}<a name="line.476"></a>
-<span class="sourceLineNo">477</span> * <li><b>Default:</b> <code>HtmlDocTemplateBasic.<jk>class</jk></code><a name="line.477"></a>
-<span class="sourceLineNo">478</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.478"></a>
-<span class="sourceLineNo">479</span> * </ul><a name="line.479"></a>
-<span class="sourceLineNo">480</span> * <p><a name="line.480"></a>
-<span class="sourceLineNo">481</span> * Specifies the template to use for serializing the page.<a name="line.481"></a>
+<span class="sourceLineNo">427</span> * Adds a link to the specified stylesheet URL.<a name="line.427"></a>
+<span class="sourceLineNo">428</span> * <p><a name="line.428"></a>
+<span class="sourceLineNo">429</span> * If not specified, defaults to the built-in stylesheet located at <js>"style.css"</js>.<a name="line.429"></a>
+<span class="sourceLineNo">430</span> * Note that this stylesheet is controlled by the <code><ja>@RestResource</ja>.stylesheet()</code> annotation.<a name="line.430"></a>
+<span class="sourceLineNo">431</span> * <p><a name="line.431"></a>
+<span class="sourceLineNo">432</span> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string.<a name="line.432"></a>
+<span class="sourceLineNo">433</span> */<a name="line.433"></a>
+<span class="sourceLineNo">434</span> public static final String HTMLDOC_cssUrl = "HtmlDocSerializer.cssUrl";<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span> /**<a name="line.436"></a>
+<span class="sourceLineNo">437</span> * <b>Configuration property:</b> CSS code.<a name="line.437"></a>
+<span class="sourceLineNo">438</span> * <p><a name="line.438"></a>
+<span class="sourceLineNo">439</span> * <ul><a name="line.439"></a>
+<span class="sourceLineNo">440</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.css.list"</js><a name="line.440"></a>
+<span class="sourceLineNo">441</span> * <li><b>Data type:</b> <code>List&lt;String&gt;</code><a name="line.441"></a>
+<span class="sourceLineNo">442</span> * <li><b>Default:</b> empty list<a name="line.442"></a>
+<span class="sourceLineNo">443</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.443"></a>
+<span class="sourceLineNo">444</span> * </ul><a name="line.444"></a>
+<span class="sourceLineNo">445</span> * <p><a name="line.445"></a>
+<span class="sourceLineNo">446</span> * Adds the specified CSS instructions to the HTML page.<a name="line.446"></a>
+<span class="sourceLineNo">447</span> *<a name="line.447"></a>
+<span class="sourceLineNo">448</span> * <h5 class='section'>Example:</h5><a name="line.448"></a>
+<span class="sourceLineNo">449</span> * </p><a name="line.449"></a>
+<span class="sourceLineNo">450</span> * <p class='bcode'><a name="line.450"></a>
+<span class="sourceLineNo">451</span> * <ja>@RestResource</ja>(<a name="line.451"></a>
+<span class="sourceLineNo">452</span> * properties={<a name="line.452"></a>
+<span class="sourceLineNo">453</span> * <ja>@Property</ja>(name=HtmlDocSerializerContext.<jsf>HTMLDOC_css</jsf>, value=<js>"h3 { color: red; }\nh5 { font-weight: bold; }"</js>)<a name="line.453"></a>
+<span class="sourceLineNo">454</span> * }<a name="line.454"></a>
+<span class="sourceLineNo">455</span> * )<a name="line.455"></a>
+<span class="sourceLineNo">456</span> * </p><a name="line.456"></a>
+<span class="sourceLineNo">457</span> * A shortcut on <ja>@RestResource</ja> is also provided for this setting:<a name="line.457"></a>
+<span class="sourceLineNo">458</span> * <p class='bcode'><a name="line.458"></a>
+<span class="sourceLineNo">459</span> * <ja>@RestResource</ja>(<a name="line.459"></a>
+<span class="sourceLineNo">460</span> * htmldoc=@HtmlDoc(<a name="line.460"></a>
+<span class="sourceLineNo">461</span> * css=<js>"h3 { color: red; }\nh5 { font-weight: bold; }"</js><a name="line.461"></a>
+<span class="sourceLineNo">462</span> * )<a name="line.462"></a>
+<span class="sourceLineNo">463</span> * )<a name="line.463"></a>
+<span class="sourceLineNo">464</span> * </p><a name="line.464"></a>
+<span class="sourceLineNo">465</span> */<a name="line.465"></a>
+<span class="sourceLineNo">466</span> public static final String HTMLDOC_css = "HtmlDocSerializer.css.list";<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span> /**<a name="line.468"></a>
+<span class="sourceLineNo">469</span> * <b>Configuration property:</b> Add to the {@link #HTMLDOC_css} property.<a name="line.469"></a>
+<span class="sourceLineNo">470</span> */<a name="line.470"></a>
+<span class="sourceLineNo">471</span> public static final String HTMLDOC_css_add = "HtmlDocSerializer.css.list.add";<a name="line.471"></a>
+<span class="sourceLineNo">472</span><a name="line.472"></a>
+<span class="sourceLineNo">473</span> /**<a name="line.473"></a>
+<span class="sourceLineNo">474</span> * <b>Configuration property:</b> HTML document template.<a name="line.474"></a>
+<span class="sourceLineNo">475</span> * <p><a name="line.475"></a>
+<span class="sourceLineNo">476</span> * <ul><a name="line.476"></a>
+<span class="sourceLineNo">477</span> * <li><b>Name:</b> <js>"HtmlDocSerializer.template"</js><a name="line.477"></a>
+<span class="sourceLineNo">478</span> * <li><b>Data type:</b> <code>Class&lt;? <jk>extends</jk> HtmlDocTemplate&gt;</code> or {@link HtmlDocTemplate}<a name="line.478"></a>
+<span class="sourceLineNo">479</span> * <li><b>Default:</b> <code>HtmlDocTemplateBasic.<jk>class</jk></code><a name="line.479"></a>
+<span class="sourceLineNo">480</span> * <li><b>Session-overridable:</b> <jk>true</jk><a name="line.480"></a>
+<span class="sourceLineNo">481</span> * </ul><a name="line.481"></a>
<span class="sourceLineNo">482</span> * <p><a name="line.482"></a>
-<span class="sourceLineNo">483</span> * By default, the {@link HtmlDocTemplateBasic} class is used to construct the contents of the HTML page, but<a name="line.483"></a>
-<span class="sourceLineNo">484</span> * can be overridden with your own custom implementation class.<a name="line.484"></a>
-<span class="sourceLineNo">485</span> *<a name="line.485"></a>
-<span class="sourceLineNo">486</span> * <h5 class='section'>Example:</h5><a name="line.486"></a>
-<span class="sourceLineNo">487</span> * <p class='bcode'><a name="line.487"></a>
-<span class="sourceLineNo">488</span> * <ja>@RestResource</ja>(<a name="line.488"></a>
-<span class="sourceLineNo">489</span> * htmldoc=@HtmlDoc(<a name="line.489"></a>
-<span class="sourceLineNo">490</span> * template=MySpecialDocTemplate.<jk>class</jk><a name="line.490"></a>
-<span class="sourceLineNo">491</span> * )<a name="line.491"></a>
-<span class="sourceLineNo">492</span> * )<a name="line.492"></a>
-<span class="sourceLineNo">493</span> * </p><a name="line.493"></a>
-<span class="sourceLineNo">494</span> */<a name="line.494"></a>
-<span class="sourceLineNo">495</span> public static final String HTMLDOC_template = "HtmlDocSerializer.template";<a name="line.495"></a>
-<span class="sourceLineNo">496</span><a name="line.496"></a>
-<span class="sourceLineNo">497</span><a name="line.497"></a>
-<span class="sourceLineNo">498</span> final String[] css;<a name="line.498"></a>
-<span class="sourceLineNo">499</span> final Map<String,String> links;<a name="line.499"></a>
-<span class="sourceLineNo">500</span> final String title, description, branding, header, nav, aside, footer, cssUrl, noResultsMessage;<a name="line.500"></a>
-<span class="sourceLineNo">501</span> final boolean nowrap;<a name="line.501"></a>
-<span class="sourceLineNo">502</span> final HtmlDocTemplate template;<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span> /**<a name="line.504"></a>
-<span class="sourceLineNo">505</span> * Constructor.<a name="line.505"></a>
-<span class="sourceLineNo">506</span> * <p><a name="line.506"></a>
-<span class="sourceLineNo">507</span> * Typically only called from {@link PropertyStore#getContext(Class)}.<a name="line.507"></a>
-<span class="sourceLineNo">508</span> *<a name="line.508"></a>
-<span class="sourceLineNo">509</span> * @param ps The property store that created this context.<a name="line.509"></a>
-<span class="sourceLineNo">510</span> */<a name="line.510"></a>
-<span class="sourceLineNo">511</span> public HtmlDocSerializerContext(PropertyStore ps) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span> super(ps);<a name="line.512"></a>
-<span class="sourceLineNo">513</span> css = ps.getProperty(HTMLDOC_css, String[].class, new String[0]);<a name="line.513"></a>
-<span class="sourceLineNo">514</span> title = ps.getProperty(HTMLDOC_title, String.class, null);<a name="line.514"></a>
-<span class="sourceLineNo">515</span> description = ps.getProperty(HTMLDOC_description, String.class, null);<a name="line.515"></a>
-<span class="sourceLineNo">516</span> branding = ps.getProperty(HTMLDOC_branding, String.class, null);<a name="line.516"></a>
-<span class="sourceLineNo">517</span> header = ps.getProperty(HTMLDOC_header, String.class, null);<a name="line.517"></a>
-<span class="sourceLineNo">518</span> nav = ps.getProperty(HTMLDOC_nav, String.class, null);<a name="line.518"></a>
-<span class="sourceLineNo">519</span> aside = ps.getProperty(HTMLDOC_aside, String.class, null);<a name="line.519"></a>
-<span class="sourceLineNo">520</span> footer = ps.getProperty(HTMLDOC_footer, String.class, null);<a name="line.520"></a>
-<span class="sourceLineNo">521</span> cssUrl = ps.getProperty(HTMLDOC_cssUrl, String.class, null);<a name="line.521"></a>
-<span class="sourceLineNo">522</span> nowrap = ps.getProperty(HTMLDOC_nowrap, boolean.class, false);<a name="line.522"></a>
-<span class="sourceLineNo">523</span> links = ps.getMap(HTMLDOC_links, String.class, String.class, null);<a name="line.523"></a>
-<span class="sourceLineNo">524</span> noResultsMessage = ps.getProperty(HTMLDOC_noResultsMessage, String.class, "<p>no results</p>");<a name="line.524"></a>
-<span class="sourceLineNo">525</span> template = ps.getTypedProperty(HTMLDOC_template, HtmlDocTemplate.class, HtmlDocTemplateBasic.class);<a name="line.525"></a>
-<span class="sourceLineNo">526</span> }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span> @Override /* Context */<a name="line.528"></a>
-<span class="sourceLineNo">529</span> public ObjectMap asMap() {<a name="line.529"></a>
-<span class="sourceLineNo">530</span> return super.asMap()<a name="line.530"></a>
-<span class="sourceLineNo">531</span> .append("HtmlDocSerializerContext", new ObjectMap()<a name="line.531"></a>
-<span class="sourceLineNo">532</span> .append("cssImports", css)<a name="line.532"></a>
-<span class="sourceLineNo">533</span> .append("title", title)<a name="line.533"></a>
-<span class="sourceLineNo">534</span> .append("text", description)<a name="line.534"></a>
-<span class="sourceLineNo">535</span> .append("branding", branding)<a name="line.535"></a>
-<span class="sourceLineNo">536</span> .append("header", header)<a name="line.536"></a>
-<span class="sourceLineNo">537</span> .append("nav", nav)<a name="line.537"></a>
-<span class="sourceLineNo">538</span> .append("links", links)<a name="line.538"></a>
-<span class="sourceLineNo">539</span> .append("aside", aside)<a name="line.539"></a>
-<span class="sourceLineNo">540</span> .append("footer", footer)<a name="line.540"></a>
-<span class="sourceLineNo">541</span> .append("cssUrl", cssUrl)<a name="line.541"></a>
-<span class="sourceLineNo">542</span> .append("nowrap", nowrap)<a name="line.542"></a>
-<span class="sourceLineNo">543</span> .append("template", template)<a name="line.543"></a>
-<span class="sourceLineNo">544</span> .append("noResultsMessage", noResultsMessage)<a name="line.544"></a>
-<span class="sourceLineNo">545</span> );<a name="line.545"></a>
-<span class="sourceLineNo">546</span> }<a name="line.546"></a>
-<span class="sourceLineNo">547</span>}<a name="line.547"></a>
+<span class="sourceLineNo">483</span> * Specifies the template to use for serializing the page.<a name="line.483"></a>
+<span class="sourceLineNo">484</span> * <p><a name="line.484"></a>
+<span class="sourceLineNo">485</span> * By default, the {@link HtmlDocTemplateBasic} class is used to construct the contents of the HTML page, but<a name="line.485"></a>
+<span class="sourceLineNo">486</span> * can be overridden with your own custom implementation class.<a name="line.486"></a>
+<span class="sourceLineNo">487</span> *<a name="line.487"></a>
+<span class="sourceLineNo">488</span> * <h5 class='section'>Example:</h5><a name="line.488"></a>
+<span class="sourceLineNo">489</span> * <p class='bcode'><a name="line.489"></a>
+<span class="sourceLineNo">490</span> * <ja>@RestResource</ja>(<a name="line.490"></a>
+<span class="sourceLineNo">491</span> * htmldoc=@HtmlDoc(<a name="line.491"></a>
+<span class="sourceLineNo">492</span> * template=MySpecialDocTemplate.<jk>class</jk><a name="line.492"></a>
+<span class="sourceLineNo">493</span> * )<a name="line.493"></a>
+<span class="sourceLineNo">494</span> * )<a name="line.494"></a>
+<span class="sourceLineNo">495</span> * </p><a name="line.495"></a>
+<span class="sourceLineNo">496</span> */<a name="line.496"></a>
+<span class="sourceLineNo">497</span> public static final String HTMLDOC_template = "HtmlDocSerializer.template";<a name="line.497"></a>
+<span class="sourceLineNo">498</span><a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span> final String[] css;<a name="line.500"></a>
+<span class="sourceLineNo">501</span> final Map<String,Object> links;<a name="line.501"></a>
+<span class="sourceLineNo">502</span> final String title, description, branding, header, nav, aside, footer, cssUrl, noResultsMessage;<a name="line.502"></a>
+<span class="sourceLineNo">503</span> final boolean nowrap;<a name="line.503"></a>
+<span class="sourceLineNo">504</span> final HtmlDocTemplate template;<a name="line.504"></a>
+<span class="sourceLineNo">505</span><a name="line.505"></a>
+<span class="sourceLineNo">506</span> /**<a name="line.506"></a>
+<span class="sourceLineNo">507</span> * Constructor.<a name="line.507"></a>
+<span class="sourceLineNo">508</span> * <p><a name="line.508"></a>
+<span class="sourceLineNo">509</span> * Typically only called from {@link PropertyStore#getContext(Class)}.<a name="line.509"></a>
+<span class="sourceLineNo">510</span> *<a name="line.510"></a>
+<span class="sourceLineNo">511</span> * @param ps The property store that created this context.<a name="line.511"></a>
+<span class="sourceLineNo">512</span> */<a name="line.512"></a>
+<span class="sourceLineNo">513</span> public HtmlDocSerializerContext(PropertyStore ps) {<a name="line.513"></a>
+<span class="sourceLineNo">514</span> super(ps);<a name="line.514"></a>
+<span class="sourceLineNo">515</span> css = ps.getProperty(HTMLDOC_css, String[].class, new String[0]);<a name="line.515"></a>
+<span class="sourceLineNo">516</span> title = ps.getProperty(HTMLDOC_title, String.class, null);<a name="line.516"></a>
+<span class="sourceLineNo">517</span> description = ps.getProperty(HTMLDOC_description, String.class, null);<a name="line.517"></a>
+<span class="sourceLineNo">518</span> branding = ps.getProperty(HTMLDOC_branding, String.class, null);<a name="line.518"></a>
+<span class="sourceLineNo">519</span> header = ps.getProperty(HTMLDOC_header, String.class, null);<a name="line.519"></a>
+<span class="sourceLineNo">520</span> nav = ps.getProperty(HTMLDOC_nav, String.class, null);<a name="line.520"></a>
+<span class="sourceLineNo">521</span> aside = ps.getProperty(HTMLDOC_aside, String.class, null);<a name="line.521"></a>
+<span class="sourceLineNo">522</span> footer = ps.getProperty(HTMLDOC_footer, String.class, null);<a name="line.522"></a>
+<span class="sourceLineNo">523</span> cssUrl = ps.getProperty(HTMLDOC_cssUrl, String.class, null);<a name="line.523"></a>
+<span class="sourceLineNo">524</span> nowrap = ps.getProperty(HTMLDOC_nowrap, boolean.class, false);<a name="line.524"></a>
+<span class="sourceLineNo">525</span> links = ps.getMap(HTMLDOC_links, String.class, Object.class, null);<a name="line.525"></a>
+<span class="sourceLineNo">526</span> noResultsMessage = ps.getProperty(HTMLDOC_noResultsMessage, String.class, "<p>no results</p>");<a name="line.526"></a>
+<span class="sourceLineNo">527</span> template = ps.getTypedProperty(HTMLDOC_template, HtmlDocTemplate.class, HtmlDocTemplateBasic.class);<a name="line.527"></a>
+<span class="sourceLineNo">528</span> }<a name="line.528"></a>
+<span class="sourceLineNo">529</span><a name="line.529"></a>
+<span class="sourceLineNo">530</span> @Override /* Context */<a name="line.530"></a>
+<span class="sourceLineNo">531</span> public ObjectMap asMap() {<a name="line.531"></a>
+<span class="sourceLineNo">532</span> return super.asMap()<a name="line.532"></a>
+<span class="sourceLineNo">533</span> .append("HtmlDocSerializerContext", new ObjectMap()<a name="line.533"></a>
+<span class="sourceLineNo">534</span> .append("cssImports", css)<a name="line.534"></a>
+<span class="sourceLineNo">535</span> .append("title", title)<a name="line.535"></a>
+<span class="sourceLineNo">536</span> .append("text", description)<a name="line.536"></a>
+<span class="sourceLineNo">537</span> .append("branding", branding)<a name="line.537"></a>
+<span class="sourceLineNo">538</span> .append("header", header)<a name="line.538"></a>
+<span class="sourceLineNo">539</span> .append("nav", nav)<a name="line.539"></a>
+<span class="sourceLineNo">540</span> .append("links", links)<a name="line.540"></a>
+<span class="sourceLineNo">541</span> .append("aside", aside)<a name="line.541"></a>
+<span class="sourceLineNo">542</span> .append("footer", footer)<a name="line.542"></a>
+<span class="sourceLineNo">543</span> .append("cssUrl", cssUrl)<a name="line.543"></a>
+<span class="sourceLineNo">544</span> .append("nowrap", nowrap)<a name="line.544"></a>
+<span class="sourceLineNo">545</span> .append("template", template)<a name="line.545"></a>
+<span class="sourceLineNo">546</span> .append("noResultsMessage", noResultsMessage)<a name="line.546"></a>
+<span class="sourceLineNo">547</span> );<a name="line.547"></a>
+<span class="sourceLineNo">548</span> }<a name="line.548"></a>
+<span class="sourceLineNo">549</span>}<a name="line.549"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerSession.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerSession.html
index f1ae30c..7b0bb8d 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocSerializerSession.html
@@ -43,7 +43,7 @@
<span class="sourceLineNo">035</span><a name="line.35"></a>
<span class="sourceLineNo">036</span> private final String title, description, branding, header, nav, aside, footer, cssUrl, noResultsMessage;<a name="line.36"></a>
<span class="sourceLineNo">037</span> private final String[] css;<a name="line.37"></a>
-<span class="sourceLineNo">038</span> private final Map<String,String> links;<a name="line.38"></a>
+<span class="sourceLineNo">038</span> private final Map<String,Object> links;<a name="line.38"></a>
<span class="sourceLineNo">039</span> private final boolean nowrap;<a name="line.39"></a>
<span class="sourceLineNo">040</span> private final HtmlDocTemplate template;<a name="line.40"></a>
<span class="sourceLineNo">041</span><a name="line.41"></a>
@@ -166,7 +166,7 @@
<span class="sourceLineNo">158</span> * @return The {@link HtmlDocSerializerContext#HTMLDOC_links} setting value in this context.<a name="line.158"></a>
<span class="sourceLineNo">159</span> * <jk>null</jk> if not specified. Never an empty map.<a name="line.159"></a>
<span class="sourceLineNo">160</span> */<a name="line.160"></a>
-<span class="sourceLineNo">161</span> public final Map<String,String> getLinks() {<a name="line.161"></a>
+<span class="sourceLineNo">161</span> public final Map<String,Object> getLinks() {<a name="line.161"></a>
<span class="sourceLineNo">162</span> return links;<a name="line.162"></a>
<span class="sourceLineNo">163</span> }<a name="line.163"></a>
<span class="sourceLineNo">164</span><a name="line.164"></a>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/2871fb5d/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
index d91dd63..494bb98 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/html/HtmlDocTemplateBasic.html
@@ -120,83 +120,87 @@
<span class="sourceLineNo">112</span> if (exists(nav))<a name="line.112"></a>
<span class="sourceLineNo">113</span> w.append(2, nav).nl(2);<a name="line.113"></a>
<span class="sourceLineNo">114</span> } else {<a name="line.114"></a>
-<span class="sourceLineNo">115</span> Map<String,String> htmlLinks = session.getLinks();<a name="line.115"></a>
+<span class="sourceLineNo">115</span> Map<String,Object> htmlLinks = session.getLinks();<a name="line.115"></a>
<span class="sourceLineNo">116</span> boolean first = true;<a name="line.116"></a>
<span class="sourceLineNo">117</span> if (htmlLinks != null) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span> for (Map.Entry<String,String> e : htmlLinks.entrySet()) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span> if (! first)<a name="line.119"></a>
-<span class="sourceLineNo">120</span> w.append(3, " - ").nl(3);<a name="line.120"></a>
-<span class="sourceLineNo">121</span> first = false;<a name="line.121"></a>
-<span class="sourceLineNo">122</span> w.oTag("a").attr("class", "link").attr("href", session.resolveUri(e.getValue()), true).cTag().text(e.getKey(), true).eTag("a");<a name="line.122"></a>
-<span class="sourceLineNo">123</span> }<a name="line.123"></a>
-<span class="sourceLineNo">124</span> }<a name="line.124"></a>
-<span class="sourceLineNo">125</span> }<a name="line.125"></a>
-<span class="sourceLineNo">126</span> }<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span> @Override /* HtmlDocTemplate */<a name="line.128"></a>
-<span class="sourceLineNo">129</span> public void aside(HtmlDocSerializerSession session, HtmlWriter w, HtmlDocSerializer s, Object o) throws Exception {<a name="line.129"></a>
-<span class="sourceLineNo">130</span> String aside = session.getAside();<a name="line.130"></a>
-<span class="sourceLineNo">131</span> if (exists(aside))<a name="line.131"></a>
-<span class="sourceLineNo">132</span> w.append(aside);<a name="line.132"></a>
-<span class="sourceLineNo">133</span> }<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span> @Override /* HtmlDocTemplate */<a name="line.135"></a>
-<span class="sourceLineNo">136</span> public void article(HtmlDocSerializerSession session, HtmlWriter w, HtmlDocSerializer s, Object o) throws Exception {<a name="line.136"></a>
-<span class="sourceLineNo">137</span> // To allow for page formatting using CSS, we encapsulate the data inside two div tags:<a name="line.137"></a>
-<span class="sourceLineNo">138</span> // <div class='outerdata'><div class='data' id='data'>...</div></div><a name="line.138"></a>
-<span class="sourceLineNo">139</span> w.oTag(3, "div").attr("class","outerdata").append('>').nl(3);<a name="line.139"></a>
-<span class="sourceLineNo">140</span> w.oTag(4, "div").attr("class","data").attr("id", "data").append('>').nl(4);<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span> if (o == null) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span> w.append(5, "<null/>").nl(5);<a name="line.143"></a>
-<span class="sourceLineNo">144</span> } else if (ObjectUtils.isEmpty(o)){<a name="line.144"></a>
-<span class="sourceLineNo">145</span> String m = session.getNoResultsMessage();<a name="line.145"></a>
-<span class="sourceLineNo">146</span> if (exists(m))<a name="line.146"></a>
-<span class="sourceLineNo">147</span> w.append(5, m).nl(5);<a name="line.147"></a>
-<span class="sourceLineNo">148</span> } else {<a name="line.148"></a>
-<span class="sourceLineNo">149</span> s.parentSerialize(session, o);<a name="line.149"></a>
-<span class="sourceLineNo">150</span> }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span> w.ie(4).eTag("div").nl(4);<a name="line.152"></a>
-<span class="sourceLineNo">153</span> w.ie(4).eTag("div").nl(3);<a name="line.153"></a>
-<span class="sourceLineNo">154</span> }<a name="line.154"></a>
+<span class="sourceLineNo">118</span> for (Map.Entry<String,Object> e : htmlLinks.entrySet()) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span> String v = e.getValue().toString();<a name="line.119"></a>
+<span class="sourceLineNo">120</span> if (! first)<a name="line.120"></a>
+<span class="sourceLineNo">121</span> w.append(3, " - ").nl(3);<a name="line.121"></a>
+<span class="sourceLineNo">122</span> first = false;<a name="line.122"></a>
+<span class="sourceLineNo">123</span> if (v.startsWith("<"))<a name="line.123"></a>
+<span class="sourceLineNo">124</span> w.append(v);<a name="line.124"></a>
+<span class="sourceLineNo">125</span> else<a name="line.125"></a>
+<span class="sourceLineNo">126</span> w.oTag("a").attr("class", "link").attr("href", session.resolveUri(v), true).cTag().text(e.getKey(), true).eTag("a");<a name="line.126"></a>
+<span class="sourceLineNo">127</span> }<a name="line.127"></a>
+<span class="sourceLineNo">128</span> }<a name="line.128"></a>
+<span class="sourceLineNo">129</span> }<a name="line.129"></a>
+<span class="sourceLineNo">130</span> }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span> @Override /* HtmlDocTemplate */<a name="line.132"></a>
+<span class="sourceLineNo">133</span> public void aside(HtmlDocSerializerSession session, HtmlWriter w, HtmlDocSerializer s, Object o) throws Exception {<a name="line.133"></a>
+<span class="sourceLineNo">134</span> String aside = session.getAside();<a name="line.134"></a>
+<span class="sourceLineNo">135</span> if (exists(aside))<a name="line.135"></a>
+<span class="sourceLineNo">136</span> w.append(aside);<a name="line.136"></a>
+<span class="sourceLineNo">137</span> }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span> @Override /* HtmlDocTemplate */<a name="line.139"></a>
+<span class="sourceLineNo">140</span> public void article(HtmlDocSerializerSession session, HtmlWriter w, HtmlDocSerializer s, Object o) throws Exception {<a name="line.140"></a>
+<span class="sourceLineNo">141</span> // To allow for page formatting using CSS, we encapsulate the data inside two div tags:<a name="line.141"></a>
+<span class="sourceLineNo">142</span> // <div class='outerdata'><div class='data' id='data'>...</div></div><a name="line.142"></a>
+<span class="sourceLineNo">143</span> w.oTag(3, "div").attr("class","outerdata").append('>').nl(3);<a name="line.143"></a>
+<span class="sourceLineNo">144</span> w.oTag(4, "div").attr("class","data").attr("id", "data").append('>').nl(4);<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span> if (o == null) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span> w.append(5, "<null/>").nl(5);<a name="line.147"></a>
+<span class="sourceLineNo">148</span> } else if (ObjectUtils.isEmpty(o)){<a name="line.148"></a>
+<span class="sourceLineNo">149</span> String m = session.getNoResultsMessage();<a name="line.149"></a>
+<span class="sourceLineNo">150</span> if (exists(m))<a name="line.150"></a>
+<span class="sourceLineNo">151</span> w.append(5, m).nl(5);<a name="line.151"></a>
+<span class="sourceLineNo">152</span> } else {<a name="line.152"></a>
+<span class="sourceLineNo">153</span> s.parentSerialize(session, o);<a name="line.153"></a>
+<span class="sourceLineNo">154</span> }<a name="line.154"></a>
<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span> @Override /* HtmlDocTemplate */<a name="line.156"></a>
-<span class="sourceLineNo">157</span> public void footer(HtmlDocSerializerSession session, HtmlWriter w, HtmlDocSerializer s, Object o) throws Exception {<a name="line.157"></a>
-<span class="sourceLineNo">158</span> String footer = session.getFooter();<a name="line.158"></a>
-<span class="sourceLineNo">159</span> if (exists(footer))<a name="line.159"></a>
-<span class="sourceLineNo">160</span> w.append(footer);<a name="line.160"></a>
-<span class="sourceLineNo">161</span> }<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span> @Override /* HtmlDocTemplate */<a name="line.163"></a>
-<span class="sourceLineNo">164</span> public boolean hasCss(HtmlDocSerializerSession session) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span> return true;<a name="line.165"></a>
-<span class="sourceLineNo">166</span> }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span> @Override /* HtmlDocTemplate */<a name="line.168"></a>
-<span class="sourceLineNo">169</span> public boolean hasHeader(HtmlDocSerializerSession session) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span> return exists(session.getHeader()) || exists(session.getTitle()) || exists(session.getDescription());<a name="line.170"></a>
-<span class="sourceLineNo">171</span> }<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span> @Override /* HtmlDocTemplate */<a name="line.173"></a>
-<span class="sourceLineNo">174</span> public boolean hasNav(HtmlDocSerializerSession session) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span> return exists(session.getNav()) || session.getLinks() != null;<a name="line.175"></a>
-<span class="sourceLineNo">176</span> }<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span> @Override /* HtmlDocTemplate */<a name="line.178"></a>
-<span class="sourceLineNo">179</span> public boolean hasAside(HtmlDocSerializerSession session) {<a name="line.179"></a>
-<span class="sourceLineNo">180</span> return exists(session.getAside());<a name="line.180"></a>
-<span class="sourceLineNo">181</span> }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span> @Override /* HtmlDocTemplate */<a name="line.183"></a>
-<span class="sourceLineNo">184</span> public boolean hasFooter(HtmlDocSerializerSession session) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span> return exists(session.getFooter());<a name="line.185"></a>
-<span class="sourceLineNo">186</span> }<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span> private static boolean exists(String s) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span> return s != null && ! "NONE".equals(s);<a name="line.189"></a>
+<span class="sourceLineNo">156</span> w.ie(4).eTag("div").nl(4);<a name="line.156"></a>
+<span class="sourceLineNo">157</span> w.ie(4).eTag("div").nl(3);<a name="line.157"></a>
+<span class="sourceLineNo">158</span> }<a name="line.158"></a>
+<span class="sourceLineNo">159</span><a name="line.159"></a>
+<span class="sourceLineNo">160</span> @Override /* HtmlDocTemplate */<a name="line.160"></a>
+<span class="sourceLineNo">161</span> public void footer(HtmlDocSerializerSession session, HtmlWriter w, HtmlDocSerializer s, Object o) throws Exception {<a name="line.161"></a>
+<span class="sourceLineNo">162</span> String footer = session.getFooter();<a name="line.162"></a>
+<span class="sourceLineNo">163</span> if (exists(footer))<a name="line.163"></a>
+<span class="sourceLineNo">164</span> w.append(footer);<a name="line.164"></a>
+<span class="sourceLineNo">165</span> }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span> @Override /* HtmlDocTemplate */<a name="line.167"></a>
+<span class="sourceLineNo">168</span> public boolean hasCss(HtmlDocSerializerSession session) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span> return true;<a name="line.169"></a>
+<span class="sourceLineNo">170</span> }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span> @Override /* HtmlDocTemplate */<a name="line.172"></a>
+<span class="sourceLineNo">173</span> public boolean hasHeader(HtmlDocSerializerSession session) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span> return exists(session.getHeader()) || exists(session.getTitle()) || exists(session.getDescription());<a name="line.174"></a>
+<span class="sourceLineNo">175</span> }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span> @Override /* HtmlDocTemplate */<a name="line.177"></a>
+<span class="sourceLineNo">178</span> public boolean hasNav(HtmlDocSerializerSession session) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span> return exists(session.getNav()) || session.getLinks() != null;<a name="line.179"></a>
+<span class="sourceLineNo">180</span> }<a name="line.180"></a>
+<span class="sourceLineNo">181</span><a name="line.181"></a>
+<span class="sourceLineNo">182</span> @Override /* HtmlDocTemplate */<a name="line.182"></a>
+<span class="sourceLineNo">183</span> public boolean hasAside(HtmlDocSerializerSession session) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span> return exists(session.getAside());<a name="line.184"></a>
+<span class="sourceLineNo">185</span> }<a name="line.185"></a>
+<span class="sourceLineNo">186</span><a name="line.186"></a>
+<span class="sourceLineNo">187</span> @Override /* HtmlDocTemplate */<a name="line.187"></a>
+<span class="sourceLineNo">188</span> public boolean hasFooter(HtmlDocSerializerSession session) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span> return exists(session.getFooter());<a name="line.189"></a>
<span class="sourceLineNo">190</span> }<a name="line.190"></a>
-<span class="sourceLineNo">191</span>}<a name="line.191"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span> private static boolean exists(String s) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span> return s != null && ! "NONE".equals(s);<a name="line.193"></a>
+<span class="sourceLineNo">194</span> }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>}<a name="line.195"></a>