package com.constellio.app.modules.tasks.ui.builders; import java.util.List; import com.constellio.app.modules.tasks.model.wrappers.structures.TaskFollower; import com.constellio.app.modules.tasks.model.wrappers.structures.TaskReminder; import com.constellio.app.modules.tasks.ui.entities.TaskFollowerVO; import com.constellio.app.modules.tasks.ui.entities.TaskReminderVO; import com.constellio.app.modules.tasks.ui.entities.TaskVO; import com.constellio.app.ui.entities.MetadataValueVO; import com.constellio.app.ui.entities.RecordVO.VIEW_MODE; import com.constellio.app.ui.framework.builders.RecordToVOBuilder; import com.constellio.app.ui.pages.base.SessionContext; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.schemas.Metadata; public class TaskToVOBuilder extends RecordToVOBuilder { @Override protected Object getValue(Record record, Metadata metadata) { Object value = super.getValue(record, metadata); if (value != null) { if (value instanceof TaskReminder) { return toTaskReminderVO((TaskReminder) value); } else if (value instanceof TaskFollower) { return toTaskFollowerVO((TaskFollower) value); } } return value; } private TaskFollowerVO toTaskFollowerVO(TaskFollower taskFollower) { return new TaskFollowerVO(taskFollower.getFollowerId(), taskFollower.getFollowTaskAssigneeModified(), taskFollower.getFollowSubTasksModified(), taskFollower.getFollowTaskStatusModified(), taskFollower.getFollowTaskCompleted(), taskFollower.getFollowTaskDeleted()); } private TaskReminderVO toTaskReminderVO(TaskReminder taskReminder) { return new TaskReminderVO(taskReminder.getFixedDate(), taskReminder.getNumberOfDaysToRelativeDate(), taskReminder.getRelativeDateMetadataCode(), taskReminder.isBeforeRelativeDate()); } @Override public TaskVO build(Record record, VIEW_MODE viewMode, SessionContext sessionContext) { return (TaskVO) super.build(record, viewMode, sessionContext); } @Override protected TaskVO newRecordVO(String id, List<MetadataValueVO> metadataValueVOs, VIEW_MODE viewMode) { return new TaskVO(id, metadataValueVOs, viewMode); } }