package gov.nysenate.openleg.service.entity.committee.data; import gov.nysenate.openleg.model.base.SessionYear; import gov.nysenate.openleg.model.entity.CommitteeSessionId; import net.sf.ehcache.Element; import net.sf.ehcache.store.AbstractPolicy; public class CommitteeCacheEvictionPolicy extends AbstractPolicy { public static final String name = "RECENT_COMMITTEE_FIRST"; @Override public String getName() { return name; } /** * {@inheritDoc} */ @Override public boolean compare(Element element1, Element element2) { int element1Year = ((CommitteeSessionId) element1.getObjectKey()).getSession().getYear(); int element2Year = ((CommitteeSessionId) element2.getObjectKey()).getSession().getYear(); return (element1Year >= SessionYear.current().getYear() && element1Year != element2Year) ? (element2Year < element1Year) : (element2.getLastAccessTime() < element1.getLastAccessTime()); } }