2 * Copyright (c) 2019-2020. Developed by Hedgecode.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.hedgecode.chess.scanner.entity;
22 * @author Dmitry Samoshin aka gotty
26 EVENT ( "Event", true, PGNTag.QUESTION ),
27 SITE ( "Site", true, PGNTag.QUESTION ),
28 DATE ( "Date", true, PGNTag.QUESTION_DATE ),
29 ROUND ( "Round", true, PGNTag.QUESTION ),
30 WHITE ( "White", true, PGNTag.QUESTION ),
31 BLACK ( "Black", true, PGNTag.QUESTION ),
32 WHITE_TITLE ( "WhiteTitle", false, PGNTag.HYPHEN ),
33 BLACK_TITLE ( "BlackTitle", false, PGNTag.HYPHEN ),
34 WHITE_ELO ( "WhiteElo", false, PGNTag.HYPHEN ),
35 BLACK_ELO ( "BlackElo", false, PGNTag.HYPHEN ),
36 WHITE_USCF ( "WhiteUSCF", false, PGNTag.HYPHEN ),
37 BLACK_USCF ( "BlackUSCF", false, PGNTag.HYPHEN ),
38 WHITE_NA ( "WhiteNA", false, PGNTag.HYPHEN ),
39 BLACK_NA ( "BlackNA", false, PGNTag.HYPHEN ),
40 WHITE_TYPE ( "WhiteType", false, PGNTag.HYPHEN ),
41 BLACK_TYPE ( "BlackType", false, PGNTag.HYPHEN ),
42 EVENT_DATE ( "EventDate", false, PGNTag.QUESTION_DATE ),
43 EVENT_SPONSOR ( "EventSponsor", false, PGNTag.EMPTY ),
44 SECTION ( "Section", false, PGNTag.EMPTY ),
45 STAGE ( "Stage", false, PGNTag.EMPTY ),
46 BOARD ( "Board", false, PGNTag.EMPTY ),
47 OPENING ( "Opening", false, PGNTag.EMPTY ),
48 VARIATION ( "Variation", false, PGNTag.EMPTY ),
49 SUBVARIATION ( "SubVariation", false, PGNTag.EMPTY ),
50 ECO ( "ECO", false, PGNTag.EMPTY ),
51 NIC ( "NIC", false, PGNTag.EMPTY ),
52 TIME ( "Time", false, PGNTag.QUESTION_TIME ),
53 UTC_DATE ( "UTCDate", false, PGNTag.QUESTION_DATE ),
54 UTC_TIME ( "UTCTime", false, PGNTag.QUESTION_TIME ),
55 TIME_CONTROL ( "TimeControl", false, PGNTag.QUESTION ),
56 SETUP ( "SetUp", false, PGNTag.ZERO ),
57 FEN ( "FEN", false, PGNTag.EMPTY ),
58 TERMINATION ( "Termination", false, PGNTag.EMPTY ),
59 ANNOTATOR ( "Annotator", false, PGNTag.EMPTY ),
60 MODE ( "Mode", false, PGNTag.EMPTY ),
61 PLY_COUNT ( "PlyCount", false, PGNTag.EMPTY ),
62 RESULT ( "Result", true, PGNTag.NON_RESULT );
64 public static final String EMPTY = "";
65 public static final String HYPHEN = "-";
66 public static final String ZERO = "0";
67 public static final String QUESTION = "?";
68 public static final String QUESTION_DATE = "????.??.??";
69 public static final String QUESTION_TIME = "??:??:??";
70 public static final String NON_RESULT = "*";
72 public static final String TAG_FORMAT = "[%s \"%s\"]";
74 private String tagName;
75 private boolean isRequired;
76 private String defaultValue;
78 PGNTag(String name, boolean required, String defValue) {
80 isRequired = required;
81 defaultValue = defValue;
84 public String getName() {
88 public boolean isRequired() {
92 public String defaultValue() {