[LIB-9] Separate chesshog-format module
[chesshog.git] / chesshog-format / src / main / java / org / hedgecode / chess / ascii / ASCIIBoardType.java
diff --git a/chesshog-format/src/main/java/org/hedgecode/chess/ascii/ASCIIBoardType.java b/chesshog-format/src/main/java/org/hedgecode/chess/ascii/ASCIIBoardType.java
new file mode 100644 (file)
index 0000000..08428b8
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2018. 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.ascii;
+
+/**
+ * ASCII chess diagram board types.
+ *
+ * @author Dmitry Samoshin aka gotty
+ */
+public enum ASCIIBoardType {
+
+    HYPHEN (
+            ASCII.HYPHEN_LINE, ASCII.HYPHEN_LINE, ASCII.HYPHEN_LINE,
+            ASCII.HYPHEN_SEP, ASCII.HYPHEN_SEP, ASCII.EMPTY, ASCII.EMPTY
+    ),
+
+    DOT    (
+            ASCII.DOT_LINE, null, ASCII.DOT_LINE,
+            null, ASCII.DOT_EDGE, ASCII.DOT_EMPTY, ASCII.EMPTY
+    ),
+
+    TIGHT  (
+            ASCII.TIGHT_LINE, null, null,
+            ASCII.TIGHT_SEP, ASCII.TIGHT_SEP, ASCII.TIGHT_EMPTY, ASCII.TIGHT_EMPTY
+    ),
+
+    CP866  (
+            ASCII.CP866_HEADER, ASCII.CP866_LINE, ASCII.CP866_FOOTER,
+            ASCII.CP866_SEP, ASCII.CP866_EDGE, ASCII.EMPTY, ASCII.EMPTY
+    );
+
+    private String header;
+    private String line;
+    private String footer;
+    private String separator;
+    private String edge;
+    private char empty;
+    private char space;
+
+    ASCIIBoardType(
+            String header, String line, String footer,
+            String separator, String edge,
+            char empty, char space
+    ) {
+        this.header = header;
+        this.line = line;
+        this.footer = footer;
+        this.separator = separator;
+        this.edge = edge;
+        this.empty = empty;
+        this.space = space;
+    }
+
+    public String getHeader() {
+        return header;
+    }
+
+    public String getLine() {
+        return line;
+    }
+
+    public String getFooter() {
+        return footer;
+    }
+
+    public String getSeparator() {
+        return separator;
+    }
+
+    public String getEdge() {
+        return edge;
+    }
+
+    public char getEmpty() {
+        return empty;
+    }
+
+    public char getSpace() {
+        return space;
+    }
+
+}