package org.ggp.base.player.gamer.statemachine.human.event;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.ggp.base.util.observer.Event;
import org.ggp.base.util.statemachine.Move;
import com.google.common.collect.ImmutableList;
public final class HumanNewMovesEvent extends Event
{
private final ImmutableList<Move> moves;
private final Move selection;
private HumanNewMovesEvent(ImmutableList<Move> moves, Move selection) {
this.moves = moves;
this.selection = selection;
}
public static HumanNewMovesEvent create(List<Move> moves, Move selection) {
List<Move> sortedMoves = new ArrayList<Move>(moves);
Collections.sort(sortedMoves, new Comparator<Move>(){
@Override
public int compare(Move o1, Move o2) {
return o1.toString().compareTo(o2.toString());
}
});
return new HumanNewMovesEvent(ImmutableList.copyOf(sortedMoves), selection);
}
public List<Move> getMoves() {
return moves;
}
public Move getSelection() {
return selection;
}
}