Package org.springframework.web.servlet.resource

# Class AbstractVersionStrategy

java.lang.Object
org.springframework.web.servlet.resource.AbstractVersionStrategy

All Implemented Interfaces:
  `VersionPathStrategy`, `VersionStrategy`

Direct Known Subclasses:
  `ContentVersionStrategy`, `FixedVersionStrategy`

public abstract class AbstractVersionStrategy extends Object implements VersionStrategy
Abstract base class for `VersionStrategy` implementations.

Supports versions as:

- prefix in the request path, like "version/static/myresource.js"
- file name suffix in the request path, like "static/myresource-version.js"

Note: This base class does not provide support for generating the version string.

Since:
  4.1
Author:
  Brian Clozel, Rossen Stoyanchev

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected static class`
`AbstractVersionStrategy.FileNameVersionPathStrategy`
File name-based `VersionPathStrategy`, for example, `"path/foo-{version}.css"`.
`protected static class`
`AbstractVersionStrategy.PrefixVersionPathStrategy`
A prefix-based `VersionPathStrategy`, for example, `"{version}/path/foo.js"`.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final org.apache.commons.logging.Log`
`logger`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractVersionStrategy(VersionPathStrategy pathStrategy)`

## Method Summary

Modifier and Type
Method
Description
`String`
`addVersion(String requestPath, String version)`
Add a version to the given request path.
`String`
`extractVersion(String requestPath)`
Extract the resource version from the request path.
`VersionPathStrategy`
`getVersionPathStrategy()`
`String`
`removeVersion(String requestPath, String version)`
Remove the version from the request path.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.web.servlet.resource.VersionStrategy

`getResourceVersion`

## Field Details

### logger

protected final org.apache.commons.logging.Log logger

## Constructor Details

### AbstractVersionStrategy

protected AbstractVersionStrategy(VersionPathStrategy pathStrategy)

## Method Details

### getVersionPathStrategy

public VersionPathStrategy getVersionPathStrategy()

### extractVersion

@Nullable public String extractVersion(String requestPath)
Description copied from interface: `VersionPathStrategy`
Extract the resource version from the request path.

Specified by:
  `extractVersion` in interface `VersionPathStrategy`
Parameters:
  `requestPath` - the request path to check
Returns:
  the version string or `null` if none was found

### removeVersion

public String removeVersion(String requestPath, String version)
Description copied from interface: `VersionPathStrategy`
Remove the version from the request path. It is assumed that the given version was extracted via `VersionPathStrategy.extractVersion(String)`.

Specified by:
  `removeVersion` in interface `VersionPathStrategy`
Parameters:
  `requestPath` - the request path of the resource being resolved
  `version` - the version obtained from `VersionPathStrategy.extractVersion(String)`
Returns:
  the request path with the version removed

### addVersion

public String addVersion(String requestPath, String version)
Description copied from interface: `VersionPathStrategy`
Add a version to the given request path.

Specified by:
  `addVersion` in interface `VersionPathStrategy`
Parameters:
  `requestPath` - the requestPath
  `version` - the version
Returns:
  the requestPath updated with a version string