/*
Trieda umožňujúca ukladanie nameraných hodnôt nielen svietivosti,
v podobe štylizovaných textových súborov ... , v závislosti na
použitom konštruktore v priebehu programu ...
 */

package CommunicationAndSaving;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class saveFiles {

    private String name;
    private final String FILE_TYPE_LDT = ".ldt";
    private final String FILE_TYPE_CSV = ".csv";
    private FileWriter fileWriter;

    /*
    Konštruktor definujúci súbor, pe ukladanie parametrov
    vo formáte .ldt
     */
    public saveFiles(String name) throws IOException {
        this.name = name;
        File ldtFile = new File(name + FILE_TYPE_LDT);
        if (!ldtFile.exists()){
            ldtFile.createNewFile();
        }
        fileWriter = new FileWriter(ldtFile);
    }

    /*
    Konštruktor definujúci súbor, pe ukladanie parametrov
    vo formáte .csv
     */
    public saveFiles(String name, boolean flag) throws IOException {
        this.name = name;
        File csvFile = new File(name + FILE_TYPE_CSV);
        if (!csvFile.exists()){
            csvFile.createNewFile();
        }
        fileWriter = new FileWriter(csvFile);
    }

    /*
    Funkcia umožňujúca zachytenie textovej premennej ...
     */
    public void captureString(String value) throws IOException {
        fileWriter.append(value);
    }

    /*
    Funkcia umožňujúca nastaviť nový riadok v texte ...
     */
    public void enterNewLine() throws IOException {
        fileWriter.append("\n");
    }

    /*
    Funkcia umožňujúca zachytenie separátora, potrebné
    na rozdelenie hosnôt v súbore ...
     */
    public void appendCsvSeparator() throws IOException {
        fileWriter.append(";");
    }

    /*
    Funkcia umožňujúca nastaviť nový riadok v texte ...
     */
    public void appendLdtSeparator() throws IOException {
        //fileWriter.append("\r"+"\n");
        fileWriter.append("\n");
    }

    public void closeFile() throws IOException {
        fileWriter.flush();
        fileWriter.close();
    }
}