package pt.utl.ist.scripts.dataTransferObject;

import net.sourceforge.fenixedu.domain.person.IDDocumentType;
import pt.utl.ist.scripts.utils.translators.String2IDDocumentType;

/**
 * 
 * @author - Shezad Anavarali (shezad@ist.utl.pt)
 * 
 */
public class TeacherDTO implements IFileLine {

    private String identificationNumber;

    private IDDocumentType documentType;

    private Integer teacherNumber;

    private String lastAcademicLevelCode;

    private String category;

    @Override
    public boolean fillWithFileLineData(String dataLine) {

        if (dataLine.startsWith("NºDOCUMENTO")) {
            return false;
        }

        String[] teacherAttribute = dataLine.split("\t");

        IDDocumentType documentType = String2IDDocumentType.convert(teacherAttribute[1].trim());
        setDocumentType(documentType);

        if (documentType.equals(IDDocumentType.IDENTITY_CARD)) {
            try {
                setIdentificationNumber(Integer.valueOf(teacherAttribute[0].trim()).toString());
            } catch (NumberFormatException e) {
                return false;
            }

        } else {
            setIdentificationNumber(teacherAttribute[0].trim());
        }

        String teacherNumber = teacherAttribute[2].trim();
        setTeacherNumber(Integer.valueOf(teacherNumber.replaceFirst("0+", "")));
        setLastAcademicLevelCode(teacherAttribute[3].trim());
        setCategory(teacherAttribute[4].trim());

        return true;

    }

    @Override
    public String getUniqueKey() {
        return getTeacherNumber().toString();
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public IDDocumentType getDocumentType() {
        return documentType;
    }

    public void setDocumentType(IDDocumentType documentType) {
        this.documentType = documentType;
    }

    public String getIdentificationNumber() {
        return identificationNumber;
    }

    public void setIdentificationNumber(String identificationNumber) {
        this.identificationNumber = identificationNumber;
    }

    public String getLastAcademicLevelCode() {
        return lastAcademicLevelCode;
    }

    public void setLastAcademicLevelCode(String lastAcademicLevelCode) {
        this.lastAcademicLevelCode = lastAcademicLevelCode;
    }

    public Integer getTeacherNumber() {
        return teacherNumber;
    }

    public void setTeacherNumber(Integer teacherNumber) {
        this.teacherNumber = teacherNumber;
    }
}
