package de.duehl.vocabulary.japanese.logic.symbol.kanji.strokes.own.data;

/**
 * Diese Klasse stellt einen ehemals einmalig aus einer SVG-Datei aus dem Kanji-VG Projekt
 * ermittelten Pfad mit der Strichnummer, welcher dann in eine Datei in einem eigenen Format
 * geschrieben wurde, dar.
 *
 *
 * Zu Kanji-VG siehe:
 *
 * https://github.com/KanjiVG/kanjivg
 *
 * KanjiVG is copyright Ulrich Apel and released under the Creative Commons Attribution-Share
 * Alike 3.0 licence: http://creativecommons.org/licenses/by-sa/3.0/
 *
 * The project's documentation is at https://kanjivg.tagaini.net/.
 *
 * @version 1.01     2026-08-18
 * @author Christian Dühl
 */

public class KanjiStrokePath {

    /**
     * Der Codepoint, wie er aus den in den SVG-Dateien verwendeten fünfstellige Zeichenketten wie
     * z.B. "06f22" erzeugt wird.
     */
    private final int codePoint;

    /**
     * Die Strichnummer, z.B. "1".
     *
     * Bei einem Kanji mit 13 Strichen gehen diese von "1" bis "13".
     */
    private final int strokeNumber;

    /** Der eigentliche Pfad als String (z.B. "M20,19.5c3.62,1.47,8.62,5.38,10.25,8.34"). */
    private final String path;

    /**
     * Konstruktor.
     *
     * @param codePoint
     *            Der fünfstellige Codepoint, wie er in den SVG-Dateien verwendet wird, z.B.
     *            "06f22".
     * @param strokeNumberDie
     *            Die Strichnummer, z.B. "1". Bei einem Kanji mit 13 Strichen gehen diese von "1"
     *            bis "13".
     * @param path
     *            Der eigentliche Pfad als String (z.B. "M20,19.5c3.62,1.47,8.62,5.38,10.25,8.34").
     */
    public KanjiStrokePath(int codePoint, int strokeNumber, String path) {
        this.codePoint = codePoint;
        this.strokeNumber = strokeNumber;
        this.path = path;
    }

    /**
     * Getter für den Codepoint, wie er aus den in den SVG-Dateien verwendeten fünfstellige
     * Zeichenketten wie z.B. "06f22" erzeugt wird.
     */
    public int getCodePoint() {
        return codePoint;
    }

    /**
     *  Getter für die Strichnummer, z.B. "1".
     *
     * Bei einem Kanji mit 13 Strichen gehen diese von "1" bis "13".
     */
    public int getStrokeNumber() {
        return strokeNumber;
    }

    /**
     * Getter für den eigentlichen Pfad als String (z.B.
     * "M20,19.5c3.62,1.47,8.62,5.38,10.25,8.34").
     */
    public String getPath() {
        return path;
    }

    @Override
    public String toString() {
        return "KanjiStrokePath [codePoint=" + codePoint + ", strokeNumber=" + strokeNumber
                + ", path=" + path + "]";
    }

}
