package com.example.paktalin.agilejava;

/**
 * Created by Paktalin on 17/05/2018.
 */

 class RosterReporter {

    static final String NEW_LINE = System.getProperty("line.separator");
    static String ROSTER_REPORT_HEADER = "Student" + NEW_LINE + "_____" + NEW_LINE;
    static String ROSTER_REPORT_FOOTER = NEW_LINE + "# students = ";

    private CourseSession session;
    private StringBuilder buffer;

    RosterReporter(CourseSession session) {
        this.session = session;
    }

    String getReport() {
        buffer = new StringBuilder();

        writeHeader();
        writeBody();
        writeFooter();

        return buffer.toString();
    }

    private void writeHeader() {
        buffer.append(ROSTER_REPORT_HEADER);
    }

    private void writeBody() {
        for (Student student : session.getAllStudents()) {
            buffer.append(student.getName());
            buffer.append(NEW_LINE);
        }
    }

    private void writeFooter() {
        buffer.append(ROSTER_REPORT_FOOTER + session.getAllStudents().size() + NEW_LINE);
    }
}