Slide 20
Slide 20 text
Value object: делаем сам объект
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type")
@JsonSubTypes({
@JsonSubTypes.Type(value = LessonClassroomRequirement.class, name = LessonRequirementType.TYPE_CLASSROOM),
@JsonSubTypes.Type(value = LessonProvisionRequirement.class, name = LessonRequirementType.TYPE_LESSON_PROVISION),
@JsonSubTypes.Type(value = LessonTeacherRoleRequirement.class, name = LessonRequirementType.TYPE_TEACHER_ROLE),
@JsonSubTypes.Type(value = LessonSchedulingIntervalFromPrevLessonRequirement.class, name =
LessonRequirementType.TYPE_SCHEDULING_INTERVAL_FROM_PREV_LESSON),
@JsonSubTypes.Type(value = LessonTimeRequirement.class, name = LessonRequirementType.TYPE_TIME),
@JsonSubTypes.Type(value = LessonPreparationRequirement.class, name = LessonRequirementType.TYPE_PREP),
})
public abstract class LessonRequirement implements Serializable {
public void initFromLesson(Lesson lesson) {
// для установки данных из родительской УВ
}
public abstract LessonRequirement copy();
}