package org.karmaexchange.dao;
import java.util.Comparator;
import java.util.Date;
import javax.annotation.Nullable;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.google.common.base.Predicate;
import com.googlecode.objectify.Key;
@Data
@NoArgsConstructor
public class AttendanceRecord {
private KeyWrapper<Event> event;
private Date eventStartTime;
private boolean attended;
public AttendanceRecord(Event event, boolean attended) {
this.event = KeyWrapper.create(event);
eventStartTime = event.getStartTime();
this.attended = attended;
}
public static class EventStartTimeComparator implements Comparator<AttendanceRecord> {
public static final EventStartTimeComparator INSTANCE = new EventStartTimeComparator();
@Override
public int compare(AttendanceRecord rec1, AttendanceRecord rec2) {
// Recent events take precedence.
return rec2.eventStartTime.compareTo(rec1.eventStartTime);
}
}
public static Predicate<AttendanceRecord> eventPredicate(final Key<Event> eventKey) {
return new Predicate<AttendanceRecord>() {
@Override
public boolean apply(@Nullable AttendanceRecord input) {
return KeyWrapper.toKey(input.event).equals(eventKey);
}
};
}
}