X-Git-Url: https://git.hedgecode.org/?p=chesshog-scanner.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fformat%2FFormat.java;fp=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fchess%2Fscanner%2Fformat%2FFormat.java;h=5cd8d6c9b09fdd19438508e8bed04c89b23bd87a;hp=0000000000000000000000000000000000000000;hb=1f6c5edfbc2e19004baec8d22edd126de30d7000;hpb=5a857bd96f261a14cc6600b968e892d0412fc531 diff --git a/src/main/java/org/hedgecode/chess/scanner/format/Format.java b/src/main/java/org/hedgecode/chess/scanner/format/Format.java new file mode 100644 index 0000000..5cd8d6c --- /dev/null +++ b/src/main/java/org/hedgecode/chess/scanner/format/Format.java @@ -0,0 +1,61 @@ +/* + * 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.format; + +import org.hedgecode.chess.scanner.spi.ServiceRegistry; + +/** + * Format + * + * @author Dmitry Samoshin aka gotty + */ +public final class Format { + + private static Format _instance; + + private final FormatBuilder formatBuilder; + + private Format() { + formatBuilder = ServiceRegistry.singleProvider( + FormatBuilder.class + ); + } + + public static GameFormat formatGame(String game) { + return getFormat().builder().buildGame(game); + } + + public static TournamentFormat formatTournament(String tournament) { + return getFormat().builder().buildTournament(tournament); + } + + public static ArenaFormat formatArena(String arena) { + return getFormat().builder().buildArena(arena); + } + + private FormatBuilder builder() { + return formatBuilder; + } + + private static Format getFormat() { + if (_instance == null) { + _instance = new Format(); + } + return _instance; + } + +}