X-Git-Url: https://git.hedgecode.org/?p=chesshog-scanner.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fjson%2Fformat%2FAbstractPGNFormat.java;fp=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fjson%2Fformat%2FAbstractPGNFormat.java;h=0000000000000000000000000000000000000000;hp=d0a3b844885b4460439e4f92582c224263d5c7ff;hb=d1936e2e61d422117f733e9fffec0976356121ea;hpb=c6cec94b865c1dc50ef1699aa4e73e1fc519198b diff --git a/src/main/java/org/hedgecode/chess/scanner/json/format/AbstractPGNFormat.java b/src/main/java/org/hedgecode/chess/scanner/json/format/AbstractPGNFormat.java deleted file mode 100644 index d0a3b84..0000000 --- a/src/main/java/org/hedgecode/chess/scanner/json/format/AbstractPGNFormat.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2019-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.scanner.json.format; - -import java.util.HashMap; -import java.util.Map; - -import org.hedgecode.chess.scanner.entity.PGNEntity; -import org.hedgecode.chess.scanner.entity.PGNTag; - -import static org.hedgecode.chess.scanner.ChessHogScannerConstants.*; - -/** - * AbstractPGNFormat - * - * @author Dmitry Samoshin aka gotty - */ -public abstract class AbstractPGNFormat extends AbstractBaseFormat implements PGNEntity { - - private static final String EMPTY = ""; - - private static final String MOVES_FORMAT = "%s %s"; - - private final Map pgnTags = new HashMap<>(); - private String pgnMoves; - - protected abstract void assignPGN(); - - protected void addTag(PGNTag tag, String value) { - pgnTags.put(tag, value); - } - - protected void addMoves(String moves) { - pgnMoves = moves; - } - - private String moves() { - return pgnMoves != null ? pgnMoves : EMPTY; - } - - private String result() { - String result = pgnTags.get(PGNTag.RESULT); - return result != null ? result : PGNTag.RESULT.defaultValue(); - } - - @Override - public String pgn() { - assignPGN(); - StringBuilder sb = new StringBuilder(); - for (PGNTag tag : PGNTag.values()) { - String tagValue = pgnTags.get(tag); - if (tag.isRequired() || tagValue != null) { - sb.append( - String.format( - PGNTag.TAG_FORMAT, - tag.getName(), - tagValue != null ? tagValue : tag.defaultValue() - ) - ).append(CRLF); - } - } - sb.append(CRLF).append( - String.format(MOVES_FORMAT, moves(), result()) - ).append(CRLF); - return sb.toString(); - } - -}