/* * Copyright (c) 2018-2020. Developed by Hedgecode. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.hedgecode.chess.pgn.entity; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * DetailGame * * @author Dmitry Samoshin aka gotty */ public class DetailGame implements Game, Moves { private final DetailMove NULL_MOVE = new DetailMove(0, null); private DetailMove currentMove; private final List moves = new ArrayList<>(); private final Map tags = new HashMap<>(); public DetailGame() { currentMove = NULL_MOVE; } @Override public void addMove(DetailMove move) { moves.add(move); currentMove = move; } @Override public List getMoves() { return moves; } @Override public DetailMove nullMove() { return NULL_MOVE; } @Override public DetailMove currentMove() { return currentMove; } @Override public void addTag(String name, String value) { tags.put(name, value); } @Override public String getTag(String name) { return tags.get(name); } @Override public Map getTags() { return tags; } }