Class PushBuilderImpl
- java.lang.Object
-
- org.eclipse.jetty.server.PushBuilderImpl
-
- All Implemented Interfaces:
PushBuilder
public class PushBuilderImpl extends java.lang.Object implements PushBuilder
-
-
Constructor Summary
Constructors Constructor Description PushBuilderImpl(Request request, HttpFields fields, java.lang.String method, java.lang.String queryString, java.lang.String sessionId, boolean conditional)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PushBuilder
addHeader(java.lang.String name, java.lang.String value)
Add a header to be used for the push.PushBuilder
conditional(boolean conditional)
Set if the request is to be conditional.PushBuilder
etag(java.lang.String etag)
Set the etag to be used for conditional pushes.java.lang.String
getEtag()
java.lang.String
getHeader(java.lang.String name)
java.util.Set<java.lang.String>
getHeaderNames()
java.lang.String
getLastModified()
java.lang.String
getMethod()
java.lang.String
getPath()
java.lang.String
getQueryString()
java.lang.String
getSessionId()
boolean
isConditional()
PushBuilder
lastModified(java.lang.String lastModified)
Set the last modified date to be used for conditional pushes.PushBuilder
method(java.lang.String method)
Set the method to be used for the push.PushBuilder
path(java.lang.String path)
Set the URI path to be used for the push.void
push()
Push a resource given the current state of the builder, returning immediately without blocking.PushBuilder
queryString(java.lang.String queryString)
Set the query string to be used for the push.PushBuilder
removeHeader(java.lang.String name)
Remove the named header.PushBuilder
sessionId(java.lang.String sessionId)
Set the SessionID to be used for the push.PushBuilder
setHeader(java.lang.String name, java.lang.String value)
Set a header to be used for the push.
-
-
-
Constructor Detail
-
PushBuilderImpl
public PushBuilderImpl(Request request, HttpFields fields, java.lang.String method, java.lang.String queryString, java.lang.String sessionId, boolean conditional)
-
-
Method Detail
-
getMethod
public java.lang.String getMethod()
- Specified by:
getMethod
in interfacePushBuilder
-
method
public PushBuilder method(java.lang.String method)
Description copied from interface:PushBuilder
Set the method to be used for the push.
Any non-empty String may be used for the method.
- Specified by:
method
in interfacePushBuilder
- Parameters:
method
- the method to be used for the push.- Returns:
- this builder.
-
getQueryString
public java.lang.String getQueryString()
- Specified by:
getQueryString
in interfacePushBuilder
-
queryString
public PushBuilder queryString(java.lang.String queryString)
Description copied from interface:PushBuilder
Set the query string to be used for the push. Will be appended to any query String included in a call toPushBuilder.path(String)
. Any duplicate parameters must be preserved. This method should be used instead of a query inPushBuilder.path(String)
when multiplePushBuilder.push()
calls are to be made with the same query string.- Specified by:
queryString
in interfacePushBuilder
- Parameters:
queryString
- the query string to be used for the push.- Returns:
- this builder.
-
getSessionId
public java.lang.String getSessionId()
- Specified by:
getSessionId
in interfacePushBuilder
-
sessionId
public PushBuilder sessionId(java.lang.String sessionId)
Description copied from interface:PushBuilder
Set the SessionID to be used for the push. The session ID will be set in the same way it was on the associated request (ie as a cookie if the associated request used a cookie, or as a url parameter if the associated request used a url parameter). Defaults to the requested session ID or any newly assigned session id from a newly created session.- Specified by:
sessionId
in interfacePushBuilder
- Parameters:
sessionId
- the SessionID to be used for the push.- Returns:
- this builder.
-
isConditional
public boolean isConditional()
- Specified by:
isConditional
in interfacePushBuilder
-
conditional
public PushBuilder conditional(boolean conditional)
Description copied from interface:PushBuilder
Set if the request is to be conditional. If the request is conditional, any available values fromPushBuilder.etag(String)
orPushBuilder.lastModified(String)
will be set in the appropriate headers. If the request is not conditional, then etag and lastModified values are ignored. Defaults to true if the associated request was conditional.- Specified by:
conditional
in interfacePushBuilder
- Parameters:
conditional
- true if the push request is conditional- Returns:
- this builder.
-
getHeaderNames
public java.util.Set<java.lang.String> getHeaderNames()
- Specified by:
getHeaderNames
in interfacePushBuilder
-
getHeader
public java.lang.String getHeader(java.lang.String name)
- Specified by:
getHeader
in interfacePushBuilder
-
setHeader
public PushBuilder setHeader(java.lang.String name, java.lang.String value)
Description copied from interface:PushBuilder
Set a header to be used for the push. If the builder has an existing header with the same name, its value is overwritten.
- Specified by:
setHeader
in interfacePushBuilder
- Parameters:
name
- The header name to setvalue
- The header value to set- Returns:
- this builder.
-
addHeader
public PushBuilder addHeader(java.lang.String name, java.lang.String value)
Description copied from interface:PushBuilder
Add a header to be used for the push.
- Specified by:
addHeader
in interfacePushBuilder
- Parameters:
name
- The header name to addvalue
- The header value to add- Returns:
- this builder.
-
removeHeader
public PushBuilder removeHeader(java.lang.String name)
Description copied from interface:PushBuilder
Remove the named header. If the header does not exist, take no action.
- Specified by:
removeHeader
in interfacePushBuilder
- Parameters:
name
- The name of the header to remove- Returns:
- this builder.
-
getPath
public java.lang.String getPath()
- Specified by:
getPath
in interfacePushBuilder
-
path
public PushBuilder path(java.lang.String path)
Description copied from interface:PushBuilder
Set the URI path to be used for the push. The path may start with "/" in which case it is treated as an absolute path, otherwise it is relative to the context path of the associated request. There is no path default andpath(String)
must be called before every call toPushBuilder.push()
. If a query string is present in the argumentpath
, its contents must be merged with the contents previously passed toPushBuilder.queryString(java.lang.String)
, preserving duplicates.- Specified by:
path
in interfacePushBuilder
- Parameters:
path
- the URI path to be used for the push, which may include a query string.- Returns:
- this builder.
-
getEtag
public java.lang.String getEtag()
- Specified by:
getEtag
in interfacePushBuilder
-
etag
public PushBuilder etag(java.lang.String etag)
Description copied from interface:PushBuilder
Set the etag to be used for conditional pushes. The etag will be used only ifPushBuilder.isConditional()
is true. Defaults to no etag. The value is nulled after every call toPushBuilder.push()
- Specified by:
etag
in interfacePushBuilder
- Parameters:
etag
- the etag to be used for the push.- Returns:
- this builder.
-
getLastModified
public java.lang.String getLastModified()
- Specified by:
getLastModified
in interfacePushBuilder
-
lastModified
public PushBuilder lastModified(java.lang.String lastModified)
Description copied from interface:PushBuilder
Set the last modified date to be used for conditional pushes. The last modified date will be used only ifPushBuilder.isConditional()
is true. Defaults to no date. The value is nulled after every call toPushBuilder.push()
- Specified by:
lastModified
in interfacePushBuilder
- Parameters:
lastModified
- the last modified date to be used for the push.- Returns:
- this builder.
-
push
public void push()
Description copied from interface:PushBuilder
Push a resource given the current state of the builder, returning immediately without blocking.Push a resource based on the current state of the PushBuilder. If
PushBuilder.isConditional()
is true and an etag or lastModified value is provided, then an appropriate conditional header will be generated. If both an etag and lastModified value are provided only an If-None-Match header will be generated. If the builder has a session ID, then the pushed request will include the session ID either as a Cookie or as a URI parameter as appropriate. The builders query string is merged with any passed query string.Before returning from this method, the builder has its path, etag and lastModified fields nulled. All other fields are left as is for possible reuse in another push.
- Specified by:
push
in interfacePushBuilder
-
-