boolean getOrHead = "GET".equals(method) || "HEAD".equals(method);
try {
for (String value : ifNonMatch) {
boolean result = "*".equals(value);
if (!result) {
EntityTag requestTag = EntityTag.valueOf(value);
result = getOrHead ? requestTag.equals(eTag)
: !requestTag.isWeak() && !eTag.isWeak() && requestTag.equals(eTag);
}
if (result) {
Response.Status status = getOrHead ? Response.Status.NOT_MODIFIED
: Response.Status.PRECONDITION_FAILED;
return Response.status(status).tag(eTag);