package logbook.config; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import logbook.constants.AppConstants; import logbook.dto.ShipInfoDto; import logbook.internal.Ship; import logbook.util.BeanUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * 艦娘のIDと名前の紐付けを保存・復元します * */ public class ShipConfig { /** ロガー */ private static final Logger LOG = LogManager.getLogger(ShipConfig.class); /** * 設定ファイルに書き込みます */ public static void store() throws IOException { Set<String> shipids = Ship.keySet(); Map<String, ShipInfoDto> map = new HashMap<String, ShipInfoDto>(); for (String key : shipids) { ShipInfoDto ship = Ship.get(key); map.put(key, ship); } BeanUtils.writeObject(AppConstants.SHIP_CONFIG_FILE, map); } /** * 艦娘のIDと名前の紐付けを設定ファイルから読み込みます * * @param properties * @return */ public static void load() { try { Map<String, ShipInfoDto> map = BeanUtils.readObject(AppConstants.SHIP_CONFIG_FILE, Map.class); if (map != null) { for (Entry<String, ShipInfoDto> entry : map.entrySet()) { Ship.set(entry.getKey(), entry.getValue()); } } } catch (Exception e) { LOG.warn("艦娘のIDと名前の紐付けを設定ファイルから読み込みますに失敗しました", e); } } }