package weblog.business.libs;

import weblog.business.apis.EntriesReader;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Vector;

public class FlatFileEntriesReader implements EntriesReader {
    private String file;
    private boolean rightOrder = true;

    public FlatFileEntriesReader(String file) {
        this.file = file;
    }

    public FlatFileEntriesReader(String file, boolean rightOrder) {
        this.file = file;
        this.rightOrder = rightOrder;
    }

    public Enumeration getEntries() {
        Vector result = new Vector();
        try {
            BufferedReader bred = new BufferedReader(new FileReader(file));
            String current = bred.readLine();
            while (current != null) {
                result.add(current);
                current = bred.readLine();
            }
        } catch (IOException ignored) {
        }

        if (!rightOrder) {
            Vector r2 = new Vector();
            r2.addAll(result);
            Enumeration e = result.elements();
            for (int i = result.size() - 1 ; e.hasMoreElements(); i--) {
                r2.setElementAt((String)e.nextElement(), i);
            }
            result = r2;
        }

        return result.elements();
    }

    public void addEntry(String s) {
        try {
            PrintWriter bics = new PrintWriter(new FileWriter(file, true), true);
            bics.println(s);
        } catch (IOException ignored) {
        }
    }
}