Search in sources :

Example 1 with LukionOppiaineenSuoritusMatematiikka

use of fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusMatematiikka in project pyramus by otavanopisto.

the class KoskiInternetixLukioStudentHandler method getSubject.

private OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus> getSubject(OpiskelijanOPS creditOPS, Student student, List<Long> educationTypes, Subject subject, StudentSubjectSelections studentSubjects, Map<String, OppiaineenSuoritusWithCurriculum<LukionOppiaineenSuoritus>> map) {
    String subjectCode = subjectCode(subject);
    String mapKey = String.valueOf(creditOPS) + subjectCode;
    if (map.containsKey(mapKey)) {
        return map.get(mapKey);
    }
    boolean matchingEducationType = educationTypes != null && subject.getEducationType() != null && educationTypes.contains(subject.getEducationType().getId());
    // MATHEMATICS
    if (matchingEducationType && isMathSubject(subjectCode)) {
        if (StringUtils.equals(subjectCode, "MAY") && isMathSubject(studentSubjects.getMath())) {
            // MAY is mapped to either MAB/MAA unless neither is specified
            subjectCode = studentSubjects.getMath();
            mapKey = String.valueOf(creditOPS) + subjectCode;
            if (map.containsKey(mapKey)) {
                return map.get(mapKey);
            }
        }
        if (StringUtils.equals(subjectCode, studentSubjects.getMath())) {
            LukionOppiaineenTunniste tunniste = new LukionOppiaineenSuoritusMatematiikka(OppiaineMatematiikka.valueOf(subjectCode), isPakollinenOppiaine(student, KoskiOppiaineetYleissivistava.MA));
            return map(map, mapKey, creditOPS, tunniste, subject);
        } else
            return null;
    }
    if (matchingEducationType && StringUtils.equals(subjectCode, "ÄI")) {
        if (StringUtils.equals(subjectCode, studentSubjects.getPrimaryLanguage())) {
            LukionOppiaineenTunniste tunniste = new LukionOppiaineenSuoritusAidinkieli(OppiaineAidinkieliJaKirjallisuus.AI1, isPakollinenOppiaine(student, KoskiOppiaineetYleissivistava.AI));
            return map(map, mapKey, creditOPS, tunniste, subject);
        } else
            return null;
    }
    if (matchingEducationType && StringUtils.equals(subjectCode, "S2")) {
        if (StringUtils.equals(subjectCode, studentSubjects.getPrimaryLanguage())) {
            LukionOppiaineenTunniste tunniste = new LukionOppiaineenSuoritusAidinkieli(OppiaineAidinkieliJaKirjallisuus.AI7, isPakollinenOppiaine(student, KoskiOppiaineetYleissivistava.AI));
            return map(map, mapKey, creditOPS, tunniste, subject);
        } else
            return null;
    }
    if (matchingEducationType && studentSubjects.isAdditionalLanguage(subjectCode)) {
        if (subjectCode.length() > 2) {
            String langCode = settings.getSubjectToLanguageMapping(subjectCode.substring(0, 2).toUpperCase());
            Kielivalikoima kieli = Kielivalikoima.valueOf(langCode);
            if (kieli != null) {
                KoskiOppiaineetYleissivistava valinta = studentSubjects.isALanguage(subjectCode) ? KoskiOppiaineetYleissivistava.A1 : studentSubjects.isA1Language(subjectCode) ? KoskiOppiaineetYleissivistava.A1 : studentSubjects.isA2Language(subjectCode) ? KoskiOppiaineetYleissivistava.A2 : studentSubjects.isB1Language(subjectCode) ? KoskiOppiaineetYleissivistava.B1 : studentSubjects.isB2Language(subjectCode) ? KoskiOppiaineetYleissivistava.B2 : studentSubjects.isB3Language(subjectCode) ? KoskiOppiaineetYleissivistava.B3 : null;
                LukionOppiaineenTunniste tunniste = new LukionOppiaineenSuoritusVierasKieli(valinta, kieli, isPakollinenOppiaine(student, valinta));
                return map(map, mapKey, creditOPS, tunniste, subject);
            } else {
                logger.log(Level.SEVERE, String.format("Koski: Language code %s could not be converted to an enum.", langCode));
                koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.UNKNOWN_LANGUAGE, new Date(), langCode);
                return null;
            }
        }
    }
    String[] religionSubjects = new String[] { "UE", "UO" };
    if (matchingEducationType && ArrayUtils.contains(religionSubjects, subjectCode)) {
        // Only the religion that student has selected is reported
        if (StringUtils.equals(subjectCode, studentSubjects.getReligion())) {
            mapKey = String.valueOf(creditOPS) + "KT";
            if (map.containsKey(mapKey))
                return map.get(mapKey);
            KoskiOppiaineetYleissivistava kansallinenAine = KoskiOppiaineetYleissivistava.KT;
            LukionOppiaineenTunniste tunniste = new LukionOppiaineenSuoritusMuuValtakunnallinen(kansallinenAine, isPakollinenOppiaine(student, kansallinenAine));
            return map(map, mapKey, creditOPS, tunniste, subject);
        } else
            return null;
    }
    if (matchingEducationType && EnumUtils.isValidEnum(KoskiOppiaineetYleissivistava.class, StringUtils.upperCase(subjectCode))) {
        // Common national subject
        KoskiOppiaineetYleissivistava kansallinenAine = KoskiOppiaineetYleissivistava.valueOf(StringUtils.upperCase(subjectCode));
        LukionOppiaineenTunniste tunniste = new LukionOppiaineenSuoritusMuuValtakunnallinen(kansallinenAine, isPakollinenOppiaine(student, kansallinenAine));
        return map(map, mapKey, creditOPS, tunniste, subject);
    } else {
        // Other local subject
        PaikallinenKoodi paikallinenKoodi = new PaikallinenKoodi(subjectCode, kuvaus(subject.getName()));
        LukionOppiaineenSuoritusPaikallinen tunniste = new LukionOppiaineenSuoritusPaikallinen(paikallinenKoodi, false, kuvaus(subject.getName()));
        return map(map, mapKey, creditOPS, tunniste, subject);
    }
}
Also used : KoskiOppiaineetYleissivistava(fi.otavanopisto.pyramus.koski.koodisto.KoskiOppiaineetYleissivistava) Kielivalikoima(fi.otavanopisto.pyramus.koski.koodisto.Kielivalikoima) LukionOppiaineenSuoritusMatematiikka(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusMatematiikka) LukionOppiaineenSuoritusAidinkieli(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusAidinkieli) Date(java.util.Date) LukionOppiaineenSuoritusPaikallinen(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusPaikallinen) LukionOppiaineenSuoritusMuuValtakunnallinen(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusMuuValtakunnallinen) LukionOppiaineenTunniste(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenTunniste) PaikallinenKoodi(fi.otavanopisto.pyramus.koski.model.PaikallinenKoodi) LukionOppiaineenSuoritusVierasKieli(fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusVierasKieli)

Aggregations

Kielivalikoima (fi.otavanopisto.pyramus.koski.koodisto.Kielivalikoima)1 KoskiOppiaineetYleissivistava (fi.otavanopisto.pyramus.koski.koodisto.KoskiOppiaineetYleissivistava)1 PaikallinenKoodi (fi.otavanopisto.pyramus.koski.model.PaikallinenKoodi)1 LukionOppiaineenSuoritusAidinkieli (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusAidinkieli)1 LukionOppiaineenSuoritusMatematiikka (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusMatematiikka)1 LukionOppiaineenSuoritusMuuValtakunnallinen (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusMuuValtakunnallinen)1 LukionOppiaineenSuoritusPaikallinen (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusPaikallinen)1 LukionOppiaineenSuoritusVierasKieli (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenSuoritusVierasKieli)1 LukionOppiaineenTunniste (fi.otavanopisto.pyramus.koski.model.lukio.LukionOppiaineenTunniste)1 Date (java.util.Date)1