Package org.springframework.http

# Record Class ETag

java.lang.Object
java.lang.Record
org.springframework.http.ETag

Record Components:
  `tag` - the unquoted tag value
  `weak` - whether the entity tag is for weak or strong validation

public record ETag(String tag, boolean weak) extends Record
Represents an ETag for HTTP conditional requests.

Since:
  5.3.38
Author:
  Rossen Stoyanchev
See Also:
  - RFC 7232

## Constructor Summary

Constructors
Constructor
Description
`ETag(String tag, boolean weak)`
Creates an instance of a `ETag` record class.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`compare(ETag other, boolean strong)`
Perform a strong or weak comparison to another `ETag`.
`static ETag`
`create(String rawValue)`
Create an `ETag` instance from a String representation.
`boolean`
`equals(Object other)`
Indicates whether some other object is "equal to" this one.
`String`
`formattedTag()`
Return the fully formatted tag including "W/" prefix and quotes.
`int`
`hashCode()`
Returns a hash code value for this object.
`boolean`
`isWildcard()`
Whether this a wildcard tag matching to any entity tag value.
`static List<ETag>`
`parse(String source)`
Parse entity tags from an "If-Match" or "If-None-Match" header.
`static String`
`quoteETagIfNecessary(String tag)`
Add quotes around the ETag value if not present already.
`String`
`tag()`
Returns the value of the `tag` record component.
`String`
`toString()`
Returns a string representation of this record class.
`boolean`
`weak()`
Returns the value of the `weak` record component.

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### ETag

public ETag(String tag, boolean weak)
Creates an instance of a `ETag` record class.

Parameters:
  `tag` - the value for the `tag` record component
  `weak` - the value for the `weak` record component

## Method Details

### isWildcard

public boolean isWildcard()
Whether this a wildcard tag matching to any entity tag value.

### compare

public boolean compare(ETag other, boolean strong)
Perform a strong or weak comparison to another `ETag`.

Parameters:
  `other` - the ETag to compare to
  `strong` - whether to perform strong or weak comparison
Returns:
  whether there is a match or not
Since:
  6.2
See Also:
  - RFC 9110, Section 8.8.3.2

### equals

public boolean equals(Object other)
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with `Objects::equals(Object,Object)`; primitive components are compared with '=='.

Specified by:
  `equals` in class `Record`
Parameters:
  `other` - the object with which to compare
Returns:
  `true` if this object is the same as the `other` argument; `false` otherwise.

### hashCode

public int hashCode()
Returns a hash code value for this object. The value is derived from the hash code of each of the record components.

Specified by:
  `hashCode` in class `Record`
Returns:
  a hash code value for this object

### toString

public String toString()
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.

Specified by:
  `toString` in class `Record`
Returns:
  a string representation of this object

### formattedTag

public String formattedTag()
Return the fully formatted tag including "W/" prefix and quotes.

### create

public static ETag create(String rawValue)
Create an `ETag` instance from a String representation.

Parameters:
  `rawValue` - the formatted ETag value
Returns:
  the created instance
Since:
  6.2

### parse

public static List<ETag> parse(String source)
Parse entity tags from an "If-Match" or "If-None-Match" header.

Parameters:
  `source` - the source string to parse
Returns:
  the parsed ETags

### quoteETagIfNecessary

public static String quoteETagIfNecessary(String tag)
Add quotes around the ETag value if not present already.

Parameters:
  `tag` - the ETag value
Returns:
  the resulting, quoted value
Since:
  6.2

### tag

public String tag()
Returns the value of the `tag` record component.

Returns:
  the value of the `tag` record component

### weak

public boolean weak()
Returns the value of the `weak` record component.

Returns:
  the value of the `weak` record component