package com.constellio.app.modules.rm.ui.builders; import com.constellio.app.modules.rm.model.enums.DisposalType; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.modules.rm.ui.entities.FolderDetailVO; import com.constellio.app.modules.rm.wrappers.Folder; import com.constellio.app.modules.rm.wrappers.structures.DecomListFolderDetail; import com.constellio.app.modules.rm.wrappers.structures.FolderDetailWithType; public class FolderDetailToVOBuilder { private final RMSchemasRecordsServices rmRecordServices; public FolderDetailToVOBuilder(RMSchemasRecordsServices rmRecordServices) { this.rmRecordServices = rmRecordServices; } public FolderDetailVO build(FolderDetailWithType detailWithType) { DecomListFolderDetail detail = detailWithType.getDetail(); Folder folder = rmRecordServices.getFolder(detail.getFolderId()); FolderDetailVO folderDetailVO = new FolderDetailVO(); folderDetailVO.setFolderId(detail.getFolderId()); folderDetailVO.setFolderLegacyId(folder.getLegacyId()); folderDetailVO.setFolderIncluded(detail.isFolderIncluded()); folderDetailVO.setContainerRecordId(detail.getContainerRecordId()); folderDetailVO.setMediumType(detailWithType.getType()); folderDetailVO.setRetentionRuleId(folder.getRetentionRule()); folderDetailVO.setCategoryCode(folder.getCategoryCode()); folderDetailVO.setPackageable( !detailWithType.getDecommissioningType().isClosureOrDestroyal() && !detail.isPlacedInContainer()); folderDetailVO.setSortable(folder.getInactiveDisposalType() == DisposalType.SORT); folderDetailVO.setReversedSort(detail.isReversedSort()); folderDetailVO.setSelected(false); folderDetailVO.setLinearSize(detailWithType.getDetail().getFolderLinearSize()); return folderDetailVO; } }