Repository: incubator-juneau-website Updated Branches: refs/heads/asf-site 8e5b7c027 -> cc5ae7c5e
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/cc5ae7c5/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementRawText.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementRawText.html b/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementRawText.html new file mode 100644 index 0000000..4de9a58 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementRawText.html @@ -0,0 +1,131 @@ +<!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.dto.html5;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>import org.apache.juneau.annotation.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span>import org.apache.juneau.xml.annotation.*;<a name="line.16"></a> +<span class="sourceLineNo">017</span><a name="line.17"></a> +<span class="sourceLineNo">018</span>/**<a name="line.18"></a> +<span class="sourceLineNo">019</span> * A subclass of HTML elements that contain <a href="https://www.w3.org/TR/html51/syntax.html#raw-text">raw text</a> only.<a name="line.19"></a> +<span class="sourceLineNo">020</span> */<a name="line.20"></a> +<span class="sourceLineNo">021</span>@SuppressWarnings("hiding")<a name="line.21"></a> +<span class="sourceLineNo">022</span>public class HtmlElementRawText extends HtmlElement {<a name="line.22"></a> +<span class="sourceLineNo">023</span><a name="line.23"></a> +<span class="sourceLineNo">024</span> private Object text;<a name="line.24"></a> +<span class="sourceLineNo">025</span><a name="line.25"></a> +<span class="sourceLineNo">026</span> /**<a name="line.26"></a> +<span class="sourceLineNo">027</span> * Returns the inner text of this element.<a name="line.27"></a> +<span class="sourceLineNo">028</span> *<a name="line.28"></a> +<span class="sourceLineNo">029</span> * @return The inner text of this element, or <jk>null</jk> if no text is set.<a name="line.29"></a> +<span class="sourceLineNo">030</span> */<a name="line.30"></a> +<span class="sourceLineNo">031</span> @Xml(format=XmlFormat.TEXT_PWS)<a name="line.31"></a> +<span class="sourceLineNo">032</span> @BeanProperty(name="c")<a name="line.32"></a> +<span class="sourceLineNo">033</span> public Object getText() {<a name="line.33"></a> +<span class="sourceLineNo">034</span> return text;<a name="line.34"></a> +<span class="sourceLineNo">035</span> }<a name="line.35"></a> +<span class="sourceLineNo">036</span><a name="line.36"></a> +<span class="sourceLineNo">037</span> /**<a name="line.37"></a> +<span class="sourceLineNo">038</span> * Sets the inner text of this element.<a name="line.38"></a> +<span class="sourceLineNo">039</span> *<a name="line.39"></a> +<span class="sourceLineNo">040</span> * @param text The inner text of this element, or <jk>null</jk> if no text is set.<a name="line.40"></a> +<span class="sourceLineNo">041</span> * @return This object (for method chaining).<a name="line.41"></a> +<span class="sourceLineNo">042</span> */<a name="line.42"></a> +<span class="sourceLineNo">043</span> @BeanProperty(name="c")<a name="line.43"></a> +<span class="sourceLineNo">044</span> public HtmlElement setText(Object text) {<a name="line.44"></a> +<span class="sourceLineNo">045</span> this.text = text;<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> * Sets the text node on this element.<a name="line.50"></a> +<span class="sourceLineNo">051</span> *<a name="line.51"></a> +<span class="sourceLineNo">052</span> * @param text The text node to add to this element.<a name="line.52"></a> +<span class="sourceLineNo">053</span> * @return This object (for method chaining).<a name="line.53"></a> +<span class="sourceLineNo">054</span> */<a name="line.54"></a> +<span class="sourceLineNo">055</span> public HtmlElement text(Object text) {<a name="line.55"></a> +<span class="sourceLineNo">056</span> this.text = text;<a name="line.56"></a> +<span class="sourceLineNo">057</span> return this;<a name="line.57"></a> +<span class="sourceLineNo">058</span> }<a name="line.58"></a> +<span class="sourceLineNo">059</span>}<a name="line.59"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/cc5ae7c5/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementVoid.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementVoid.html b/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementVoid.html new file mode 100644 index 0000000..495bf2e --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/dto/html5/HtmlElementVoid.html @@ -0,0 +1,97 @@ +<!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.dto.html5;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>import org.apache.juneau.xml.annotation.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span>import static org.apache.juneau.xml.annotation.XmlFormat.*;<a name="line.16"></a> +<span class="sourceLineNo">017</span><a name="line.17"></a> +<span class="sourceLineNo">018</span>/**<a name="line.18"></a> +<span class="sourceLineNo">019</span> * A subclass of HTML elements that have no content or end tags.<a name="line.19"></a> +<span class="sourceLineNo">020</span> * <p><a name="line.20"></a> +<span class="sourceLineNo">021</span> * See <a href="https://www.w3.org/TR/html51/syntax.html#void-elements">void elements</a><a name="line.21"></a> +<span class="sourceLineNo">022</span> */<a name="line.22"></a> +<span class="sourceLineNo">023</span>@Xml(format=VOID)<a name="line.23"></a> +<span class="sourceLineNo">024</span>public class HtmlElementVoid extends HtmlElement {<a name="line.24"></a> +<span class="sourceLineNo">025</span>}<a name="line.25"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/cc5ae7c5/content/site/apidocs/src-html/org/apache/juneau/svl/vars/IfVar.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/svl/vars/IfVar.html b/content/site/apidocs/src-html/org/apache/juneau/svl/vars/IfVar.html new file mode 100644 index 0000000..ef7a396 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/svl/vars/IfVar.html @@ -0,0 +1,137 @@ +<!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.svl.vars;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>import static org.apache.juneau.internal.ThrowableUtils.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span><a name="line.16"></a> +<span class="sourceLineNo">017</span>import org.apache.juneau.svl.*;<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> * A basic if-else logic variable resolver.<a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p><a name="line.21"></a> +<span class="sourceLineNo">022</span> * The format for this var is one of the following:<a name="line.22"></a> +<span class="sourceLineNo">023</span> * <ul><a name="line.23"></a> +<span class="sourceLineNo">024</span> * <li><js>"$IF{booleanArg,thenValue}"</js><a name="line.24"></a> +<span class="sourceLineNo">025</span> * <li><js>"$IF{booleanArg,thenValue,elseValue}"</js><a name="line.25"></a> +<span class="sourceLineNo">026</span> * </ul><a name="line.26"></a> +<span class="sourceLineNo">027</span> * <p><a name="line.27"></a> +<span class="sourceLineNo">028</span> * The boolean argument is any string.<a name="line.28"></a> +<span class="sourceLineNo">029</span> * <br>The following values are interpreted as <jk>true</jk>: <js>"true"</js>,<js>"TRUE"</js>,<js>"t"</js>,<js>"T"</js>,<js>"1"</js>.<a name="line.29"></a> +<span class="sourceLineNo">030</span> * <br>All else are interpreted as <jk>false</jk><a name="line.30"></a> +<span class="sourceLineNo">031</span> *<a name="line.31"></a> +<span class="sourceLineNo">032</span> * <h5 class='section'>Example:</h5><a name="line.32"></a> +<span class="sourceLineNo">033</span> * <p class='bcode'><a name="line.33"></a> +<span class="sourceLineNo">034</span> * <jc>// Create a variable resolver that resolves system properties and $IF vars.</jc><a name="line.34"></a> +<span class="sourceLineNo">035</span> * VarResolver r = <jk>new</jk> VarResolver().addVars(IfVar.<jk>class</jk>, SystemPropertiesVar.<jk>class</jk>);<a name="line.35"></a> +<span class="sourceLineNo">036</span> *<a name="line.36"></a> +<span class="sourceLineNo">037</span> * <jc>// Use it!</jc><a name="line.37"></a> +<span class="sourceLineNo">038</span> * System.<jsf>out</jsf>.println(r.resolve(<js>"Property $IF{$S{someBooleanFlag},IS,IS NOT} set!"</js>));<a name="line.38"></a> +<span class="sourceLineNo">039</span> * </p><a name="line.39"></a> +<span class="sourceLineNo">040</span> * <p><a name="line.40"></a> +<span class="sourceLineNo">041</span> * Since this is a {@link MultipartVar}, any variables contained in the result will be recursively resolved.<a name="line.41"></a> +<span class="sourceLineNo">042</span> * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.<a name="line.42"></a> +<span class="sourceLineNo">043</span> *<a name="line.43"></a> +<span class="sourceLineNo">044</span> * @see org.apache.juneau.svl<a name="line.44"></a> +<span class="sourceLineNo">045</span>*/<a name="line.45"></a> +<span class="sourceLineNo">046</span>public class IfVar extends MultipartVar {<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> * Constructor.<a name="line.49"></a> +<span class="sourceLineNo">050</span> */<a name="line.50"></a> +<span class="sourceLineNo">051</span> public IfVar() {<a name="line.51"></a> +<span class="sourceLineNo">052</span> super("IF");<a name="line.52"></a> +<span class="sourceLineNo">053</span> }<a name="line.53"></a> +<span class="sourceLineNo">054</span><a name="line.54"></a> +<span class="sourceLineNo">055</span> @Override /* MultipartVar */<a name="line.55"></a> +<span class="sourceLineNo">056</span> public String resolve(VarResolverSession session, String[] args) {<a name="line.56"></a> +<span class="sourceLineNo">057</span> if (args.length < 2 || args.length > 3)<a name="line.57"></a> +<span class="sourceLineNo">058</span> illegalArg("Invalid number of arguments passed to $IF var. Must be either $IF{booleanArg,thenValue} or $IF{booleanArg,thenValue,elseValue}");<a name="line.58"></a> +<span class="sourceLineNo">059</span><a name="line.59"></a> +<span class="sourceLineNo">060</span> String b = args[0].toLowerCase();<a name="line.60"></a> +<span class="sourceLineNo">061</span> if ("1".equals(b) || "t".equals(b) || "true".equals(b))<a name="line.61"></a> +<span class="sourceLineNo">062</span> return args[1];<a name="line.62"></a> +<span class="sourceLineNo">063</span> return args.length == 2 ? "" : args[2];<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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/cc5ae7c5/content/site/apidocs/src-html/org/apache/juneau/svl/vars/SwitchVar.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/svl/vars/SwitchVar.html b/content/site/apidocs/src-html/org/apache/juneau/svl/vars/SwitchVar.html new file mode 100644 index 0000000..5da9675 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/svl/vars/SwitchVar.html @@ -0,0 +1,148 @@ +<!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.svl.vars;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>import static org.apache.juneau.internal.ThrowableUtils.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span><a name="line.16"></a> +<span class="sourceLineNo">017</span>import java.util.regex.*;<a name="line.17"></a> +<span class="sourceLineNo">018</span><a name="line.18"></a> +<span class="sourceLineNo">019</span>import org.apache.juneau.svl.*;<a name="line.19"></a> +<span class="sourceLineNo">020</span><a name="line.20"></a> +<span class="sourceLineNo">021</span>/**<a name="line.21"></a> +<span class="sourceLineNo">022</span> * A basic switch/case logic variable resolver.<a name="line.22"></a> +<span class="sourceLineNo">023</span> * <p><a name="line.23"></a> +<span class="sourceLineNo">024</span> * The format for this var is one of the following:<a name="line.24"></a> +<span class="sourceLineNo">025</span> * <ul><a name="line.25"></a> +<span class="sourceLineNo">026</span> * <li><js>"$SWITCH{stringArg,pattern,thenValue}"</js><a name="line.26"></a> +<span class="sourceLineNo">027</span> * <li><js>"$SWITCH{stringArg,pattern,thenValue,elseValue}"</js><a name="line.27"></a> +<span class="sourceLineNo">028</span> * <li><js>"$SWITCH{stringArg,pattern,thenValue,pattern,thenValue}"</js><a name="line.28"></a> +<span class="sourceLineNo">029</span> * <li><js>"$SWITCH{stringArg,pattern,thenValue,pattern,thenValue,elsePattern}"</js><a name="line.29"></a> +<span class="sourceLineNo">030</span> * <li>...<a name="line.30"></a> +<span class="sourceLineNo">031</span> * </ul><a name="line.31"></a> +<span class="sourceLineNo">032</span> * <p><a name="line.32"></a> +<span class="sourceLineNo">033</span> * The pattern can be any string optionally containing <js>'*'</js> or <js>'?'</js> representing any or one character respectively.<a name="line.33"></a> +<span class="sourceLineNo">034</span> *<a name="line.34"></a> +<span class="sourceLineNo">035</span> * <h5 class='section'>Example:</h5><a name="line.35"></a> +<span class="sourceLineNo">036</span> * <p class='bcode'><a name="line.36"></a> +<span class="sourceLineNo">037</span> * <jc>// Create a variable resolver that resolves system properties and $SWITCH vars.</jc><a name="line.37"></a> +<span class="sourceLineNo">038</span> * VarResolver r = <jk>new</jk> VarResolver().addVars(SwitchVar.<jk>class</jk>, SystemPropertiesVar.<jk>class</jk>);<a name="line.38"></a> +<span class="sourceLineNo">039</span> *<a name="line.39"></a> +<span class="sourceLineNo">040</span> * <jc>// Use it!</jc><a name="line.40"></a> +<span class="sourceLineNo">041</span> * System.<jsf>out</jsf>.println(r.resolve(<js>"We are running on $SWITCH{$P{os.name},*win*,Windows,Something else}!"</js>));<a name="line.41"></a> +<span class="sourceLineNo">042</span> * </p><a name="line.42"></a> +<span class="sourceLineNo">043</span> * <p><a name="line.43"></a> +<span class="sourceLineNo">044</span> * Since this is a {@link MultipartVar}, any variables contained in the result will be recursively resolved.<a name="line.44"></a> +<span class="sourceLineNo">045</span> * Likewise, if the arguments contain any variables, those will be resolved before they are passed to this var.<a name="line.45"></a> +<span class="sourceLineNo">046</span> */<a name="line.46"></a> +<span class="sourceLineNo">047</span>public class SwitchVar extends MultipartVar {<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> * Constructor.<a name="line.50"></a> +<span class="sourceLineNo">051</span> */<a name="line.51"></a> +<span class="sourceLineNo">052</span> public SwitchVar() {<a name="line.52"></a> +<span class="sourceLineNo">053</span> super("SWITCH");<a name="line.53"></a> +<span class="sourceLineNo">054</span> }<a name="line.54"></a> +<span class="sourceLineNo">055</span><a name="line.55"></a> +<span class="sourceLineNo">056</span> @Override /* MultipartVar */<a name="line.56"></a> +<span class="sourceLineNo">057</span> public String resolve(VarResolverSession session, String[] args) {<a name="line.57"></a> +<span class="sourceLineNo">058</span> if (args.length < 3)<a name="line.58"></a> +<span class="sourceLineNo">059</span> illegalArg("Invalid number of arguments passed to $SWITCH var. Must have 3 or more arguments.");<a name="line.59"></a> +<span class="sourceLineNo">060</span><a name="line.60"></a> +<span class="sourceLineNo">061</span> String stringArg = args[0];<a name="line.61"></a> +<span class="sourceLineNo">062</span> for (int i = 1; i < args.length;) {<a name="line.62"></a> +<span class="sourceLineNo">063</span> String pattern = args[i++];<a name="line.63"></a> +<span class="sourceLineNo">064</span> if (args.length == i)<a name="line.64"></a> +<span class="sourceLineNo">065</span> return pattern; // We've reached an else.<a name="line.65"></a> +<span class="sourceLineNo">066</span><a name="line.66"></a> +<span class="sourceLineNo">067</span> Pattern p = Pattern.compile(pattern.replace("*", ".*").replace("?", "."));<a name="line.67"></a> +<span class="sourceLineNo">068</span> if (p.matcher(stringArg).matches())<a name="line.68"></a> +<span class="sourceLineNo">069</span> return args[i];<a name="line.69"></a> +<span class="sourceLineNo">070</span> i++;<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> // Nothing matched and no else clause.<a name="line.73"></a> +<span class="sourceLineNo">074</span> return "";<a name="line.74"></a> +<span class="sourceLineNo">075</span> }<a name="line.75"></a> +<span class="sourceLineNo">076</span>}<a name="line.76"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html>
