package magic.model; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @SuppressWarnings("serial") public class MagicPermanentList extends ArrayList implements MagicCopyable { public MagicPermanentList() {} public MagicPermanentList(final MagicPermanent... permanents) { addAll(Arrays.asList(permanents)); } public MagicPermanentList(final List list) { addAll(list); } MagicPermanentList(final MagicCopyMap copyMap,final MagicPermanentList list) { for (final MagicPermanent permanent : list) { add(copyMap.copy(permanent)); } } @Override public MagicPermanentList copy(final MagicCopyMap copyMap) { return new MagicPermanentList(copyMap, this); } public long getStateId() { final long[] keys = new long[size()]; int idx = 0; for (final MagicPermanent permanent : this) { keys[idx] = permanent.getStateId(); idx++; } return MurmurHash3.hash(keys); } }