package games.strategy.engine.data;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import games.strategy.engine.delegate.IDelegate;
public class DelegateList extends GameDataComponent implements Iterable<IDelegate> {
private static final long serialVersionUID = 4156921032854553312L;
private Map<String, IDelegate> m_delegates = new HashMap<>();
public DelegateList(final GameData data) {
super(data);
}
public void addDelegate(final IDelegate del) {
m_delegates.put(del.getName(), del);
}
public int size() {
return m_delegates.size();
}
@Override
public Iterator<IDelegate> iterator() {
return m_delegates.values().iterator();
}
public IDelegate getDelegate(final String name) {
return m_delegates.get(name);
}
private void writeObject(final ObjectOutputStream out) {
// dont write since delegates should be handled seperatly.
}
private void readObject(final ObjectInputStream in) {
m_delegates = new HashMap<>();
}
}