package org.jboss.resteasy.plugins.cache.server;
import java.util.List;
import java.util.Map;
import javax.ws.rs.core.CacheControl;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public interface ServerCache
{
public static boolean mayVary(Entry cached, MultivaluedMap<String, String> current) {
boolean mayVary = false;
for (Map.Entry<String, List<String>> entry : cached.getVaryHeaders().entrySet()) {
String headerName = entry.getKey();
mayVary |= !(current.containsKey(headerName) && current.get(headerName).containsAll(entry.getValue()));
}
return mayVary;
}
public static interface Entry
{
int getExpirationInSeconds();
boolean isExpired();
String getEtag();
byte[] getCached();
MultivaluedMap<String, Object> getHeaders();
MultivaluedMap<String, String> getVaryHeaders();
}
Entry add(String uri, MediaType mediaType, CacheControl cc, MultivaluedMap<String, Object> headers, byte[] entity, String etag, MultivaluedMap<String, String> varyHeaders);
Entry get(String uri, MediaType accept, MultivaluedMap<String, String> headers);
void remove(String uri);
void clear();
}