de.fuberlin.wiwiss.pubby.negotiation
Class ContentTypeNegotiator

java.lang.Object
  extended by de.fuberlin.wiwiss.pubby.negotiation.ContentTypeNegotiator

public class ContentTypeNegotiator
extends java.lang.Object


Nested Class Summary
 class ContentTypeNegotiator.VariantSpec
           
 
Constructor Summary
ContentTypeNegotiator()
           
 
Method Summary
 void addUserAgentOverride(java.util.regex.Pattern userAgentString, java.lang.String originalAcceptHeader, java.lang.String newAcceptHeader)
          Overrides the Accept header for certain user agents.
 ContentTypeNegotiator.VariantSpec addVariant(java.lang.String mediaType)
           
 MediaRangeSpec getBestMatch(java.lang.String accept)
           
 MediaRangeSpec getBestMatch(java.lang.String accept, java.lang.String userAgent)
           
 void setDefaultAccept(java.lang.String accept)
          Sets an Accept header to be used as the default if a client does not send an Accept header, or if the Accept header cannot be parsed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ContentTypeNegotiator

public ContentTypeNegotiator()
Method Detail

addVariant

public ContentTypeNegotiator.VariantSpec addVariant(java.lang.String mediaType)

setDefaultAccept

public void setDefaultAccept(java.lang.String accept)
Sets an Accept header to be used as the default if a client does not send an Accept header, or if the Accept header cannot be parsed. Defaults to "* / *".


addUserAgentOverride

public void addUserAgentOverride(java.util.regex.Pattern userAgentString,
                                 java.lang.String originalAcceptHeader,
                                 java.lang.String newAcceptHeader)
Overrides the Accept header for certain user agents. This can be used to implement special-case handling for user agents that send faulty Accept headers.

Parameters:
userAgentString - A pattern to be matched against the User-Agent header; null means regardless of User-Agent
originalAcceptHeader - Only override the Accept header if the user agent sends this header; null means always override
newAcceptHeader - The Accept header to be used instead

getBestMatch

public MediaRangeSpec getBestMatch(java.lang.String accept)

getBestMatch

public MediaRangeSpec getBestMatch(java.lang.String accept,
                                   java.lang.String userAgent)