Class CacheControl


  • public class CacheControl
    extends Object
    An abstraction for the value of a HTTP Cache-Control response header.
    Since:
    1.0
    Author:
    Paul Sandoz, Marc Hadley
    See Also:
    HTTP/1.1 section 14.9
    • Constructor Summary

      Constructors 
      Constructor Description
      CacheControl()
      Create a new instance of CacheControl.
    • Method Summary

      Modifier and Type Method Description
      boolean equals​(Object obj)
      Compares object argument to this cache control to see if they are the same considering all property values.
      Map<String,​String> getCacheExtension()
      Corresponds to a set of extension cache control directives.
      int getMaxAge()
      Corresponds to the max-age cache control directive.
      List<String> getNoCacheFields()
      Corresponds to the value of the no-cache cache control directive.
      List<String> getPrivateFields()
      Corresponds to the value of the private cache control directive.
      int getSMaxAge()
      Corresponds to the s-maxage cache control directive.
      int hashCode()
      Generate hash code from cache control properties.
      boolean isMustRevalidate()
      Corresponds to the must-revalidate cache control directive.
      boolean isNoCache()
      Corresponds to the no-cache cache control directive.
      boolean isNoStore()
      Corresponds to the no-store cache control directive.
      boolean isNoTransform()
      Corresponds to the no-transform cache control directive.
      boolean isPrivate()
      Corresponds to the private cache control directive.
      boolean isProxyRevalidate()
      Corresponds to the proxy-revalidate cache control directive.
      void setMaxAge​(int maxAge)
      Corresponds to the max-age cache control directive.
      void setMustRevalidate​(boolean mustRevalidate)
      Corresponds to the must-revalidate cache control directive.
      void setNoCache​(boolean noCache)
      Corresponds to the no-cache cache control directive.
      void setNoStore​(boolean noStore)
      Corresponds to the no-store cache control directive.
      void setNoTransform​(boolean noTransform)
      Corresponds to the no-transform cache control directive.
      void setPrivate​(boolean flag)
      Corresponds to the private cache control directive.
      void setProxyRevalidate​(boolean proxyRevalidate)
      Corresponds to the must-revalidate cache control directive.
      void setSMaxAge​(int sMaxAge)
      Corresponds to the s-maxage cache control directive.
      String toString()
      Convert the cache control to a string suitable for use as the value of the corresponding HTTP header.
      static CacheControl valueOf​(String value)
      Creates a new instance of CacheControl by parsing the supplied string.
    • Constructor Detail

      • CacheControl

        public CacheControl()
        Create a new instance of CacheControl. The new instance will have the following default settings:
        • private = false
        • noCache = false
        • noStore = false
        • noTransform = true
        • mustRevalidate = false
        • proxyRevalidate = false
        • An empty list of private fields
        • An empty list of no-cache fields
        • An empty map of cache extensions
    • Method Detail

      • valueOf

        public static CacheControl valueOf​(String value)
        Creates a new instance of CacheControl by parsing the supplied string.
        Parameters:
        value - the cache control string
        Returns:
        the newly created CacheControl
        Throws:
        IllegalArgumentException - if the supplied string cannot be parsed or is null
      • isMustRevalidate

        public boolean isMustRevalidate()
        Corresponds to the must-revalidate cache control directive.
        Returns:
        true if the must-revalidate cache control directive will be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.4
      • setMustRevalidate

        public void setMustRevalidate​(boolean mustRevalidate)
        Corresponds to the must-revalidate cache control directive.
        Parameters:
        mustRevalidate - true if the must-revalidate cache control directive should be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.4
      • isProxyRevalidate

        public boolean isProxyRevalidate()
        Corresponds to the proxy-revalidate cache control directive.
        Returns:
        true if the proxy-revalidate cache control directive will be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.4
      • setProxyRevalidate

        public void setProxyRevalidate​(boolean proxyRevalidate)
        Corresponds to the must-revalidate cache control directive.
        Parameters:
        proxyRevalidate - true if the proxy-revalidate cache control directive should be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.4
      • getMaxAge

        public int getMaxAge()
        Corresponds to the max-age cache control directive.
        Returns:
        the value of the max-age cache control directive, -1 if the directive is disabled.
        See Also:
        HTTP/1.1 section 14.9.3
      • setMaxAge

        public void setMaxAge​(int maxAge)
        Corresponds to the max-age cache control directive.
        Parameters:
        maxAge - the value of the max-age cache control directive, a value of -1 will disable the directive.
        See Also:
        HTTP/1.1 section 14.9.3
      • getSMaxAge

        public int getSMaxAge()
        Corresponds to the s-maxage cache control directive.
        Returns:
        the value of the s-maxage cache control directive, -1 if the directive is disabled.
        See Also:
        HTTP/1.1 section 14.9.3
      • setSMaxAge

        public void setSMaxAge​(int sMaxAge)
        Corresponds to the s-maxage cache control directive.
        Parameters:
        sMaxAge - the value of the s-maxage cache control directive, a value of -1 will disable the directive.
        See Also:
        HTTP/1.1 section 14.9.3
      • getNoCacheFields

        public List<String> getNoCacheFields()
        Corresponds to the value of the no-cache cache control directive.
        Returns:
        a mutable list of field-names that will form the value of the no-cache cache control directive. An empty list results in a bare no-cache directive.
        See Also:
        isNoCache(), setNoCache(boolean), HTTP/1.1 section 14.9.1
      • setNoCache

        public void setNoCache​(boolean noCache)
        Corresponds to the no-cache cache control directive.
        Parameters:
        noCache - true if the no-cache cache control directive should be included in the response, false otherwise.
        See Also:
        getNoCacheFields(), HTTP/1.1 section 14.9.1
      • isNoCache

        public boolean isNoCache()
        Corresponds to the no-cache cache control directive.
        Returns:
        true if the no-cache cache control directive will be included in the response, false otherwise.
        See Also:
        getNoCacheFields(), HTTP/1.1 section 14.9.1
      • isPrivate

        public boolean isPrivate()
        Corresponds to the private cache control directive.
        Returns:
        true if the private cache control directive will be included in the response, false otherwise.
        See Also:
        getPrivateFields(), HTTP/1.1 section 14.9.1
      • getPrivateFields

        public List<String> getPrivateFields()
        Corresponds to the value of the private cache control directive.
        Returns:
        a mutable list of field-names that will form the value of the private cache control directive. An empty list results in a bare no-cache directive.
        See Also:
        isPrivate(), setPrivate(boolean), HTTP/1.1 section 14.9.1
      • setPrivate

        public void setPrivate​(boolean flag)
        Corresponds to the private cache control directive.
        Parameters:
        flag - true if the private cache control directive should be included in the response, false otherwise.
        See Also:
        getPrivateFields(), HTTP/1.1 section 14.9.1
      • isNoTransform

        public boolean isNoTransform()
        Corresponds to the no-transform cache control directive.
        Returns:
        true if the no-transform cache control directive will be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.5
      • setNoTransform

        public void setNoTransform​(boolean noTransform)
        Corresponds to the no-transform cache control directive.
        Parameters:
        noTransform - true if the no-transform cache control directive should be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.5
      • isNoStore

        public boolean isNoStore()
        Corresponds to the no-store cache control directive.
        Returns:
        true if the no-store cache control directive will be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.2
      • setNoStore

        public void setNoStore​(boolean noStore)
        Corresponds to the no-store cache control directive.
        Parameters:
        noStore - true if the no-store cache control directive should be included in the response, false otherwise.
        See Also:
        HTTP/1.1 section 14.9.2
      • getCacheExtension

        public Map<String,​String> getCacheExtension()
        Corresponds to a set of extension cache control directives.
        Returns:
        a mutable map of cache control extension names and their values. If a key has a null value, it will appear as a bare directive. If a key has a value that contains no whitespace then the directive will appear as a simple name=value pair. If a key has a value that contains whitespace then the directive will appear as a quoted name="value" pair.
        See Also:
        HTTP/1.1 section 14.9.6
      • toString

        public String toString()
        Convert the cache control to a string suitable for use as the value of the corresponding HTTP header.
        Overrides:
        toString in class Object
        Returns:
        a stringified cache control
      • hashCode

        public int hashCode()
        Generate hash code from cache control properties.
        Overrides:
        hashCode in class Object
        Returns:
        the hashCode
      • equals

        public boolean equals​(Object obj)
        Compares object argument to this cache control to see if they are the same considering all property values.
        Overrides:
        equals in class Object
        Parameters:
        obj - the object to compare to
        Returns:
        true if the two cache controls are the same, false otherwise.