javax.portlet

## Interface CacheControl

    public interface CacheControl

The `CacheControl` interface represents cache settings for a piece of markup. The settings are only valid for the current request.

Since:
  2.0

### Method Summary

All Methods Instance Methods Abstract Methods
`String` `getETag()` Returns the ETag for the current response that is used as validation tag, or `null</null> if no ETag is set on the response.`
`int` `getExpirationTime()` Get the currently set expiration time.
`boolean` `isPublicScope()` Returns a boolean indicating whether the caching scope is set to public for the current response.
`void` `setETag(String token)` Sets an ETag for the current response that is used as validation tag.
`void` `setExpirationTime(int time)` Sets a new expiration time for the current response in seconds.
`void` `setPublicScope(boolean publicScope)` Sets the caching scope for the current response to public with `true` as `publicScope` and to private with `false` as `publicScope`.
`void` `setUseCachedContent(boolean useCachedContent)` Sets the indication whether the cached content for the provided ETag at the request is still valid or not.
`boolean` `useCachedContent()` Returns a boolean indicating whether the cached content for the provided ETag at the request can still be considerated valid.

### Method Detail

#### getExpirationTime

    int getExpirationTime()

Get the currently set expiration time. If no expiration time is set on this response the default defined in the portlet deployment descriptor with the `expiration-cache`tag is returned, or `0` if no default is defined.

This call returns the same value as the `getProperty(EXPIRATION_CACHE)` call.

``

Returns:
  the currently set expiration time in seconds, or `0` if no expiration time is set.

#### setExpirationTime

    void setExpirationTime(int time)

Sets a new expiration time for the current response in seconds.

If the expiration value is set to 0, caching is disabled for this portlet; if the value is set to -1, the cache does not expire.

This call is equivalent to calling `setProperty(EXPIRATION_CACHE)`.

Parameters:
  `time` - expiration time in seconds

#### isPublicScope

    boolean isPublicScope()

Returns a boolean indicating whether the caching scope is set to public for the current response. If no caching scope is set on this response, the default defined in the deployment descriptor with the `cache-scope` tag is returned, or `false` if no default is defined.

Public cache scope indicates that the cache entry can be shared across users. Non-public, or private cache scope indicates that the cache entry must not be shared across users.

This call is equivalent to calling `getProperty(CACHE_SCOPE).equals(PUBLIC_SCOPE)`.

Returns:
  true if the cache scope is public for the current response.

#### setPublicScope

    void setPublicScope(boolean publicScope)

Sets the caching scope for the current response to public with `true` as `publicScope` and to private with `false` as `publicScope`.

Public cache scope indicates that the cache entry can be shared across users. Non-public, or private cache scope indicates that the cache entry must not be shared across users.

This call is equivalent to calling `(publicScope ? setProperty(CACHE_SCOPE, PUBLIC_SCOPE | setProperty(CACHE_SCOPE, PRIVATE_SCOPE)`.

Parameters:
  `publicScope` - indicating if the cache entry can be shared across users

#### getETag

    String getETag()

Returns the ETag for the current response that is used as validation tag, or `null</null> if no ETag is set on the response.

This call is equivalent to calling `getProperty(ETAG)`.

`

Returns:
  the ETag for the current response that is used as validation tag, or `null</null> if no ETag is set.`

#### setETag

    void setETag(String token)

Sets an ETag for the current response that is used as validation tag. If an ETag was already set it is replaced with the new value.

This call is equivalent to calling `setProperty(ETAG, token)`.

Setting the ETag to `null` removes the currently set ETag.

Parameters:
  `token` - the ETag token

#### useCachedContent

    boolean useCachedContent()

Returns a boolean indicating whether the cached content for the provided ETag at the request can still be considerated valid. If not set, the default is `false`.

This call is equivalent to calling `getProperty(USE_CACHED_CONTENT)` and getting a non-null value back.

Returns:
  boolean indicating whether the caching scope is set to public for the current response

#### setUseCachedContent

    void setUseCachedContent(boolean useCachedContent)

Sets the indication whether the cached content for the provided ETag at the request is still valid or not. If set to `true` no output should be rendered, but a new expiration time should be set for the markup with the given ETag .

This call is equivalent to calling `setProperty(USE_CACHED_CONTENT, "true")`.

Parameters:
  `useCachedContent` - boolean indication whether the the cached content is still valid or not