/**
*
*/
package ecologylab.bigsemantics.collecting;
import java.net.CookiePolicy;
import java.net.HttpCookie;
import java.net.URI;
import java.util.HashMap;
import ecologylab.net.ParsedURL;
import ecologylab.serialization.ElementState;
import ecologylab.serialization.TranslationContext;
import ecologylab.serialization.annotations.simpl_scalar;
/**
* @author andruid
*
*/
public class CookieProcessing extends ElementState
{
@simpl_scalar
String domain;
@simpl_scalar
boolean ignoreAllCookies;
static HashMap<String, Boolean> globalCookieAcceptance = new HashMap<String, Boolean>();
/**
*
*/
public CookieProcessing()
{
}
@Override
public void deserializationPostHook(TranslationContext translationContext, Object object )
{
System.out.println("Setting cookie policy for domain : " + domain + " [IgnoreAllCookies: " + ignoreAllCookies + "]");
if (domain != null)
globalCookieAcceptance.put(domain, ignoreAllCookies);
}
public static CookiePolicy semanticsCookiePolicy = new CookiePolicy()
{
@Override
//TODO -- find a magic way to make this more efficient or send java se programmers to a dungeon
public boolean shouldAccept(URI uri, HttpCookie cookie)
{
ParsedURL purl = ParsedURL.get(uri);
String domain = purl.domain();
Boolean result = globalCookieAcceptance.get(domain);
purl.recycle();
//result = (result == null) || result;
//System.out.println("MMD has Cookie rejected from URI: [" + result + "] :" + uri );
return (result == null) || result;
}
};
}