http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/HeaderValidatorArray.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/HeaderValidatorArray.html b/content/site/apidocs/src-html/org/apache/juneau/http/HeaderValidatorArray.html new file mode 100644 index 0000000..648866f --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/HeaderValidatorArray.html @@ -0,0 +1,127 @@ +<!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.http;<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><a name="line.16"></a> +<span class="sourceLineNo">017</span>/**<a name="line.17"></a> +<span class="sourceLineNo">018</span> * Category of headers that consist of a comma-delimited list of validator values.<a name="line.18"></a> +<span class="sourceLineNo">019</span> * <p><a name="line.19"></a> +<span class="sourceLineNo">020</span> * <h6 class='figure'>Example</h6><a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p class='bcode'><a name="line.21"></a> +<span class="sourceLineNo">022</span> * If-Match: "xyzzy"<a name="line.22"></a> +<span class="sourceLineNo">023</span> * If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"<a name="line.23"></a> +<span class="sourceLineNo">024</span> * If-Match: *<a name="line.24"></a> +<span class="sourceLineNo">025</span> * </p><a name="line.25"></a> +<span class="sourceLineNo">026</span> */<a name="line.26"></a> +<span class="sourceLineNo">027</span>public class HeaderValidatorArray {<a name="line.27"></a> +<span class="sourceLineNo">028</span><a name="line.28"></a> +<span class="sourceLineNo">029</span> private final EntityValidator[] value;<a name="line.29"></a> +<span class="sourceLineNo">030</span><a name="line.30"></a> +<span class="sourceLineNo">031</span> /**<a name="line.31"></a> +<span class="sourceLineNo">032</span> * Constructor.<a name="line.32"></a> +<span class="sourceLineNo">033</span> * @param value The raw header value.<a name="line.33"></a> +<span class="sourceLineNo">034</span> */<a name="line.34"></a> +<span class="sourceLineNo">035</span> protected HeaderValidatorArray(String value) {<a name="line.35"></a> +<span class="sourceLineNo">036</span> String[] s = StringUtils.split(value, ',');<a name="line.36"></a> +<span class="sourceLineNo">037</span> this.value = new EntityValidator[s.length];<a name="line.37"></a> +<span class="sourceLineNo">038</span> for (int i = 0; i < s.length; i++) {<a name="line.38"></a> +<span class="sourceLineNo">039</span> this.value[i] = new EntityValidator(s[i]);<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><a name="line.42"></a> +<span class="sourceLineNo">043</span> /**<a name="line.43"></a> +<span class="sourceLineNo">044</span> * Returns this header value as an array of {@link EntityValidator} objects.<a name="line.44"></a> +<span class="sourceLineNo">045</span> * @return this header value as an array of {@link EntityValidator} objects.<a name="line.45"></a> +<span class="sourceLineNo">046</span> */<a name="line.46"></a> +<span class="sourceLineNo">047</span> public EntityValidator[] asValidators() {<a name="line.47"></a> +<span class="sourceLineNo">048</span> return value;<a name="line.48"></a> +<span class="sourceLineNo">049</span> }<a name="line.49"></a> +<span class="sourceLineNo">050</span><a name="line.50"></a> +<span class="sourceLineNo">051</span> @Override /* Object */<a name="line.51"></a> +<span class="sourceLineNo">052</span> public String toString() {<a name="line.52"></a> +<span class="sourceLineNo">053</span> return StringUtils.join(value, ", ");<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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html>
http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/Host.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/Host.html b/content/site/apidocs/src-html/org/apache/juneau/http/Host.html new file mode 100644 index 0000000..6f735e3 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/Host.html @@ -0,0 +1,147 @@ +<!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.http;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>/**<a name="line.15"></a> +<span class="sourceLineNo">016</span> * Represents a parsed <l>Host</l> HTTP request header.<a name="line.16"></a> +<span class="sourceLineNo">017</span> * <p><a name="line.17"></a> +<span class="sourceLineNo">018</span> * The domain name of the server (for virtual hosting), and the TCP port number on which the server is listening.<a name="line.18"></a> +<span class="sourceLineNo">019</span> * The port number may be omitted if the port is the standard port for the service requested.<a name="line.19"></a> +<span class="sourceLineNo">020</span> * Mandatory since HTTP/1.1.<a name="line.20"></a> +<span class="sourceLineNo">021</span> *<a name="line.21"></a> +<span class="sourceLineNo">022</span> * <h6 class='figure'>Example</h6><a name="line.22"></a> +<span class="sourceLineNo">023</span> * <p class='bcode'><a name="line.23"></a> +<span class="sourceLineNo">024</span> * Host: en.wikipedia.org:8080<a name="line.24"></a> +<span class="sourceLineNo">025</span> * Host: en.wikipedia.org<a name="line.25"></a> +<span class="sourceLineNo">026</span> * </p><a name="line.26"></a> +<span class="sourceLineNo">027</span> *<a name="line.27"></a> +<span class="sourceLineNo">028</span> * <h6 class='topic'>RFC2616 Specification</h6><a name="line.28"></a> +<span class="sourceLineNo">029</span> *<a name="line.29"></a> +<span class="sourceLineNo">030</span> * The Host request-header field specifies the Internet host and port number of the resource being requested, as<a name="line.30"></a> +<span class="sourceLineNo">031</span> * obtained from the original URI given by the user or referring resource (generally an HTTP URL, as described in<a name="line.31"></a> +<span class="sourceLineNo">032</span> * section 3.2.2).<a name="line.32"></a> +<span class="sourceLineNo">033</span> * The Host field value MUST represent the naming authority of the origin server or gateway given by the original URL.<a name="line.33"></a> +<span class="sourceLineNo">034</span> * This allows the origin server or gateway to differentiate between internally-ambiguous URLs, such as the root "/" URL<a name="line.34"></a> +<span class="sourceLineNo">035</span> * of a server for multiple host names on a single IP address.<a name="line.35"></a> +<span class="sourceLineNo">036</span> * <p class='bcode'><a name="line.36"></a> +<span class="sourceLineNo">037</span> * Host = "Host" ":" host [ ":" port ] ; Section 3.2.2<a name="line.37"></a> +<span class="sourceLineNo">038</span> * </p><a name="line.38"></a> +<span class="sourceLineNo">039</span> * <p><a name="line.39"></a> +<span class="sourceLineNo">040</span> * A "host" without any trailing port information implies the default port for the service requested (e.g., "80" for an<a name="line.40"></a> +<span class="sourceLineNo">041</span> * HTTP URL).<a name="line.41"></a> +<span class="sourceLineNo">042</span> * For example, a request on the origin server for <http://www.w3.org/pub/WWW/> would properly include:<a name="line.42"></a> +<span class="sourceLineNo">043</span> * <p class='bcode'><a name="line.43"></a> +<span class="sourceLineNo">044</span> * GET /pub/WWW/ HTTP/1.1<a name="line.44"></a> +<span class="sourceLineNo">045</span> * Host: www.w3.org<a name="line.45"></a> +<span class="sourceLineNo">046</span> * </p><a name="line.46"></a> +<span class="sourceLineNo">047</span> * <p><a name="line.47"></a> +<span class="sourceLineNo">048</span> * A client MUST include a Host header field in all HTTP/1.1 request messages.<a name="line.48"></a> +<span class="sourceLineNo">049</span> * If the requested URI does not include an Internet host name for the service being requested, then the Host header<a name="line.49"></a> +<span class="sourceLineNo">050</span> * field MUST be given with an empty value.<a name="line.50"></a> +<span class="sourceLineNo">051</span> * An HTTP/1.1 proxy MUST ensure that any request message it forwards does contain an appropriate Host header field that<a name="line.51"></a> +<span class="sourceLineNo">052</span> * identifies the service being requested by the proxy.<a name="line.52"></a> +<span class="sourceLineNo">053</span> * All Internet-based HTTP/1.1 servers MUST respond with a 400 (Bad Request) status code to any HTTP/1.1 request<a name="line.53"></a> +<span class="sourceLineNo">054</span> * message which lacks a Host header field.<a name="line.54"></a> +<span class="sourceLineNo">055</span> * <p><a name="line.55"></a> +<span class="sourceLineNo">056</span> * See sections 5.2 and 19.6.1.1 for other requirements relating to Host.<a name="line.56"></a> +<span class="sourceLineNo">057</span> */<a name="line.57"></a> +<span class="sourceLineNo">058</span>public final class Host extends HeaderString {<a name="line.58"></a> +<span class="sourceLineNo">059</span><a name="line.59"></a> +<span class="sourceLineNo">060</span> /**<a name="line.60"></a> +<span class="sourceLineNo">061</span> * Returns a parsed <code>Host</code> header.<a name="line.61"></a> +<span class="sourceLineNo">062</span> *<a name="line.62"></a> +<span class="sourceLineNo">063</span> * @param value The <code>Host</code> header string.<a name="line.63"></a> +<span class="sourceLineNo">064</span> * @return The parsed <code>Host</code> header, or <jk>null</jk> if the string was null.<a name="line.64"></a> +<span class="sourceLineNo">065</span> */<a name="line.65"></a> +<span class="sourceLineNo">066</span> public static Host forString(String value) {<a name="line.66"></a> +<span class="sourceLineNo">067</span> if (value == null)<a name="line.67"></a> +<span class="sourceLineNo">068</span> return null;<a name="line.68"></a> +<span class="sourceLineNo">069</span> return new Host(value);<a name="line.69"></a> +<span class="sourceLineNo">070</span> }<a name="line.70"></a> +<span class="sourceLineNo">071</span><a name="line.71"></a> +<span class="sourceLineNo">072</span> private Host(String value) {<a name="line.72"></a> +<span class="sourceLineNo">073</span> super(value);<a name="line.73"></a> +<span class="sourceLineNo">074</span> }<a name="line.74"></a> +<span class="sourceLineNo">075</span>}<a name="line.75"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/HttpMethod.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/HttpMethod.html b/content/site/apidocs/src-html/org/apache/juneau/http/HttpMethod.html new file mode 100644 index 0000000..3d05d3b --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/HttpMethod.html @@ -0,0 +1,145 @@ +<!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.http;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>import java.util.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span><a name="line.16"></a> +<span class="sourceLineNo">017</span>/**<a name="line.17"></a> +<span class="sourceLineNo">018</span> * Represents valid HTTP 1.1 method names per the <a class='doclink' href='https://www.ietf.org/rfc/rfc2616.txt'>RFC 2616</a> spec.<a name="line.18"></a> +<span class="sourceLineNo">019</span> */<a name="line.19"></a> +<span class="sourceLineNo">020</span>public enum HttpMethod {<a name="line.20"></a> +<span class="sourceLineNo">021</span><a name="line.21"></a> +<span class="sourceLineNo">022</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.2'>OPTIONS</a> */<a name="line.22"></a> +<span class="sourceLineNo">023</span> OPTIONS,<a name="line.23"></a> +<span class="sourceLineNo">024</span><a name="line.24"></a> +<span class="sourceLineNo">025</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3'>GET</a> */<a name="line.25"></a> +<span class="sourceLineNo">026</span> GET,<a name="line.26"></a> +<span class="sourceLineNo">027</span><a name="line.27"></a> +<span class="sourceLineNo">028</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4'>HEAD</a> */<a name="line.28"></a> +<span class="sourceLineNo">029</span> HEAD,<a name="line.29"></a> +<span class="sourceLineNo">030</span><a name="line.30"></a> +<span class="sourceLineNo">031</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5'>POST</a> */<a name="line.31"></a> +<span class="sourceLineNo">032</span> POST,<a name="line.32"></a> +<span class="sourceLineNo">033</span><a name="line.33"></a> +<span class="sourceLineNo">034</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6'>PUT</a> */<a name="line.34"></a> +<span class="sourceLineNo">035</span> PUT,<a name="line.35"></a> +<span class="sourceLineNo">036</span><a name="line.36"></a> +<span class="sourceLineNo">037</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.7'>DELETE</a> */<a name="line.37"></a> +<span class="sourceLineNo">038</span> DELETE,<a name="line.38"></a> +<span class="sourceLineNo">039</span><a name="line.39"></a> +<span class="sourceLineNo">040</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.8'>TRACE</a> */<a name="line.40"></a> +<span class="sourceLineNo">041</span> TRACE,<a name="line.41"></a> +<span class="sourceLineNo">042</span><a name="line.42"></a> +<span class="sourceLineNo">043</span> /** <a class='doclink' href='https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.9'>CONNECT</a> */<a name="line.43"></a> +<span class="sourceLineNo">044</span> CONNECT,<a name="line.44"></a> +<span class="sourceLineNo">045</span><a name="line.45"></a> +<span class="sourceLineNo">046</span> /** A non-standard value. */<a name="line.46"></a> +<span class="sourceLineNo">047</span> OTHER;<a name="line.47"></a> +<span class="sourceLineNo">048</span><a name="line.48"></a> +<span class="sourceLineNo">049</span> private static final Map<String,HttpMethod> cache = new TreeMap<String,HttpMethod>(String.CASE_INSENSITIVE_ORDER);<a name="line.49"></a> +<span class="sourceLineNo">050</span> static {<a name="line.50"></a> +<span class="sourceLineNo">051</span> cache.put("OPTIONS", OPTIONS);<a name="line.51"></a> +<span class="sourceLineNo">052</span> cache.put("GET", GET);<a name="line.52"></a> +<span class="sourceLineNo">053</span> cache.put("HEAD", HEAD);<a name="line.53"></a> +<span class="sourceLineNo">054</span> cache.put("POST", POST);<a name="line.54"></a> +<span class="sourceLineNo">055</span> cache.put("PUT", PUT);<a name="line.55"></a> +<span class="sourceLineNo">056</span> cache.put("DELETE", DELETE);<a name="line.56"></a> +<span class="sourceLineNo">057</span> cache.put("TRACE", TRACE);<a name="line.57"></a> +<span class="sourceLineNo">058</span> cache.put("CONNECT", CONNECT);<a name="line.58"></a> +<span class="sourceLineNo">059</span> }<a name="line.59"></a> +<span class="sourceLineNo">060</span><a name="line.60"></a> +<span class="sourceLineNo">061</span> /**<a name="line.61"></a> +<span class="sourceLineNo">062</span> * Returns the enum for the specified key.<a name="line.62"></a> +<span class="sourceLineNo">063</span> * <p><a name="line.63"></a> +<span class="sourceLineNo">064</span> * Case is ignored.<a name="line.64"></a> +<span class="sourceLineNo">065</span> *<a name="line.65"></a> +<span class="sourceLineNo">066</span> * @param key The HTTP method name.<a name="line.66"></a> +<span class="sourceLineNo">067</span> * @return The HttpMethod enum, or {@link #OTHER} if it's not a standard method name.<a name="line.67"></a> +<span class="sourceLineNo">068</span> */<a name="line.68"></a> +<span class="sourceLineNo">069</span> public static HttpMethod forString(String key) {<a name="line.69"></a> +<span class="sourceLineNo">070</span> HttpMethod m = cache.get(key);<a name="line.70"></a> +<span class="sourceLineNo">071</span> return m == null ? OTHER : m;<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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/IfMatch.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/IfMatch.html b/content/site/apidocs/src-html/org/apache/juneau/http/IfMatch.html new file mode 100644 index 0000000..bb40d12 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/IfMatch.html @@ -0,0 +1,162 @@ +<!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.http;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>/**<a name="line.15"></a> +<span class="sourceLineNo">016</span> * Represents a parsed <l>If-Match</l> HTTP request header.<a name="line.16"></a> +<span class="sourceLineNo">017</span> * <p><a name="line.17"></a> +<span class="sourceLineNo">018</span> * Only perform the action if the client supplied entity matches the same entity on the server.<a name="line.18"></a> +<span class="sourceLineNo">019</span> * This is mainly for methods like PUT to only update a resource if it has not been modified since the user last<a name="line.19"></a> +<span class="sourceLineNo">020</span> * updated it.<a name="line.20"></a> +<span class="sourceLineNo">021</span> *<a name="line.21"></a> +<span class="sourceLineNo">022</span> * <h6 class='figure'>Example</h6><a name="line.22"></a> +<span class="sourceLineNo">023</span> * <p class='bcode'><a name="line.23"></a> +<span class="sourceLineNo">024</span> * If-Match: "737060cd8c284d8af7ad3082f209582d"<a name="line.24"></a> +<span class="sourceLineNo">025</span> * </p><a name="line.25"></a> +<span class="sourceLineNo">026</span> *<a name="line.26"></a> +<span class="sourceLineNo">027</span> * <h6 class='topic'>RFC2616 Specification</h6><a name="line.27"></a> +<span class="sourceLineNo">028</span> *<a name="line.28"></a> +<span class="sourceLineNo">029</span> * The If-Match request-header field is used with a method to make it conditional.<a name="line.29"></a> +<span class="sourceLineNo">030</span> * A client that has one or more entities previously obtained from the resource can verify that one of those entities<a name="line.30"></a> +<span class="sourceLineNo">031</span> * is current by including a list of their associated entity tags in the If-Match header field.<a name="line.31"></a> +<span class="sourceLineNo">032</span> * Entity tags are defined in section 3.11.<a name="line.32"></a> +<span class="sourceLineNo">033</span> * The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction<a name="line.33"></a> +<span class="sourceLineNo">034</span> * overhead.<a name="line.34"></a> +<span class="sourceLineNo">035</span> * It is also used, on updating requests, to prevent inadvertent modification of the wrong version of a resource.<a name="line.35"></a> +<span class="sourceLineNo">036</span> * As a special case, the value "*" matches any current entity of the resource.<a name="line.36"></a> +<span class="sourceLineNo">037</span> * <p class='bcode'><a name="line.37"></a> +<span class="sourceLineNo">038</span> * If-Match = "If-Match" ":" ( "*" | 1#entity-tag )<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> * If any of the entity tags match the entity tag of the entity that would have been returned in the response to a<a name="line.41"></a> +<span class="sourceLineNo">042</span> * similar GET request (without the If-Match header) on that resource, or if "*" is given and any current entity exists<a name="line.42"></a> +<span class="sourceLineNo">043</span> * for that resource, then the server MAY perform the requested method as if the If-Match header field did not exist.<a name="line.43"></a> +<span class="sourceLineNo">044</span> * <p><a name="line.44"></a> +<span class="sourceLineNo">045</span> * A server MUST use the strong comparison function (see section 13.3.3) to compare the entity tags in If-Match.<a name="line.45"></a> +<span class="sourceLineNo">046</span> * <p><a name="line.46"></a> +<span class="sourceLineNo">047</span> * If none of the entity tags match, or if "*" is given and no current entity exists, the server MUST NOT perform the<a name="line.47"></a> +<span class="sourceLineNo">048</span> * requested method, and MUST return a 412 (Precondition Failed) response.<a name="line.48"></a> +<span class="sourceLineNo">049</span> * This behavior is most useful when the client wants to prevent an updating method, such as PUT, from modifying a<a name="line.49"></a> +<span class="sourceLineNo">050</span> * resource that has changed since the client last retrieved it.<a name="line.50"></a> +<span class="sourceLineNo">051</span> * <p><a name="line.51"></a> +<span class="sourceLineNo">052</span> * If the request would, without the If-Match header field, result in anything other than a 2xx or 412 status, then the<a name="line.52"></a> +<span class="sourceLineNo">053</span> * If-Match header MUST be ignored.<a name="line.53"></a> +<span class="sourceLineNo">054</span> * <p><a name="line.54"></a> +<span class="sourceLineNo">055</span> * The meaning of "If-Match: *" is that the method SHOULD be performed if the representation selected by the origin<a name="line.55"></a> +<span class="sourceLineNo">056</span> * server (or by a cache, possibly using the Vary mechanism, see section 14.44) exists, and MUST NOT be performed if the<a name="line.56"></a> +<span class="sourceLineNo">057</span> * representation does not exist.<a name="line.57"></a> +<span class="sourceLineNo">058</span> * <p><a name="line.58"></a> +<span class="sourceLineNo">059</span> * A request intended to update a resource (e.g., a PUT) MAY include an If-Match header field to signal that the request<a name="line.59"></a> +<span class="sourceLineNo">060</span> * method MUST NOT be applied if the entity corresponding to the If-Match value (a single entity tag) is no longer a<a name="line.60"></a> +<span class="sourceLineNo">061</span> * representation of that resource.<a name="line.61"></a> +<span class="sourceLineNo">062</span> * This allows the user to indicate that they do not wish the request to be successful if the resource has been changed<a name="line.62"></a> +<span class="sourceLineNo">063</span> * without their knowledge.<a name="line.63"></a> +<span class="sourceLineNo">064</span> * Examples:<a name="line.64"></a> +<span class="sourceLineNo">065</span> * <p class='bcode'><a name="line.65"></a> +<span class="sourceLineNo">066</span> * If-Match: "xyzzy"<a name="line.66"></a> +<span class="sourceLineNo">067</span> * If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"<a name="line.67"></a> +<span class="sourceLineNo">068</span> * If-Match: *<a name="line.68"></a> +<span class="sourceLineNo">069</span> * </p><a name="line.69"></a> +<span class="sourceLineNo">070</span> * The result of a request having both an If-Match header field and either an If-None-Match or an If-Modified-Since<a name="line.70"></a> +<span class="sourceLineNo">071</span> * header fields is undefined by this specification.<a name="line.71"></a> +<span class="sourceLineNo">072</span> */<a name="line.72"></a> +<span class="sourceLineNo">073</span>public final class IfMatch extends HeaderEntityValidatorArray {<a name="line.73"></a> +<span class="sourceLineNo">074</span><a name="line.74"></a> +<span class="sourceLineNo">075</span> /**<a name="line.75"></a> +<span class="sourceLineNo">076</span> * Returns a parsed <code>If-Match</code> header.<a name="line.76"></a> +<span class="sourceLineNo">077</span> *<a name="line.77"></a> +<span class="sourceLineNo">078</span> * @param value The <code>If-Match</code> header string.<a name="line.78"></a> +<span class="sourceLineNo">079</span> * @return The parsed <code>If-Match</code> header, or <jk>null</jk> if the string was null.<a name="line.79"></a> +<span class="sourceLineNo">080</span> */<a name="line.80"></a> +<span class="sourceLineNo">081</span> public static IfMatch forString(String value) {<a name="line.81"></a> +<span class="sourceLineNo">082</span> if (value == null)<a name="line.82"></a> +<span class="sourceLineNo">083</span> return null;<a name="line.83"></a> +<span class="sourceLineNo">084</span> return new IfMatch(value);<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> private IfMatch(String value) {<a name="line.87"></a> +<span class="sourceLineNo">088</span> super(value);<a name="line.88"></a> +<span class="sourceLineNo">089</span> }<a name="line.89"></a> +<span class="sourceLineNo">090</span>}<a name="line.90"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/IfModifiedSince.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/IfModifiedSince.html b/content/site/apidocs/src-html/org/apache/juneau/http/IfModifiedSince.html new file mode 100644 index 0000000..860b754 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/IfModifiedSince.html @@ -0,0 +1,164 @@ +<!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.http;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>/**<a name="line.15"></a> +<span class="sourceLineNo">016</span> * Represents a parsed <l>If-Modified-Since</l> HTTP request header.<a name="line.16"></a> +<span class="sourceLineNo">017</span> * <p><a name="line.17"></a> +<span class="sourceLineNo">018</span> * Allows a 304 Not Modified to be returned if content is unchanged.<a name="line.18"></a> +<span class="sourceLineNo">019</span> *<a name="line.19"></a> +<span class="sourceLineNo">020</span> * <h6 class='figure'>Example</h6><a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p class='bcode'><a name="line.21"></a> +<span class="sourceLineNo">022</span> * If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT<a name="line.22"></a> +<span class="sourceLineNo">023</span> * </p><a name="line.23"></a> +<span class="sourceLineNo">024</span> *<a name="line.24"></a> +<span class="sourceLineNo">025</span> * <h6 class='topic'>RFC2616 Specification</h6><a name="line.25"></a> +<span class="sourceLineNo">026</span> *<a name="line.26"></a> +<span class="sourceLineNo">027</span> * The If-Modified-Since request-header field is used with a method to make it conditional:<a name="line.27"></a> +<span class="sourceLineNo">028</span> * if the requested variant has not been modified since the time specified in this field, an entity will not be returned<a name="line.28"></a> +<span class="sourceLineNo">029</span> * from the server; instead, a 304 (not modified) response will be returned without any message-body.<a name="line.29"></a> +<span class="sourceLineNo">030</span> * <p class='bcode'><a name="line.30"></a> +<span class="sourceLineNo">031</span> * If-Modified-Since = "If-Modified-Since" ":" HTTP-date<a name="line.31"></a> +<span class="sourceLineNo">032</span> * </p><a name="line.32"></a> +<span class="sourceLineNo">033</span> * <p><a name="line.33"></a> +<span class="sourceLineNo">034</span> * An example of the field is:<a name="line.34"></a> +<span class="sourceLineNo">035</span> * <p class='bcode'><a name="line.35"></a> +<span class="sourceLineNo">036</span> * If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT<a name="line.36"></a> +<span class="sourceLineNo">037</span> * </p><a name="line.37"></a> +<span class="sourceLineNo">038</span> * <p><a name="line.38"></a> +<span class="sourceLineNo">039</span> * A GET method with an If-Modified-Since header and no Range header requests that the identified entity be transferred<a name="line.39"></a> +<span class="sourceLineNo">040</span> * only if it has been modified since the date given by the If-Modified-Since header.<a name="line.40"></a> +<span class="sourceLineNo">041</span> * The algorithm for determining this includes the following cases:<a name="line.41"></a> +<span class="sourceLineNo">042</span> * <ol><a name="line.42"></a> +<span class="sourceLineNo">043</span> * <li>If the request would normally result in anything other than a 200 (OK) status, or if the passed<a name="line.43"></a> +<span class="sourceLineNo">044</span> * If-Modified-Since date is invalid, the response is exactly the same as for a normal GET.<a name="line.44"></a> +<span class="sourceLineNo">045</span> * A date which is later than the server's current time is invalid.<a name="line.45"></a> +<span class="sourceLineNo">046</span> * <li>If the variant has been modified since the If-Modified-Since date, the response is exactly the same as for a<a name="line.46"></a> +<span class="sourceLineNo">047</span> * normal GET.<a name="line.47"></a> +<span class="sourceLineNo">048</span> * <li>If the variant has not been modified since a valid If-Modified-Since date, the server SHOULD return a 304<a name="line.48"></a> +<span class="sourceLineNo">049</span> * (Not Modified) response.<a name="line.49"></a> +<span class="sourceLineNo">050</span> * </ol><a name="line.50"></a> +<span class="sourceLineNo">051</span> * The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction<a name="line.51"></a> +<span class="sourceLineNo">052</span> * overhead.<a name="line.52"></a> +<span class="sourceLineNo">053</span> * <p><a name="line.53"></a> +<span class="sourceLineNo">054</span> * Note: The Range request-header field modifies the meaning of If-Modified-Since; see section 14.35 for full details.<a name="line.54"></a> +<span class="sourceLineNo">055</span> * <p><a name="line.55"></a> +<span class="sourceLineNo">056</span> * Note: If-Modified-Since times are interpreted by the server, whose clock might not be synchronized with the client.<a name="line.56"></a> +<span class="sourceLineNo">057</span> * <p><a name="line.57"></a> +<span class="sourceLineNo">058</span> * Note: When handling an If-Modified-Since header field, some servers will use an exact date comparison function,<a name="line.58"></a> +<span class="sourceLineNo">059</span> * rather than a less-than function, for deciding whether to send a 304 (Not Modified) response.<a name="line.59"></a> +<span class="sourceLineNo">060</span> * To get best results when sending an If-Modified-Since header field for cache validation, clients are<a name="line.60"></a> +<span class="sourceLineNo">061</span> * advised to use the exact date string received in a previous Last-Modified header field whenever possible.<a name="line.61"></a> +<span class="sourceLineNo">062</span> * <p><a name="line.62"></a> +<span class="sourceLineNo">063</span> * Note: If a client uses an arbitrary date in the If-Modified-Since header instead of a date taken from the<a name="line.63"></a> +<span class="sourceLineNo">064</span> * Last-Modified header for the same request, the client should be aware of the fact that this date is interpreted in<a name="line.64"></a> +<span class="sourceLineNo">065</span> * the server's understanding of time.<a name="line.65"></a> +<span class="sourceLineNo">066</span> * The client should consider unsynchronized clocks and rounding problems due to the different encodings of time between<a name="line.66"></a> +<span class="sourceLineNo">067</span> * the client and server.<a name="line.67"></a> +<span class="sourceLineNo">068</span> * This includes the possibility of race conditions if the document has changed between the time it was first requested<a name="line.68"></a> +<span class="sourceLineNo">069</span> * and the If-Modified-Since date of a subsequent request, and the possibility of clock-skew-related problems if the<a name="line.69"></a> +<span class="sourceLineNo">070</span> * If-Modified-Since date is derived from the client's clock without correction to the server's clock.<a name="line.70"></a> +<span class="sourceLineNo">071</span> * Corrections for different time bases between client and server are at best approximate due to network latency.<a name="line.71"></a> +<span class="sourceLineNo">072</span> * The result of a request having both an If-Modified-Since header field and either an If-Match or an<a name="line.72"></a> +<span class="sourceLineNo">073</span> * If-Unmodified-Since header fields is undefined by this specification.<a name="line.73"></a> +<span class="sourceLineNo">074</span> */<a name="line.74"></a> +<span class="sourceLineNo">075</span>public final class IfModifiedSince extends HeaderDate {<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> * Returns a parsed <code>If-Modified-Since</code> header.<a name="line.78"></a> +<span class="sourceLineNo">079</span> *<a name="line.79"></a> +<span class="sourceLineNo">080</span> * @param value The <code>If-Modified-Since</code> header string.<a name="line.80"></a> +<span class="sourceLineNo">081</span> * @return The parsed <code>If-Modified-Since</code> header, or <jk>null</jk> if the string was null.<a name="line.81"></a> +<span class="sourceLineNo">082</span> */<a name="line.82"></a> +<span class="sourceLineNo">083</span> public static IfModifiedSince forString(String value) {<a name="line.83"></a> +<span class="sourceLineNo">084</span> if (value == null)<a name="line.84"></a> +<span class="sourceLineNo">085</span> return null;<a name="line.85"></a> +<span class="sourceLineNo">086</span> return new IfModifiedSince(value);<a name="line.86"></a> +<span class="sourceLineNo">087</span> }<a name="line.87"></a> +<span class="sourceLineNo">088</span><a name="line.88"></a> +<span class="sourceLineNo">089</span> private IfModifiedSince(String value) {<a name="line.89"></a> +<span class="sourceLineNo">090</span> super(value);<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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/IfNoneMatch.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/IfNoneMatch.html b/content/site/apidocs/src-html/org/apache/juneau/http/IfNoneMatch.html new file mode 100644 index 0000000..d88f82f --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/IfNoneMatch.html @@ -0,0 +1,167 @@ +<!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.http;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>/**<a name="line.15"></a> +<span class="sourceLineNo">016</span> * Represents a parsed <l>If-None-Match</l> HTTP request header.<a name="line.16"></a> +<span class="sourceLineNo">017</span> * <p><a name="line.17"></a> +<span class="sourceLineNo">018</span> * Allows a 304 Not Modified to be returned if content is unchanged.<a name="line.18"></a> +<span class="sourceLineNo">019</span> *<a name="line.19"></a> +<span class="sourceLineNo">020</span> * <h6 class='figure'>Example</h6><a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p class='bcode'><a name="line.21"></a> +<span class="sourceLineNo">022</span> * If-None-Match: "737060cd8c284d8af7ad3082f209582d"<a name="line.22"></a> +<span class="sourceLineNo">023</span> * </p><a name="line.23"></a> +<span class="sourceLineNo">024</span> *<a name="line.24"></a> +<span class="sourceLineNo">025</span> * <h6 class='topic'>RFC2616 Specification</h6><a name="line.25"></a> +<span class="sourceLineNo">026</span> *<a name="line.26"></a> +<span class="sourceLineNo">027</span> * The If-None-Match request-header field is used with a method to make it conditional.<a name="line.27"></a> +<span class="sourceLineNo">028</span> * A client that has one or more entities previously obtained from the resource can verify that none of those entities<a name="line.28"></a> +<span class="sourceLineNo">029</span> * is current by including a list of their associated entity tags in the If-None-Match header field.<a name="line.29"></a> +<span class="sourceLineNo">030</span> * The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction<a name="line.30"></a> +<span class="sourceLineNo">031</span> * overhead.<a name="line.31"></a> +<span class="sourceLineNo">032</span> * It is also used to prevent a method (e.g. PUT) from inadvertently modifying an existing resource when the client<a name="line.32"></a> +<span class="sourceLineNo">033</span> * believes that the resource does not exist.<a name="line.33"></a> +<span class="sourceLineNo">034</span> * <p><a name="line.34"></a> +<span class="sourceLineNo">035</span> * As a special case, the value "*" matches any current entity of the resource.<a name="line.35"></a> +<span class="sourceLineNo">036</span> * <p class='bcode'><a name="line.36"></a> +<span class="sourceLineNo">037</span> * If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag )<a name="line.37"></a> +<span class="sourceLineNo">038</span> * </p><a name="line.38"></a> +<span class="sourceLineNo">039</span> * <p><a name="line.39"></a> +<span class="sourceLineNo">040</span> * If any of the entity tags match the entity tag of the entity that would have been returned in the response to a<a name="line.40"></a> +<span class="sourceLineNo">041</span> * similar GET request (without the If-None-Match header) on that resource, or if "*" is given<a name="line.41"></a> +<span class="sourceLineNo">042</span> * and any current entity exists for that resource, then the server MUST NOT perform the requested method, unless<a name="line.42"></a> +<span class="sourceLineNo">043</span> * required to do so because the resource's modification date fails to match that supplied in an If-Modified-Since<a name="line.43"></a> +<span class="sourceLineNo">044</span> * header field in the request.<a name="line.44"></a> +<span class="sourceLineNo">045</span> * Instead, if the request method was GET or HEAD, the server SHOULD respond with a 304 (Not Modified) response,<a name="line.45"></a> +<span class="sourceLineNo">046</span> * including the cache- related header fields (particularly ETag) of one of the entities that matched.<a name="line.46"></a> +<span class="sourceLineNo">047</span> * For all other request methods, the server MUST respond with a status of 412 (Precondition Failed).<a name="line.47"></a> +<span class="sourceLineNo">048</span> * <p><a name="line.48"></a> +<span class="sourceLineNo">049</span> * See section 13.3.3 for rules on how to determine if two entities tags match.<a name="line.49"></a> +<span class="sourceLineNo">050</span> * The weak comparison function can only be used with GET or HEAD requests.<a name="line.50"></a> +<span class="sourceLineNo">051</span> * <p><a name="line.51"></a> +<span class="sourceLineNo">052</span> * If none of the entity tags match, then the server MAY perform the requested method as if the If-None-Match header<a name="line.52"></a> +<span class="sourceLineNo">053</span> * field did not exist, but MUST also ignore any If-Modified-Since header field(s) in the request.<a name="line.53"></a> +<span class="sourceLineNo">054</span> * That is, if no entity tags match, then the server MUST NOT return a 304 (Not Modified) response.<a name="line.54"></a> +<span class="sourceLineNo">055</span> * <p><a name="line.55"></a> +<span class="sourceLineNo">056</span> * If the request would, without the If-None-Match header field, result in anything other than a 2xx or 304 status,<a name="line.56"></a> +<span class="sourceLineNo">057</span> * then the If-None-Match header MUST be ignored.<a name="line.57"></a> +<span class="sourceLineNo">058</span> * (See section 13.3.4 for a discussion of server behavior when both If-Modified-Since and If-None-Match appear in the<a name="line.58"></a> +<span class="sourceLineNo">059</span> * same request.)<a name="line.59"></a> +<span class="sourceLineNo">060</span> * <p><a name="line.60"></a> +<span class="sourceLineNo">061</span> * The meaning of "If-None-Match: *" is that the method MUST NOT be performed if the representation selected by the<a name="line.61"></a> +<span class="sourceLineNo">062</span> * origin server (or by a cache, possibly using the Vary mechanism, see section 14.44) exists, and SHOULD be performed<a name="line.62"></a> +<span class="sourceLineNo">063</span> * if the representation does not exist.<a name="line.63"></a> +<span class="sourceLineNo">064</span> * This feature is intended to be useful in preventing races between PUT operations.<a name="line.64"></a> +<span class="sourceLineNo">065</span> * <p><a name="line.65"></a> +<span class="sourceLineNo">066</span> * Examples:<a name="line.66"></a> +<span class="sourceLineNo">067</span> * <p class='bcode'><a name="line.67"></a> +<span class="sourceLineNo">068</span> * If-None-Match: "xyzzy"<a name="line.68"></a> +<span class="sourceLineNo">069</span> * If-None-Match: W/"xyzzy"<a name="line.69"></a> +<span class="sourceLineNo">070</span> * If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"<a name="line.70"></a> +<span class="sourceLineNo">071</span> * If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"<a name="line.71"></a> +<span class="sourceLineNo">072</span> * If-None-Match: *<a name="line.72"></a> +<span class="sourceLineNo">073</span> * </p><a name="line.73"></a> +<span class="sourceLineNo">074</span> * <p><a name="line.74"></a> +<span class="sourceLineNo">075</span> * The result of a request having both an If-None-Match header field and either an If-Match or an If-Unmodified-Since<a name="line.75"></a> +<span class="sourceLineNo">076</span> * header fields is undefined by this specification.<a name="line.76"></a> +<span class="sourceLineNo">077</span> */<a name="line.77"></a> +<span class="sourceLineNo">078</span>public final class IfNoneMatch extends HeaderEntityValidatorArray {<a name="line.78"></a> +<span class="sourceLineNo">079</span><a name="line.79"></a> +<span class="sourceLineNo">080</span> /**<a name="line.80"></a> +<span class="sourceLineNo">081</span> * Returns a parsed <code>If-None-Match</code> header.<a name="line.81"></a> +<span class="sourceLineNo">082</span> *<a name="line.82"></a> +<span class="sourceLineNo">083</span> * @param value The <code>If-None-Match</code> header string.<a name="line.83"></a> +<span class="sourceLineNo">084</span> * @return The parsed <code>If-None-Match</code> header, or <jk>null</jk> if the string was null.<a name="line.84"></a> +<span class="sourceLineNo">085</span> */<a name="line.85"></a> +<span class="sourceLineNo">086</span> public static IfNoneMatch forString(String value) {<a name="line.86"></a> +<span class="sourceLineNo">087</span> if (value == null)<a name="line.87"></a> +<span class="sourceLineNo">088</span> return null;<a name="line.88"></a> +<span class="sourceLineNo">089</span> return new IfNoneMatch(value);<a name="line.89"></a> +<span class="sourceLineNo">090</span> }<a name="line.90"></a> +<span class="sourceLineNo">091</span><a name="line.91"></a> +<span class="sourceLineNo">092</span> private IfNoneMatch(String value) {<a name="line.92"></a> +<span class="sourceLineNo">093</span> super(value);<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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/IfRange.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/IfRange.html b/content/site/apidocs/src-html/org/apache/juneau/http/IfRange.html new file mode 100644 index 0000000..bb89fc9 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/IfRange.html @@ -0,0 +1,167 @@ +<!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.http;<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.StringUtils.*;<a name="line.15"></a> +<span class="sourceLineNo">016</span><a name="line.16"></a> +<span class="sourceLineNo">017</span>import org.apache.juneau.internal.*;<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> * Represents a parsed <l>If-Range</l> HTTP request header.<a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p><a name="line.21"></a> +<span class="sourceLineNo">022</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.22"></a> +<span class="sourceLineNo">023</span> *<a name="line.23"></a> +<span class="sourceLineNo">024</span> * <h6 class='figure'>Example</h6><a name="line.24"></a> +<span class="sourceLineNo">025</span> * <p class='bcode'><a name="line.25"></a> +<span class="sourceLineNo">026</span> * If-Range: "737060cd8c284d8af7ad3082f209582d"<a name="line.26"></a> +<span class="sourceLineNo">027</span> * </p><a name="line.27"></a> +<span class="sourceLineNo">028</span> *<a name="line.28"></a> +<span class="sourceLineNo">029</span> * <h6 class='topic'>RFC2616 Specification</h6><a name="line.29"></a> +<span class="sourceLineNo">030</span> *<a name="line.30"></a> +<span class="sourceLineNo">031</span> * If a client has a partial copy of an entity in its cache, and wishes to have an up-to-date copy of the entire entity<a name="line.31"></a> +<span class="sourceLineNo">032</span> * in its cache, it could use the Range request-header with a conditional GET (using either or both of<a name="line.32"></a> +<span class="sourceLineNo">033</span> * If-Unmodified-Since and If-Match.)<a name="line.33"></a> +<span class="sourceLineNo">034</span> * However, if the condition fails because the entity has been modified, the client would then have to make a second<a name="line.34"></a> +<span class="sourceLineNo">035</span> * request to obtain the entire current entity-body.<a name="line.35"></a> +<span class="sourceLineNo">036</span> * <p><a name="line.36"></a> +<span class="sourceLineNo">037</span> * The If-Range header allows a client to "short-circuit" the second request.<a name="line.37"></a> +<span class="sourceLineNo">038</span> * Informally, its meaning is `if the entity is unchanged, send me the part(s) that I am missing; otherwise, send me<a name="line.38"></a> +<span class="sourceLineNo">039</span> * the entire new entity'.<a name="line.39"></a> +<span class="sourceLineNo">040</span> * <p class='bcode'><a name="line.40"></a> +<span class="sourceLineNo">041</span> * If-Range = "If-Range" ":" ( entity-tag | HTTP-date )<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> * If the client has no entity tag for an entity, but does have a Last- Modified date, it MAY use that date in an<a name="line.44"></a> +<span class="sourceLineNo">045</span> * If-Range header.<a name="line.45"></a> +<span class="sourceLineNo">046</span> * (The server can distinguish between a valid HTTP-date and any form of entity-tag by examining no more than two<a name="line.46"></a> +<span class="sourceLineNo">047</span> * characters.)<a name="line.47"></a> +<span class="sourceLineNo">048</span> * The If-Range header SHOULD only be used together with a Range header, and MUST be ignored if the request does not<a name="line.48"></a> +<span class="sourceLineNo">049</span> * include a Range header, or if the server does not support the sub-range operation.<a name="line.49"></a> +<span class="sourceLineNo">050</span> * <p><a name="line.50"></a> +<span class="sourceLineNo">051</span> * If the entity tag given in the If-Range header matches the current entity tag for the entity, then the server SHOULD<a name="line.51"></a> +<span class="sourceLineNo">052</span> * provide the specified sub-range of the entity using a 206 (Partial content) response.<a name="line.52"></a> +<span class="sourceLineNo">053</span> * If the entity tag does not match, then the server SHOULD return the entire entity using a 200 (OK) response.<a name="line.53"></a> +<span class="sourceLineNo">054</span> */<a name="line.54"></a> +<span class="sourceLineNo">055</span>public final class IfRange extends HeaderString {<a name="line.55"></a> +<span class="sourceLineNo">056</span><a name="line.56"></a> +<span class="sourceLineNo">057</span> /**<a name="line.57"></a> +<span class="sourceLineNo">058</span> * Returns a parsed <code>If-Range</code> header.<a name="line.58"></a> +<span class="sourceLineNo">059</span> *<a name="line.59"></a> +<span class="sourceLineNo">060</span> * @param value The <code>If-Range</code> header string.<a name="line.60"></a> +<span class="sourceLineNo">061</span> * @return The parsed <code>If-Range</code> header, or <jk>null</jk> if the string was null.<a name="line.61"></a> +<span class="sourceLineNo">062</span> */<a name="line.62"></a> +<span class="sourceLineNo">063</span> public static IfRange forString(String value) {<a name="line.63"></a> +<span class="sourceLineNo">064</span> if (value == null)<a name="line.64"></a> +<span class="sourceLineNo">065</span> return null;<a name="line.65"></a> +<span class="sourceLineNo">066</span> return new IfRange(value);<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> private IfRange(String value) {<a name="line.69"></a> +<span class="sourceLineNo">070</span> super(value);<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> /**<a name="line.73"></a> +<span class="sourceLineNo">074</span> * Returns this header value as a {@link java.util.Date} object.<a name="line.74"></a> +<span class="sourceLineNo">075</span> * @return This header value as a {@link java.util.Date} object, or <jk>null</jk> if the value is not a date.<a name="line.75"></a> +<span class="sourceLineNo">076</span> */<a name="line.76"></a> +<span class="sourceLineNo">077</span> public java.util.Date asDate() {<a name="line.77"></a> +<span class="sourceLineNo">078</span> char c0 = charAt(value, 0), c1 = charAt(value, 1);<a name="line.78"></a> +<span class="sourceLineNo">079</span> if (c0 == '*' || c0 == '"' || (c0 == 'W' && c1 == '/'))<a name="line.79"></a> +<span class="sourceLineNo">080</span> return null;<a name="line.80"></a> +<span class="sourceLineNo">081</span> return DateUtils.parseDate(toString());<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> /**<a name="line.84"></a> +<span class="sourceLineNo">085</span> * Returns this header value as an {@link EntityValidator} object.<a name="line.85"></a> +<span class="sourceLineNo">086</span> * @return This header value as a {@link EntityValidator} object, or <jk>null</jk> if the value is not an entity<a name="line.86"></a> +<span class="sourceLineNo">087</span> * validator.<a name="line.87"></a> +<span class="sourceLineNo">088</span> */<a name="line.88"></a> +<span class="sourceLineNo">089</span> public EntityValidator asValidator() {<a name="line.89"></a> +<span class="sourceLineNo">090</span> char c0 = charAt(value, 0), c1 = charAt(value, 1);<a name="line.90"></a> +<span class="sourceLineNo">091</span> if (c0 == '*' || c0 == '"' || (c0 == 'W' && c1 == '/'))<a name="line.91"></a> +<span class="sourceLineNo">092</span> return new EntityValidator(value);<a name="line.92"></a> +<span class="sourceLineNo">093</span> return null;<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> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/f1f17bc3/content/site/apidocs/src-html/org/apache/juneau/http/IfUnmodifiedSince.html ---------------------------------------------------------------------- diff --git a/content/site/apidocs/src-html/org/apache/juneau/http/IfUnmodifiedSince.html b/content/site/apidocs/src-html/org/apache/juneau/http/IfUnmodifiedSince.html new file mode 100644 index 0000000..b68ca22 --- /dev/null +++ b/content/site/apidocs/src-html/org/apache/juneau/http/IfUnmodifiedSince.html @@ -0,0 +1,138 @@ +<!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.http;<a name="line.13"></a> +<span class="sourceLineNo">014</span><a name="line.14"></a> +<span class="sourceLineNo">015</span>/**<a name="line.15"></a> +<span class="sourceLineNo">016</span> * Represents a parsed <l>If-Unmodified-Since</l> HTTP request header.<a name="line.16"></a> +<span class="sourceLineNo">017</span> * <p><a name="line.17"></a> +<span class="sourceLineNo">018</span> * Only send the response if the entity has not been modified since a specific time.<a name="line.18"></a> +<span class="sourceLineNo">019</span> *<a name="line.19"></a> +<span class="sourceLineNo">020</span> * <h6 class='figure'>Example</h6><a name="line.20"></a> +<span class="sourceLineNo">021</span> * <p class='bcode'><a name="line.21"></a> +<span class="sourceLineNo">022</span> * If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT<a name="line.22"></a> +<span class="sourceLineNo">023</span> * </p><a name="line.23"></a> +<span class="sourceLineNo">024</span> *<a name="line.24"></a> +<span class="sourceLineNo">025</span> * <h6 class='topic'>RFC2616 Specification</h6><a name="line.25"></a> +<span class="sourceLineNo">026</span> * The If-Unmodified-Since request-header field is used with a method to make it conditional.<a name="line.26"></a> +<span class="sourceLineNo">027</span> * If the requested resource has not been modified since the time specified in this field, the server SHOULD perform the<a name="line.27"></a> +<span class="sourceLineNo">028</span> * requested operation as if the If-Unmodified-Since header were not present.<a name="line.28"></a> +<span class="sourceLineNo">029</span> * <p><a name="line.29"></a> +<span class="sourceLineNo">030</span> * If the requested variant has been modified since the specified time, the server MUST NOT perform the requested<a name="line.30"></a> +<span class="sourceLineNo">031</span> * operation, and MUST return a 412 (Precondition Failed).<a name="line.31"></a> +<span class="sourceLineNo">032</span> * <p class='bcode'><a name="line.32"></a> +<span class="sourceLineNo">033</span> * If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date<a name="line.33"></a> +<span class="sourceLineNo">034</span> * </p><a name="line.34"></a> +<span class="sourceLineNo">035</span> * <p><a name="line.35"></a> +<span class="sourceLineNo">036</span> * An example of the field is:<a name="line.36"></a> +<span class="sourceLineNo">037</span> * <p class='bcode'><a name="line.37"></a> +<span class="sourceLineNo">038</span> * If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT<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> * If the request normally (i.e., without the If-Unmodified-Since header) would result in anything other than a 2xx or<a name="line.41"></a> +<span class="sourceLineNo">042</span> * 412 status, the If-Unmodified-Since header SHOULD be ignored.<a name="line.42"></a> +<span class="sourceLineNo">043</span> * <p><a name="line.43"></a> +<span class="sourceLineNo">044</span> * If the specified date is invalid, the header is ignored.<a name="line.44"></a> +<span class="sourceLineNo">045</span> * <p><a name="line.45"></a> +<span class="sourceLineNo">046</span> * The result of a request having both an If-Unmodified-Since header field and either an If-None-Match or an<a name="line.46"></a> +<span class="sourceLineNo">047</span> * If-Modified-Since header fields is undefined by this specification.<a name="line.47"></a> +<span class="sourceLineNo">048</span> */<a name="line.48"></a> +<span class="sourceLineNo">049</span>public final class IfUnmodifiedSince extends HeaderDate {<a name="line.49"></a> +<span class="sourceLineNo">050</span><a name="line.50"></a> +<span class="sourceLineNo">051</span> /**<a name="line.51"></a> +<span class="sourceLineNo">052</span> * Returns a parsed <code>If-Unmodified-Since</code> header.<a name="line.52"></a> +<span class="sourceLineNo">053</span> *<a name="line.53"></a> +<span class="sourceLineNo">054</span> * @param value The <code>If-Unmodified-Since</code> header string.<a name="line.54"></a> +<span class="sourceLineNo">055</span> * @return The parsed <code>If-Unmodified-Since</code> header, or <jk>null</jk> if the string was null.<a name="line.55"></a> +<span class="sourceLineNo">056</span> */<a name="line.56"></a> +<span class="sourceLineNo">057</span> public static IfUnmodifiedSince forString(String value) {<a name="line.57"></a> +<span class="sourceLineNo">058</span> if (value == null)<a name="line.58"></a> +<span class="sourceLineNo">059</span> return null;<a name="line.59"></a> +<span class="sourceLineNo">060</span> return new IfUnmodifiedSince(value);<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> +<span class="sourceLineNo">063</span> private IfUnmodifiedSince(String value) {<a name="line.63"></a> +<span class="sourceLineNo">064</span> super(value);<a name="line.64"></a> +<span class="sourceLineNo">065</span> }<a name="line.65"></a> +<span class="sourceLineNo">066</span>}<a name="line.66"></a> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +</pre> +</div> +</body> +</html>
