package MonorailHard.Generics; import MonorailHard.DrawningObjects.DrawningMonorail; import MonorailHard.MovementStrategy.DrawningObjectMonorail; import java.util.Dictionary; import java.util.HashMap; import java.util.List; import java.util.Queue; import java.util.stream.Collectors; public class MonorailGenericStorage { final HashMap> _monorailStorages; public List Keys(){ if(_monorailStorages == null) return null; return _monorailStorages.keySet().stream().collect(Collectors.toList()); } private final int _pictureWidth; private final int _pictureHeight; public MonorailGenericStorage(int pictureWidth, int pictureHeight){ _monorailStorages = new HashMap<>(); _pictureWidth = pictureWidth; _pictureHeight = pictureHeight; } public void AddSet(String name){ if(_monorailStorages.containsKey(name)) return; _monorailStorages.put(name, new MonorailGenericCollection<>(_pictureWidth, _pictureHeight)); } public void DelSet(String name, MonorailTrashCollection trashBox){ if(!_monorailStorages.containsKey(name)) return; MonorailGenericCollection cur = _monorailStorages.get(name); for(int i = 0; i < cur.Size(); i++) trashBox.Push(cur.Get(i)); _monorailStorages.remove(name); } public MonorailGenericCollection Get(String name){ if(!_monorailStorages.containsKey(name)) return null; return _monorailStorages.get(name); } public DrawningMonorail Get(String collectionName, int position){ return _monorailStorages.get(collectionName).Get(position); } }