package com.kapti.pointsmanager.pointevents.RankingEvents; import com.kapti.client.user.PointsType; import com.kapti.client.user.User; import java.util.Collection; import java.util.HashMap; /** * Deze klasse is een puntenevent die berekend wordt over de volledige userbase. * De klasse krijgt bij constructie een collectie gebruikers mee en berekent * hiervoor een ranking. De score voor iedere gebruiker kan dan achteraf * opgevraagd worden. * * @author Dieter */ public abstract class ARankingEvent { protected HashMap<User, Integer> winners; public ARankingEvent(Collection<User> users) { winners = calculateWinners(users); } //Berekent een HashMap met de winnaars voor dit event, samen //met de rang die ze behaald hebben protected abstract HashMap<User, Integer> calculateWinners(Collection<User> users); public abstract PointsType getType(); //Geeft een gepersonaliseerd bericht met de rang van de speler (NULL indien hij niet in aanmerking komt) public abstract String getDescription(User user); public abstract int getPoints(User user); }