HttpCache.java

package jasper.component;

import jasper.domain.proj.Cursor;
import org.springframework.data.domain.Page;
import org.springframework.http.CacheControl;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class HttpCache {
	public static CacheControl ifNotModifiedCacheControl = CacheControl
			.noCache()
			.mustRevalidate()
			.cachePrivate();


	public <T extends Cursor> ResponseEntity<List<T>> ifNotModifiedList(List<T> result) {
		return ifNotModified(result);
	}

	public <T extends Cursor> ResponseEntity<Page<T>> ifNotModifiedPage(Page<T> result) {
		return ifNotModified(result);
	}

	public <T> ResponseEntity<T> ifNotModified(T result) {
		return ResponseEntity.ok()
			.cacheControl(ifNotModifiedCacheControl)
			.body(result);
	}
}