package net.sourceforge.fenixedu.util.candiday.degree;

import java.util.ArrayList;
import java.util.List;

import net.sourceforge.fenixedu.domain.candidacy.degree.DgesFile;
import net.sourceforge.fenixedu.domain.candidacy.degree.DgesFileEntry;
import net.sourceforge.fenixedu.domain.person.IDDocumentType;

/**
 * 
 * @author Paulo Zenida
 * 
 */
public class DgesFileUtils {

    /**
         * This method parses and build dges files.
         * 
         * @param filename
         * @param fileEntries
         */
    public static DgesFile buildDgesFile(final String filename, List<String> fileEntries) {

	final DgesFile dgesFile = new DgesFile(filename);
	final List<DgesFileEntry> dgesFileEntries = new ArrayList<DgesFileEntry>();

	for (final String line : fileEntries) {
	    // TODO This may need changes, according to what exactly comes from
	    // DGES.
	    // It has been assumed the following:
	    // BI;Nome Original;Código Curso;Ano;Nº Aluno;Nome Alterado;
	    final String[] attributes = line.split(";", -1);
	    final String documentIdNumber = attributes[0];
	    final String initialName = attributes[1];
	    final String degreeCode = attributes[2];
	    final int year = Integer.valueOf(attributes[3]);
	    final int studentNumber = Integer.valueOf(attributes[4]);
	    final String changedName = attributes[5];

	    dgesFileEntries.add(new DgesFileEntry(documentIdNumber, IDDocumentType.IDENTITY_CARD,
		    initialName, degreeCode, year, studentNumber, changedName, dgesFile));
	}
	dgesFile.getDgesFileEntries().addAll(dgesFileEntries);

	return dgesFile;
    }

}