case ENROLMENT_AFTER_EQUIVALENCE:
case SEPARATION_CYCLES_AUTHORIZATION:
return new PenaltyExemptionJustification(penaltyExemption, justificationType, reason);
case DIRECTIVE_COUNCIL_AUTHORIZATION:
case NUCLEUS_COORDINATOR_AUTHORIZATION:
return new PenaltyExemptionJustificationByDispatch(penaltyExemption, justificationType, reason, dispatchDate);
default:
throw new RuntimeException("Unknown justification type");
}