package no.difi.datahotel.resources; import com.sun.jersey.api.core.HttpRequestContext; import no.difi.datahotel.model.Metadata; import no.difi.datahotel.util.DatahotelException; import javax.ws.rs.core.*; public abstract class BaseResource { @Context protected UriInfo uriInfo; @Context protected Request request; protected void checkNotModified(Metadata metadata) { EntityTag eTagCurrent = new EntityTag(String.valueOf(metadata.getUpdated())); HttpRequestContext context = (HttpRequestContext) request; if (context.getHeaderValue(HttpHeaders.IF_NONE_MATCH) == null) return; EntityTag eTagRequest = new EntityTag(context.getHeaderValue(HttpHeaders.IF_NONE_MATCH)); // if (request.evaluatePreconditions(eTag) != null) if (eTagCurrent.equals(eTagRequest)) throw new DatahotelException(304, "Not modified"); } protected Response returnNotFound(String message) throws Exception { throw new DatahotelException(404, message); } }