001package fr.aumgn.bukkitutils.playerref.list;
002
003import java.util.ArrayList;
004import java.util.List;
005
006import org.bukkit.OfflinePlayer;
007import org.bukkit.entity.Player;
008
009import com.google.common.collect.Iterables;
010import com.google.common.collect.Lists;
011
012import fr.aumgn.bukkitutils.playerref.PlayerRef;
013import fr.aumgn.bukkitutils.playerref.PlayersIterable;
014import fr.aumgn.bukkitutils.playerref.ToOfflinePlayer;
015
016public class PlayersRefArrayList
017            extends ArrayList<PlayerRef> implements PlayersRefList {
018
019    private static final long serialVersionUID = -921106024183437981L;
020
021    public PlayersRefArrayList() {
022        super();
023    }
024
025    public PlayersRefArrayList(int capacity) {
026        super(capacity);
027    }
028
029    @Override
030    public void add(OfflinePlayer player) {
031        add(PlayerRef.get(player));
032    }
033
034    @Override
035    public void add(int index, OfflinePlayer player) {
036        add(index, PlayerRef.get(player));
037    }
038
039    @Override
040    public boolean contains(OfflinePlayer player) {
041        return contains(PlayerRef.get(player));
042    }
043
044    @Override
045    public OfflinePlayer getOfflinePlayer(int index) {
046        return get(index).getOfflinePlayer();
047    }
048
049    @Override
050    public Player getPlayer(int index) {
051        return get(index).getPlayer();
052    }
053
054    @Override
055    public Iterable<OfflinePlayer> offlinePlayers() {
056        return Iterables.transform(
057                PlayersRefArrayList.this, new ToOfflinePlayer());
058    }
059
060    @Override
061    public Iterable<Player> players() {
062        return new PlayersIterable(PlayersRefArrayList.this);
063    }
064
065    @Override
066    public List<OfflinePlayer> getOfflinePlayers() {
067        return Lists.transform(this, new ToOfflinePlayer());
068    }
069
070    @Override
071    public List<Player> getPlayers() {
072        return Lists.newArrayList(players());
073    }
074}