package com.constellio.app.modules.rm; import com.constellio.app.modules.rm.constants.RMRoles; import com.constellio.app.modules.rm.model.CopyRetentionRule; import com.constellio.app.modules.rm.model.CopyRetentionRuleBuilder; import com.constellio.app.modules.rm.model.RetentionPeriod; import com.constellio.app.modules.rm.model.enums.*; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.modules.rm.services.events.RMEventsSearchServices; import com.constellio.app.modules.rm.services.logging.DecommissioningLoggingService; import com.constellio.app.modules.rm.wrappers.*; import com.constellio.app.modules.rm.wrappers.structures.DecomListFolderDetail; import com.constellio.app.modules.rm.wrappers.structures.DecomListValidation; import com.constellio.app.modules.rm.wrappers.structures.RetentionRuleDocumentType; import com.constellio.app.modules.rm.wrappers.type.DocumentType; import com.constellio.app.modules.rm.wrappers.type.FolderType; import com.constellio.app.modules.rm.wrappers.type.VariableRetentionPeriod; import com.constellio.app.modules.tasks.model.wrappers.types.TaskType; import com.constellio.app.modules.tasks.services.TasksSchemasRecordsServices; import com.constellio.app.services.factories.AppLayerFactory; import com.constellio.model.entities.batchprocess.BatchProcess; import com.constellio.model.entities.records.Content; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.records.Transaction; import com.constellio.model.entities.records.wrappers.EventType; import com.constellio.model.entities.records.wrappers.Group; import com.constellio.model.entities.records.wrappers.RecordWrapper; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.entities.schemas.MetadataValueType; import com.constellio.model.entities.security.Authorization; import com.constellio.model.entities.security.Role; import com.constellio.model.entities.security.XMLAuthorizationDetails; import com.constellio.model.entities.security.global.AuthorizationDetails; import com.constellio.model.services.batch.manager.BatchProcessesManager; import com.constellio.model.services.configs.SystemConfigurationsManager; import com.constellio.model.services.contents.ContentManager; import com.constellio.model.services.contents.ContentVersionDataSummary; import com.constellio.model.services.factories.ModelLayerFactory; import com.constellio.model.services.logging.LoggingServices; import com.constellio.model.services.records.RecordServices; import com.constellio.model.services.records.RecordServicesException; import com.constellio.model.services.schemas.MetadataSchemaTypesAlteration; import com.constellio.model.services.schemas.builders.MetadataSchemaBuilder; import com.constellio.model.services.schemas.builders.MetadataSchemaTypesBuilder; import com.constellio.model.services.search.SearchServices; import com.constellio.model.services.search.query.ReturnedMetadatasFilter; import com.constellio.model.services.search.query.logical.LogicalSearchQuery; import com.constellio.model.services.users.UserServices; import com.constellio.sdk.tests.setups.Users; import org.joda.time.LocalDate; import org.joda.time.LocalDateTime; import java.io.InputStream; import java.util.*; import static com.constellio.app.modules.rm.constants.RMRoles.*; import static com.constellio.app.modules.rm.model.enums.CopyType.PRINCIPAL; import static com.constellio.app.modules.rm.model.enums.CopyType.SECONDARY; import static com.constellio.app.modules.rm.model.enums.DecommissioningListType.*; import static com.constellio.app.modules.rm.model.enums.DecommissioningType.*; import static com.constellio.model.entities.schemas.MetadataValueType.STRING; import static com.constellio.model.entities.security.global.AuthorizationAddRequest.authorizationInCollection; import static com.constellio.model.services.search.query.logical.LogicalSearchQueryOperators.from; import static java.util.Arrays.asList; public class RMTestRecords { CopyRetentionRuleBuilder copyBuilder = CopyRetentionRuleBuilder.UUID(); public final String categoryId_Z = "categoryId_Z"; public final String categoryId_Z100 = "categoryId_Z100"; public final String categoryId_Z110 = "categoryId_Z110"; public final String categoryId_Z111 = "categoryId_Z111"; public final String categoryId_Z112 = "categoryId_Z112"; public final String categoryId_Z120 = "categoryId_Z120"; public final String categoryId_Z200 = "categoryId_Z200"; public final String categoryId_ZE42 = "categoryId_ZE42"; public final String categoryId_Z999 = "categoryId_Z999"; public final String categoryId_X = "categoryId_X"; public final String categoryId_X100 = "categoryId_X100"; public final String categoryId_X110 = "categoryId_X110"; public final String categoryId_X120 = "categoryId_X120"; public final String categoryId_X13 = "categoryId_X13"; public final String unitId_10 = "unitId_10"; public final String unitId_10a = "unitId_10a"; public final String unitId_11 = "unitId_11"; public final String unitId_11b = "unitId_11b"; public final String unitId_12 = "unitId_12"; public final String unitId_12b = "unitId_12b"; public final String unitId_12c = "unitId_12c"; public final String unitId_20 = "unitId_20"; public final String unitId_20d = "unitId_20d"; public final String unitId_20e = "unitId_20e"; public final String unitId_30 = "unitId_30"; public final String unitId_30c = "unitId_30c"; public final String subdivId_1 = "subdivId_1"; public final String subdivId_2 = "subdivId_2"; public final String subdivId_3 = "subdivId_3"; public final String documentTypeId_1 = "documentTypeId_1"; public final String documentTypeId_2 = "documentTypeId_2"; public final String documentTypeId_3 = "documentTypeId_3"; public final String documentTypeId_4 = "documentTypeId_4"; public final String documentTypeId_5 = "documentTypeId_5"; public final String documentTypeId_6 = "documentTypeId_6"; public final String documentTypeId_7 = "documentTypeId_7"; public final String documentTypeId_8 = "documentTypeId_8"; public final String documentTypeId_9 = "documentTypeId_9"; public final String documentTypeId_10 = "documentTypeId_10"; public final String ruleId_1 = "ruleId_1"; public final String ruleId_2 = "ruleId_2"; public final String ruleId_3 = "ruleId_3"; public final String ruleId_4 = "ruleId_4"; public final String ruleId_5 = "ruleId_5"; public final String ruleId_6 = "ruleId_6"; public String principal42_5_CId; public final String storageSpaceId_S01 = "S01"; public final String storageSpaceId_S01_01 = "S01-01"; public final String storageSpaceId_S01_02 = "S01-02"; public final String storageSpaceId_S02 = "S02"; public final String storageSpaceId_S02_01 = "S02-01"; public final String storageSpaceId_S02_02 = "S02-02"; public final String containerTypeId_boite22x22 = "boite22x22"; public final String containerId_bac19 = "bac19"; public final String containerId_bac18 = "bac18"; public final String containerId_bac17 = "bac17"; public final String containerId_bac16 = "bac16"; public final String containerId_bac15 = "bac15"; public final String containerId_bac14 = "bac14"; public final String containerId_bac13 = "bac13"; public final String containerId_bac12 = "bac12"; public final String containerId_bac11 = "bac11"; public final String containerId_bac10 = "bac10"; public final String containerId_bac09 = "bac09"; public final String containerId_bac08 = "bac08"; public final String containerId_bac07 = "bac07"; public final String containerId_bac06 = "bac06"; public final String containerId_bac05 = "bac05"; public final String containerId_bac04 = "bac04"; public final String containerId_bac03 = "bac03"; public final String containerId_bac02 = "bac02"; public final String containerId_bac01 = "bac01"; public String PA; public String MV; public String MD; public List<String> PA_MD; public final String folder_A01 = "A01"; public final String folder_A02 = "A02"; public final String folder_A03 = "A03"; public final String folder_A04 = "A04"; public final String folder_A05 = "A05"; public final String folder_A06 = "A06"; public final String folder_A07 = "A07"; public final String folder_A08 = "A08"; public final String folder_A09 = "A09"; public final String folder_A10 = "A10"; public final String folder_A11 = "A11"; public final String folder_A12 = "A12"; public final String folder_A13 = "A13"; public final String folder_A14 = "A14"; public final String folder_A15 = "A15"; public final String folder_A16 = "A16"; public final String folder_A17 = "A17"; public final String folder_A18 = "A18"; public final String folder_A19 = "A19"; public final String folder_A20 = "A20"; public final String folder_A21 = "A21"; public final String folder_A22 = "A22"; public final String folder_A23 = "A23"; public final String folder_A24 = "A24"; public final String folder_A25 = "A25"; public final String folder_A26 = "A26"; public final String folder_A27 = "A27"; public final String folder_A42 = "A42"; public final String folder_A43 = "A43"; public final String folder_A44 = "A44"; public final String folder_A45 = "A45"; public final String folder_A46 = "A46"; public final String folder_A47 = "A47"; public final String folder_A48 = "A48"; public final String folder_A49 = "A49"; public final String folder_A50 = "A50"; public final String folder_A51 = "A51"; public final String folder_A52 = "A52"; public final String folder_A53 = "A53"; public final String folder_A54 = "A54"; public final String folder_A55 = "A55"; public final String folder_A56 = "A56"; public final String folder_A57 = "A57"; public final String folder_A58 = "A58"; public final String folder_A59 = "A59"; public final String folder_A79 = "A79"; public final String folder_A80 = "A80"; public final String folder_A81 = "A81"; public final String folder_A82 = "A82"; public final String folder_A83 = "A83"; public final String folder_A84 = "A84"; public final String folder_A85 = "A85"; public final String folder_A86 = "A86"; public final String folder_A87 = "A87"; public final String folder_A88 = "A88"; public final String folder_A89 = "A89"; public final String folder_A90 = "A90"; public final String folder_A91 = "A91"; public final String folder_A92 = "A92"; public final String folder_A93 = "A93"; public final String folder_A94 = "A94"; public final String folder_A95 = "A95"; public final String folder_A96 = "A96"; public final String folder_B01 = "B01"; public final String folder_B02 = "B02"; public final String folder_B03 = "B03"; public final String folder_B04 = "B04"; public final String folder_B05 = "B05"; public final String folder_B06 = "B06"; public final String folder_B07 = "B07"; public final String folder_B08 = "B08"; public final String folder_B09 = "B09"; public final String folder_B30 = "B30"; public final String folder_B31 = "B31"; public final String folder_B32 = "B32"; public final String folder_B33 = "B33"; public final String folder_B34 = "B34"; public final String folder_B35 = "B35"; public final String folder_B50 = "B50"; public final String folder_B51 = "B51"; public final String folder_B52 = "B52"; public final String folder_B53 = "B53"; public final String folder_B54 = "B54"; public final String folder_B55 = "B55"; public final String folder_C01 = "C01"; public final String folder_C02 = "C02"; public final String folder_C03 = "C03"; public final String folder_C04 = "C04"; public final String folder_C05 = "C05"; public final String folder_C06 = "C06"; public final String folder_C07 = "C07"; public final String folder_C08 = "C08"; public final String folder_C09 = "C09"; public final String folder_C30 = "C30"; public final String folder_C31 = "C31"; public final String folder_C32 = "C32"; public final String folder_C33 = "C33"; public final String folder_C34 = "C34"; public final String folder_C35 = "C35"; public final String folder_C50 = "C50"; public final String folder_C51 = "C51"; public final String folder_C52 = "C52"; public final String folder_C53 = "C53"; public final String folder_C54 = "C54"; public final String folder_C55 = "C55"; public final String document_A19 = "docA19"; public final String document_A49 = "docA49"; public final String document_B30 = "docB30"; public final String document_B33 = "docB33"; public final String document_A79 = "docA79"; public final String folder_A01_documentWithSameCopy = "doc_A01_same_copy"; public final String folder_A01_documentWithDifferentCopy = "A02"; public final String folder_A02_documentWithSameCopy = "A03"; public final String folder_A02_documentWithDifferentCopy = "A04"; public final String folder_A03_documentWithDifferentCopy = "A05"; public final String folder_A03_documentWithSameCopy = "A06"; // public final String folder_A04_documentWithSameCopy = "A07"; // public final String folder_A04_documentWithSameCopy = "A08"; // public final String folder_A05_documentWithSameCopy = "A09"; // public final String folder_A05_documentWithSameCopy = "A10"; public final String list_01 = "list01"; public final String list_02 = "list02"; public final String list_03 = "list03"; public final String list_04 = "list04"; public final String list_05 = "list05"; public final String list_06 = "list06"; public final String list_07 = "list07"; public final String list_08 = "list08"; public final String list_09 = "list09"; public final String list_10 = "list10"; public final String list_11 = "list11"; public final String list_12 = "list12"; public final String list_13 = "list13"; public final String list_14 = "list14"; public final String list_15 = "list15"; public final String list_16 = "list16"; public final String list_17 = "list17"; public final String list_18 = "list18"; public final String list_19 = "list19"; public final String list_20 = "list20"; public final String list_21 = "list21"; public final String list_22 = "list22"; public final String list_23 = "list23"; public final String list_24 = "list24"; public final String list_25 = "list25"; public final String list_26 = "list26"; public final String list_30 = "list30"; public final String list_31 = "list31"; public final String list_32 = "list32"; public final String list_33 = "list33"; public final String list_34 = "list34"; public final String list_35 = "list35"; public final String list_36 = "list36"; private String collection; private TasksSchemasRecordsServices tasks; private RMSchemasRecordsServices rm; private String alice_userWithNoWriteAccess; private String admin_userIdWithAllAccess; private String bob_userInAC; private String charles_userInA; private String dakota_managerInA_userInB; private String edouard_managerInB_userInC; private String gandalf_managerInABC; private String chuckNorris; private String robin; private String sasquatch; private Users users = new Users(); private RecordServices recordServices; private LoggingServices loggingServices; private DecommissioningLoggingService decommissioningLoggingService; private SystemConfigurationsManager systemConfigurationsManager; private SearchServices searchServices; private RMEventsSearchServices rmEventsSearchServices; private ContentManager contentManager; private ModelLayerFactory modelLayerFactory; private AppLayerFactory appLayerFactory; public RMTestRecords(String collection) { this.collection = collection; } public RMTestRecords alreadySettedUp(AppLayerFactory appLayerFactory) { this.appLayerFactory = appLayerFactory; this.modelLayerFactory = appLayerFactory.getModelLayerFactory(); UserServices userServices = modelLayerFactory.newUserServices(); users.setUp(userServices); rm = new RMSchemasRecordsServices(collection, appLayerFactory); tasks = new TasksSchemasRecordsServices(collection, appLayerFactory); SearchServices searchServices = modelLayerFactory.newSearchServices(); List<Record> userRecords = searchServices.search(new LogicalSearchQuery() .setCondition(from(rm.userSchemaType()).returnAll()) .setReturnedMetadatas(ReturnedMetadatasFilter.onlyMetadatas(rm.userUsername()))); for (User user : rm.wrapUsers(userRecords)) { if (user.getUsername().equals("admin")) { admin_userIdWithAllAccess = user.getId(); } else if (user.getUsername().equals("chuck")) { chuckNorris = user.getId(); } else if (user.getUsername().equals("alice")) { alice_userWithNoWriteAccess = user.getId(); } else if (user.getUsername().equals("bob")) { bob_userInAC = user.getId(); } else if (user.getUsername().equals("charles")) { charles_userInA = user.getId(); } else if (user.getUsername().equals("dakota")) { dakota_managerInA_userInB = user.getId(); } else if (user.getUsername().equals("edouard")) { edouard_managerInB_userInC = user.getId(); } else if (user.getUsername().equals("gandalf")) { gandalf_managerInABC = user.getId(); } else if (user.getUsername().equals("robin")) { robin = user.getId(); } else if (user.getUsername().equals("sasquatch")) { sasquatch = user.getId(); } } recordServices = modelLayerFactory.newRecordServices(); loggingServices = modelLayerFactory.newLoggingServices(); decommissioningLoggingService = new DecommissioningLoggingService(modelLayerFactory); searchServices = modelLayerFactory.newSearchServices(); rmEventsSearchServices = new RMEventsSearchServices(modelLayerFactory, collection); contentManager = modelLayerFactory.getContentManager(); systemConfigurationsManager = modelLayerFactory.getSystemConfigurationsManager(); PA = rm.PA(); MD = rm.DM(); MV = rm.FI(); PA_MD = asList(PA, MD); return this; } public RMTestRecords setup(AppLayerFactory appLayerFactory) throws RecordServicesException { this.appLayerFactory = appLayerFactory; this.modelLayerFactory = appLayerFactory.getModelLayerFactory(); UserServices userServices = modelLayerFactory.newUserServices(); users.setUp(userServices).withPasswords(modelLayerFactory.newAuthenticationService()); rm = new RMSchemasRecordsServices(collection, appLayerFactory); tasks = new TasksSchemasRecordsServices(collection, appLayerFactory); recordServices = modelLayerFactory.newRecordServices(); loggingServices = modelLayerFactory.newLoggingServices(); decommissioningLoggingService = new DecommissioningLoggingService(modelLayerFactory); searchServices = modelLayerFactory.newSearchServices(); rmEventsSearchServices = new RMEventsSearchServices(modelLayerFactory, collection); contentManager = modelLayerFactory.getContentManager(); systemConfigurationsManager = modelLayerFactory.getSystemConfigurationsManager(); PA = rm.PA(); MD = rm.DM(); MV = rm.FI(); PA_MD = asList(PA, MD); systemConfigurationsManager.setValue(RMConfigs.ENFORCE_CATEGORY_AND_RULE_RELATIONSHIP_IN_FOLDER, false); Transaction transaction = new Transaction(); setupUsers(transaction, userServices); setupCategories(transaction); setupUniformSubdivisions(transaction); setupAdministrativeUnits(transaction); setupDocumentTypes(transaction); setupRetentionRules(transaction); setupTypes(transaction); recordServices.execute(transaction); setupAdministrativeUnitsAuthorizations(); waitForBatchProcesses(modelLayerFactory.getBatchProcessesManager()); return this; } private void setupAdministrativeUnitsAuthorizations() { List<String> userInUnit10 = asList(bob_userInAC, charles_userInA, admin_userIdWithAllAccess); List<String> managerInUnit10 = asList(dakota_managerInA_userInB, gandalf_managerInABC); List<String> userInUnit11 = asList(dakota_managerInA_userInB, admin_userIdWithAllAccess); List<String> managerInUnit11 = asList(edouard_managerInB_userInC, gandalf_managerInABC); List<String> userInUnit12 = asList(dakota_managerInA_userInB, admin_userIdWithAllAccess, edouard_managerInB_userInC, bob_userInAC, admin_userIdWithAllAccess); List<String> managerInUnit12 = asList(edouard_managerInB_userInC, gandalf_managerInABC); List<String> userInUnit20 = new ArrayList<>(); List<String> managerInUnit20 = new ArrayList<>(); List<String> userInUnit30 = asList(edouard_managerInB_userInC, bob_userInAC, admin_userIdWithAllAccess); List<String> managerInUnit30 = asList(gandalf_managerInABC); addUserAuthorization(unitId_10, userInUnit10); addManagerAuthorization(unitId_10, managerInUnit10); addUserAuthorization(unitId_11, userInUnit11); addManagerAuthorization(unitId_11, managerInUnit11); addUserAuthorization(unitId_12, userInUnit12); addManagerAuthorization(unitId_12, managerInUnit12); addUserAuthorization(unitId_20, userInUnit20); addManagerAuthorization(unitId_20, managerInUnit20); addUserAuthorization(unitId_30, userInUnit30); addManagerAuthorization(unitId_30, managerInUnit30); } private void addUserAuthorization(String target, List<String> principals) { addAuthorization(asList(RMRoles.USER), target, principals); addAuthorization(asList(Role.READ, Role.WRITE), target, principals); } private void addManagerAuthorization(String target, List<String> principals) { addAuthorization(asList(RMRoles.MANAGER), target, principals); addAuthorization(asList(Role.READ, Role.WRITE, Role.DELETE), target, principals); } private void addAuthorization(List<String> roles, String target, List<String> principals) { if (!principals.isEmpty()) { modelLayerFactory.newAuthorizationsServices() .add(authorizationInCollection(collection).forPrincipalsIds(principals).on(target).giving(roles)); } } public RMTestRecords withFoldersAndContainersOfEveryStatus() { // Calculation of closing date is disabled because we want some folders // without close date systemConfigurationsManager.setValue(RMConfigs.CALCULATED_CLOSING_DATE, false); systemConfigurationsManager.setValue(RMConfigs.YEAR_END_DATE, "10/31"); Transaction transaction = new Transaction(); setupStorageSpace(transaction); setupContainerTypes(transaction); setupContainers(transaction); setupFolders(transaction); setupLists(transaction); try { recordServices.execute(transaction); } catch (RecordServicesException e) { throw new RuntimeException(e); } waitForBatchProcesses(modelLayerFactory.getBatchProcessesManager()); return this; } public RMTestRecords withDocumentsHavingContent() { Transaction transaction = new Transaction(); setupDocumentsWithContent(transaction); try { recordServices.execute(transaction); } catch (RecordServicesException e) { throw new RuntimeException(e); } return this; } public RMTestRecords withEvents() { createRecordsEvents(); createUsersEvents(); createGroupsEvents(); createViewEvents(); createDecommissioningEvents(); createPermissionEvents(); createBorrowAndReturnEvents(); createLoginEvents(); recordServices.flush(); return this; } private void setupTypes(Transaction transaction) { modelLayerFactory.getMetadataSchemasManager().modify(collection, new MetadataSchemaTypesAlteration() { @Override public void alter(MetadataSchemaTypesBuilder types) { MetadataSchemaBuilder employeFolderSchema = types.getSchemaType("folder").createCustomSchema("employe"); MetadataSchemaBuilder meetingFolderSchema = types.getSchemaType("folder").createCustomSchema("meetingFolder"); MetadataSchemaBuilder formDocumentSchema = types.getSchemaType("document").createCustomSchema("form"); MetadataSchemaBuilder reportDocumentSchema = types.getSchemaType("document").createCustomSchema("report"); MetadataSchemaBuilder criticalTaskSchema = types.getSchemaType("userTask").createCustomSchema("criticalTask"); MetadataSchemaBuilder communicationTaskSchema = types.getSchemaType("userTask") .createCustomSchema("communicationTask"); employeFolderSchema.create("subType").setType(STRING).setDefaultValue("Dossier d'employé général"); employeFolderSchema.create("hireDate").setType(MetadataValueType.DATE) .setDefaultValue(new LocalDate(2010, 12, 20)); meetingFolderSchema.create("subType").setType(STRING).setDefaultValue("Meeting important"); meetingFolderSchema.create("meetingDateTime").setType(MetadataValueType.DATE_TIME) .setDefaultValue(new LocalDateTime(2010, 12, 20, 1, 2, 3, 4)); formDocumentSchema.create("subType").setType(STRING).setDefaultValue("Permit A-38 Form"); formDocumentSchema.create("receivedDate").setType(MetadataValueType.DATE) .setDefaultValue(new LocalDate(2011, 12, 21)); reportDocumentSchema.create("subType").setType(STRING).setDefaultValue("Financial report"); reportDocumentSchema.create("receivedDate").setType(MetadataValueType.DATE) .setDefaultValue(new LocalDate(2012, 12, 22)); criticalTaskSchema.create("subType").setType(STRING).setDefaultValue("Dû pour hier"); communicationTaskSchema.create("subType").setType(STRING).setDefaultValue("Envoie d'un courriel"); communicationTaskSchema.create("email").setType(STRING).setDefaultValue("dakota.indien@gmail.com"); communicationTaskSchema.create("phone").setType(STRING); } }); transaction.add(rm.newFolderType().setCode("employe").setTitle("Dossier employé").setLinkedSchema("folder_employe")); transaction.add(rm.newFolderType().setCode("meetingFolder").setTitle("Réunion employé") .setLinkedSchema("folder_meetingFolder")); transaction.add(rm.newFolderType().setCode("other").setTitle("Autre")); transaction.add(rm.newDocumentType().setCode("form").setTitle("Formulaire").setLinkedSchema("document_form")); transaction.add(rm.newDocumentType().setCode("report").setTitle("Rapport").setLinkedSchema("document_report")); transaction.add(rm.newDocumentType().setCode("other").setTitle("Autre")); transaction.add(tasks.newTaskType().setCode("criticalTask").setTitle("Tâche critique") .setLinkedSchema("userTask_criticalTask")); transaction.add(tasks.newTaskType().setCode("communicationTask").setTitle("Communication") .setLinkedSchema("userTask_communicationTask")); transaction.add(tasks.newTaskType().setCode("other").setTitle("Autre")); } private void setupDocumentTypes(Transaction transaction) { transaction.add(rm.newDocumentTypeWithId(documentTypeId_1).setCode("1").setTitle("Livre de recettes")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_2).setCode("2").setTitle("Typologie")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_3).setCode("3").setTitle("Petit guide")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_4).setCode("4").setTitle("Histoire")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_5).setCode("5").setTitle("Calendrier des réunions")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_6).setCode("6").setTitle( "Dossier de réunion : avis de convocation, ordre du jour, procès-verbal, extraits de procès-verbaux, résolutions, documents déposés, correspondance")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_7).setCode("7").setTitle("Notes de réunion")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_8).setCode("8") .setTitle("Dossiers des administrateurs : affirmations solennelles, serments de discrétion")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_9).setCode("9").setTitle("Contrat")); transaction.add(rm.newDocumentTypeWithId(documentTypeId_10).setCode("10").setTitle("Procès-verbal")); } private void waitForBatchProcesses(BatchProcessesManager batchProcessesManager) { for (BatchProcess batchProcess : batchProcessesManager.getAllNonFinishedBatchProcesses()) { batchProcessesManager.waitUntilFinished(batchProcess); } } private void setupUsers(Transaction transaction, UserServices userServices) { userServices.addUserToCollection(users.admin(), collection); userServices.addUserToCollection(users.alice(), collection); userServices.addUserToCollection(users.bob(), collection); userServices.addUserToCollection(users.charles(), collection); userServices.addUserToCollection(users.dakotaLIndien(), collection); userServices.addUserToCollection(users.edouardLechat(), collection); userServices.addUserToCollection(users.gandalfLeblanc(), collection); userServices.addUserToCollection(users.chuckNorris(), collection); admin_userIdWithAllAccess = transaction.add(users.adminIn(collection)) .setCollectionAllAccess(true).setUserRoles(RGD).getId(); alice_userWithNoWriteAccess = transaction.add(users.aliceIn(collection).setCollectionReadAccess(true)).getId(); bob_userInAC = transaction.add(users.bobIn(collection).setUserRoles(USER)).getId(); charles_userInA = transaction.add(users.charlesIn(collection).setUserRoles(USER)).getId(); dakota_managerInA_userInB = transaction.add(users.dakotaLIndienIn(collection).setUserRoles(MANAGER)).getId(); edouard_managerInB_userInC = transaction.add(users.edouardLechatIn(collection).setUserRoles(USER)).getId(); gandalf_managerInABC = transaction.add(users.gandalfLeblancIn(collection).setUserRoles(MANAGER)).getId(); chuckNorris = transaction.add(users.chuckNorrisIn(collection).setCollectionAllAccess(true).setUserRoles(RGD)).getId(); } private void setupCategories(Transaction transaction) { transaction.add(rm.newCategoryWithId(categoryId_X).setCode("X").setTitle("Xe category")) .setDescription("Ze ultimate category X") .setRetentionRules(asList(ruleId_1)); transaction.add(rm.newCategoryWithId(categoryId_X100).setCode("X100").setTitle("X100") .setDescription("Ze category X100") .setParent(categoryId_X).setRetentionRules(asList(ruleId_1))); transaction.add(rm.newCategoryWithId(categoryId_X110).setCode("X110").setTitle("X110") .setDescription("Ze category X110") .setParent(categoryId_X100).setRetentionRules(asList(ruleId_1, ruleId_2))); transaction.add(rm.newCategoryWithId(categoryId_X120).setCode("X120").setTitle("X120") .setDescription("Ze category X120") .setParent(categoryId_X100).setRetentionRules(asList(ruleId_3, ruleId_4))); transaction.add(rm.newCategoryWithId(categoryId_X13).setCode("X13").setTitle("Agent Secreet") .setDescription("218. Requiem pour un espion").setParent(categoryId_X) .setRetentionRules(asList(ruleId_1, ruleId_2, ruleId_3, ruleId_4))); transaction.add(rm.newCategoryWithId(categoryId_Z).setCode("Z").setTitle("Ze category") .setDescription("Ze ultimate category Z")); transaction.add(rm.newCategoryWithId(categoryId_Z100).setCode("Z100").setTitle("Z100") .setDescription("Ze category Z100") .setParent(categoryId_Z)); transaction.add(rm.newCategoryWithId(categoryId_Z110).setCode("Z110").setTitle("Z110") .setDescription("Ze category Z110") .setParent(categoryId_Z100)).setRetentionRules(asList(ruleId_2)); transaction.add(rm.newCategoryWithId(categoryId_Z111).setCode("Z111").setTitle("Z111") .setDescription("Ze category Z111") .setParent(categoryId_Z110)); transaction.add(rm.newCategoryWithId(categoryId_Z112).setCode("Z112").setTitle("Z112") .setDescription("Ze category Z112") .setParent(categoryId_Z110)).setRetentionRules(asList(ruleId_3)); transaction.add(rm.newCategoryWithId(categoryId_Z120).setCode("Z120").setTitle("Z120") .setDescription("Ze category Z120") .setParent(categoryId_Z100)).setRetentionRules(asList(ruleId_3)); transaction.add(rm.newCategoryWithId(categoryId_Z200).setCode("Z200").setTitle("Z200") .setDescription("Ze category Z200") .setParent(categoryId_Z)); transaction.add(rm.newCategoryWithId(categoryId_ZE42).setCode("ZE42").setTitle("Ze 42") .setDescription("Ze category 42") .setParent(categoryId_Z).setRetentionRules(asList(ruleId_1, ruleId_2, ruleId_3, ruleId_4))); transaction.add(rm.newCategoryWithId(categoryId_Z999).setCode("Z999").setTitle("Z999") .setDescription("Ze category Z999") .setParent(categoryId_Z).setRetentionRules(asList(ruleId_5))); } private void setupAdministrativeUnits(Transaction transaction) { transaction.add(rm.newAdministrativeUnitWithId(unitId_10)).setCode("10").setTitle("Unité 10").setAdress("Unit 10 Adress") .setDescription("Ze ultimate unit 10"); transaction.add(rm.newAdministrativeUnitWithId(unitId_10a)).setCode("10A").setTitle("Unité 10-A").setParent(unitId_10) .setDescription("Ze ultimate unit 10A"); transaction.add(rm.newAdministrativeUnitWithId(unitId_11)).setCode("11").setTitle("Unité 11").setParent(unitId_10) .setDescription("Ze ultimate unit 11"); transaction.add(rm.newAdministrativeUnitWithId(unitId_11b)).setCode("11B").setTitle("Unité 11-B").setParent(unitId_11) .setDescription("Ze ultimate unit 11B"); transaction.add(rm.newAdministrativeUnitWithId(unitId_12)).setCode("12").setTitle("Unité 12").setParent(unitId_10) .setDescription("Ze ultimate unit 12"); transaction.add(rm.newAdministrativeUnitWithId(unitId_12b)).setCode("12B").setTitle("Unité 12-B").setParent(unitId_12) .setDescription("Ze ultimate unit 12B"); transaction.add(rm.newAdministrativeUnitWithId(unitId_12c)).setCode("12C").setTitle("Unité 12-C").setParent(unitId_12) .setDescription("Ze ultimate unit 12C"); transaction.add(rm.newAdministrativeUnitWithId(unitId_20)).setCode("20").setTitle("Unité 20") .setDescription("Ze ultimate unit 20"); transaction.add(rm.newAdministrativeUnitWithId(unitId_20d)).setCode("20D").setTitle("Unité 20-D").setParent(unitId_20) .setDescription("Ze ultimate unit 20D"); transaction.add(rm.newAdministrativeUnitWithId(unitId_20e)).setCode("20E").setTitle("Unité 20-E").setParent(unitId_20) .setDescription("Ze ultimate unit 20E"); transaction.add(rm.newAdministrativeUnitWithId(unitId_30)).setCode("30").setTitle("Unité 30") .setDescription("Ze ultimate unit 30"); transaction.add(rm.newAdministrativeUnitWithId(unitId_30c)).setCode("30C").setTitle("Unité 30-C").setParent(unitId_30) .setDescription("Ze ultimate unit 30C"); } private void setupUniformSubdivisions(Transaction transaction) { transaction.add(rm.newUniformSubdivisionWithId(subdivId_1).setCode("sub1").setTitle("Subdiv. 1").setDescription("description1") .setRetentionRules(asList(ruleId_2))); transaction.add(rm.newUniformSubdivisionWithId(subdivId_2).setCode("sub2").setTitle("Subdiv. 2").setDescription("description2")); transaction.add(rm.newUniformSubdivisionWithId(subdivId_3).setCode("sub3").setTitle("Subdiv. 3").setDescription("description3")); } private void setupRetentionRules(Transaction transaction) { VariableRetentionPeriod period42 = rm.newVariableRetentionPeriod().setCode("42").setTitle("Ze 42") .setDescription("Ze ultimate 42"); VariableRetentionPeriod period666 = rm.newVariableRetentionPeriod().setCode("666").setTitle("Ze 666") .setDescription("Ze ultimate 666"); transaction.add(period42); transaction.add(period666); CopyRetentionRule principal42_5_C = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "42-5-C"); principal42_5_CId = principal42_5_C.getId(); principal42_5_C.setActiveRetentionPeriod(RetentionPeriod.variable(period42)); principal42_5_C.setSemiActiveRetentionPeriod(RetentionPeriod.fixed(5)); principal42_5_C.setInactiveDisposalType(DisposalType.DEPOSIT); principal42_5_C.setContentTypesComment("R1"); principal42_5_C.setActiveRetentionComment("R2"); //principal42_5_C.setCode("42-5-C"); CopyRetentionRule secondary888_0_D = copyBuilder.newSecondary(asList(rm.PA(), rm.DM()), "888-0-D"); secondary888_0_D.setSemiActiveRetentionComment("R3"); secondary888_0_D.setInactiveDisposalComment("R4"); transaction.add(rm.newRetentionRuleWithId(ruleId_1)).setCode("1").setTitle("Rule #1") .setAdministrativeUnits(asList(unitId_10, unitId_20)).setApproved(true) .setCopyRetentionRules(asList(principal42_5_C, secondary888_0_D)).setKeywords(asList("Rule #1")) .setCorpus("Corpus Rule 1").setDescription("Description Rule 1") .setJuridicReference("Juridic reference Rule 1").setGeneralComment("General Comment Rule 1") .setCopyRulesComment(asList("R1:comment1", "R2:comment2", "R3:comment3", "R4:comment4")) .setDocumentTypesDetails(asList( new RetentionRuleDocumentType(documentTypeId_1), new RetentionRuleDocumentType(documentTypeId_2), new RetentionRuleDocumentType(documentTypeId_3))); CopyRetentionRule principal5_2_T = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "5-2-T"); CopyRetentionRule secondary2_0_D = copyBuilder.newSecondary(asList(rm.PA(), rm.DM()), "2-0-D"); transaction.add(rm.newRetentionRuleWithId(ruleId_2)).setCode("2").setTitle("Rule #2") .setResponsibleAdministrativeUnits(true).setApproved(true) .setCopyRetentionRules(asList(principal5_2_T, secondary2_0_D)) .setDocumentTypesDetails(asList( new RetentionRuleDocumentType(documentTypeId_1, DisposalType.DESTRUCTION), new RetentionRuleDocumentType(documentTypeId_2, DisposalType.DEPOSIT), new RetentionRuleDocumentType(documentTypeId_3, DisposalType.DESTRUCTION), new RetentionRuleDocumentType(documentTypeId_4, DisposalType.DEPOSIT))); CopyRetentionRule principal999_4_T = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "999-4-T"); principal999_4_T.setContentTypesComment("R1"); CopyRetentionRule secondary1_0_D = copyBuilder.newSecondary(asList(rm.PA(), rm.DM()), "1-0-D"); transaction.add(rm.newRetentionRuleWithId(ruleId_3)).setCode("3").setTitle("Rule #3") .setResponsibleAdministrativeUnits(true).setApproved(true) .setCopyRetentionRules(asList(principal999_4_T, secondary1_0_D)) .setDocumentTypesDetails(asList( new RetentionRuleDocumentType(documentTypeId_1, DisposalType.DEPOSIT), new RetentionRuleDocumentType(documentTypeId_2, DisposalType.DEPOSIT))); CopyRetentionRule secondary666_0_D = copyBuilder.newSecondary(asList(rm.PA(), rm.DM())); secondary666_0_D.setActiveRetentionPeriod(RetentionPeriod.variable(period666)); secondary666_0_D.setSemiActiveRetentionPeriod(RetentionPeriod.fixed(0)); secondary666_0_D.setInactiveDisposalType(DisposalType.DESTRUCTION); secondary666_0_D.setSemiActiveRetentionComment("R3"); secondary666_0_D.setInactiveDisposalComment("R4"); CopyRetentionRule principal_PA_3_888_D = copyBuilder.newPrincipal(asList(rm.PA()), "3-888-D"); CopyRetentionRule principal_MD_3_888_C = copyBuilder.newPrincipal(asList(rm.DM()), "3-888-C"); transaction.add(rm.newRetentionRuleWithId(ruleId_4)).setCode("4").setTitle("Rule #4") .setResponsibleAdministrativeUnits(true).setApproved(true) .setCopyRetentionRules(asList(principal_PA_3_888_D, principal_MD_3_888_C, secondary666_0_D)) .setCopyRulesComment(Arrays.asList("R3:comment3")).setDocumentTypesDetails(asList( new RetentionRuleDocumentType(documentTypeId_1), new RetentionRuleDocumentType(documentTypeId_3), new RetentionRuleDocumentType(documentTypeId_4))); RetentionRule rule5 = rm.newRetentionRuleWithId(ruleId_5); rule5.setCode("0122"); rule5.setTitle("Conseil d’administration"); rule5.setDocumentTypesDetails(asList( new RetentionRuleDocumentType(documentTypeId_5), new RetentionRuleDocumentType(documentTypeId_6), new RetentionRuleDocumentType(documentTypeId_7), new RetentionRuleDocumentType(documentTypeId_8) )); rule5.setResponsibleAdministrativeUnits(true); CopyRetentionRule principal888_5_C_rule5 = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "888-5-C"); principal888_5_C_rule5.setActiveRetentionComment("R1"); principal888_5_C_rule5.setSemiActiveRetentionComment("R2"); principal888_5_C_rule5.setInactiveDisposalComment("R3"); CopyRetentionRule secondary888_0_D_rule5 = copyBuilder.newSecondary(asList(rm.PA(), rm.DM()), "888-0-D"); secondary888_0_D_rule5.setActiveRetentionComment("R1"); secondary888_0_D_rule5.setInactiveDisposalComment("R3"); rule5.setCopyRetentionRules(asList(principal888_5_C_rule5, secondary888_0_D_rule5)); String r1_rule5 = "R1:\nValeur administrative \n\n"; String r2_rule5 = "R2:\nValeur administrative\n\nLes dossiers des réunions peuvent être consultés pour répondre à une demande d’information.\n\nValeur de preuve\n\n"; String r3_rule5 = "R3:\nValeur historique\n\nLe dossier de réunion\n\n"; rule5.setCopyRulesComment(asList(r1_rule5, r2_rule5, r3_rule5)); transaction.add(rule5); } private void createGroupsEvents() { User charles = users.charlesIn(collection); Group group = (Group) rm.newGroup().setTitle("group1"); loggingServices.addGroup(group.getWrappedRecord(), charles); Group group2 = (Group) rm.newGroup().setTitle("group2"); loggingServices.removeGroup(group2.getWrappedRecord(), charles); } private void createUsersEvents() { User charles = users.charlesIn(collection); User bob = users.bobIn(collection); loggingServices.addUser(bob.getWrappedRecord(), charles); User chuck = users.chuckNorrisIn(collection); loggingServices.addUser(chuck.getWrappedRecord(), charles); User leblanc = users.gandalfLeblancIn(collection); loggingServices.addUser(leblanc.getWrappedRecord(), charles); recordServices.flush(); } private void createViewEvents() { User charles = users.charlesIn(collection); loggingServices.logRecordView(getFolder_A02().getWrappedRecord(), charles); } private void createLoginEvents() { User admin = users.adminIn(collection); loggingServices.login(admin); User charles = users.charlesIn(collection); loggingServices.login(charles); loggingServices.logout(charles); } private void createRecordsEvents() { Transaction transaction = new Transaction(); User charles = users.charlesIn(collection); transaction .add(createEvent(charles.getUsername(), EventType.CREATE_FOLDER, new LocalDateTime().minusDays(1), folder_A01)); transaction.add(createEvent(charles.getUsername(), EventType.CREATE_DOCUMENT, new LocalDateTime().minusDays(1), "11")); transaction .add(createEvent(charles.getUsername(), EventType.MODIFY_DOCUMENT, new LocalDateTime().minusDays(1), folder_A03)); transaction.add(createEvent(charles.getUsername(), EventType.MODIFY_FOLDER, new LocalDateTime().minusDays(2), "13")); transaction .add(createEvent(charles.getUsername(), EventType.DELETE_FOLDER, new LocalDateTime().minusDays(2), folder_A05)); transaction.add(createEvent(charles.getUsername(), EventType.CREATE_USER, new LocalDateTime().minusDays(2), bob_userInAC, getBob_userInAC().getTitle())); transaction.add(createEvent(charles.getUsername(), EventType.MODIFY_USER, new LocalDateTime().minusDays(2), chuckNorris, getChuckNorris().getTitle())); try { recordServices.execute(transaction); } catch (RecordServicesException e) { throw new RuntimeException(e); } } private RecordWrapper createEvent(String username, String eventType, LocalDateTime eventDate, String recordId) { return createEvent(username, eventType, eventDate, recordId, null); } private RecordWrapper createEvent(String username, String eventType, LocalDateTime eventDate, String recordId, String title) { return rm.newEvent().setRecordId(recordId).setTitle(title).setUsername(username).setType(eventType) .setCreatedOn(eventDate); } private void createBorrowAndReturnEvents() { Folder folderA02 = getFolder_A02(); Folder folderBorrowedByDakota = getFolder_A03(); User bob = users.bobIn(collection); loggingServices.borrowRecord(folderA02.getWrappedRecord(), bob); loggingServices.borrowRecord(getContainerBac01().getWrappedRecord(), bob); loggingServices.returnRecord(folderA02.getWrappedRecord(), bob); User charles = users.charlesIn(collection); loggingServices.borrowRecord(folderBorrowedByDakota.getWrappedRecord(), charles); } private void createDecommissioningEvents() { DecommissioningList decommissioningList = rm.newDecommissioningList(); decommissioningList.setDecommissioningListType(DecommissioningListType.FOLDERS_TO_DEPOSIT); decommissioningList.setTitle("folder to deposit by bob"); User bob = users.bobIn(collection); decommissioningLoggingService.logDecommissioning(decommissioningList, bob); DecommissioningList decommissioningList2 = rm.newDecommissioningList(); decommissioningList2.setDecommissioningListType(DecommissioningListType.FOLDERS_TO_DESTROY); decommissioningList2.setTitle("folder destroy by dakota"); User dakota = users.dakotaLIndienIn(collection); decommissioningLoggingService.logDecommissioning(decommissioningList2, dakota); DecommissioningList decommissioningList3 = rm.newDecommissioningList(); decommissioningList3.setDecommissioningListType(DecommissioningListType.FOLDERS_TO_TRANSFER); decommissioningList3.setTitle("folder transfer by bob"); decommissioningLoggingService.logDecommissioning(decommissioningList3, bob); } private void createPermissionEvents() { modifyPermission(); } private void modifyPermission() { List<String> roles = new ArrayList<>(); String zRole = "MANAGER"; roles.add(zRole); LocalDate startDate = new LocalDate(); LocalDate endDate = new LocalDate(); AuthorizationDetails detail = new XMLAuthorizationDetails(collection, "42", roles, startDate, endDate, false); List<String> grantedToPrincipals = new ArrayList<>(); User dakota = users.gandalfLeblancIn(collection); User bob = users.bobIn(collection); grantedToPrincipals.add(dakota.getId()); grantedToPrincipals.add(bob.getId()); List<String> grantedOnRecords = new ArrayList<>(); /*AdministrativeUnit administrativeUnit = records.getUnit10(); Folder folder = createFolder(administrativeUnit);*/ grantedOnRecords.addAll(Arrays.asList(getFolder_A01().getId())); Authorization authorization = new Authorization(detail, grantedToPrincipals); List<String> grantedOnRecordsBefore = new ArrayList<>(); grantedOnRecordsBefore.addAll( Arrays.asList(getFolder_A01().getId(), getFolder_A02().getId())); AuthorizationDetails detailBefore = new XMLAuthorizationDetails(collection, "43", roles, startDate, endDate.minusDays(1), false); Authorization authorizationBefore = new Authorization(detailBefore, grantedToPrincipals); User charles = users.charlesIn(collection); //loggingServices.modifyPermission(authorization, authorizationBefore, null, charles); } private void setupLists(Transaction transaction) { transaction.add(rm.newDecommissioningListWithId(list_01)) .setTitle("Listes avec plusieurs supports à détruire").setAdministrativeUnit(unitId_10a) .setDecommissioningListType(FOLDERS_TO_DESTROY) .setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setContainerDetailsFor(containerId_bac18, containerId_bac19).setFolderDetailsForIds(folder_A(42, 47)); DecommissioningList zeList02 = rm.newDecommissioningListWithId(list_02).setTitle("Liste analogique à détruire") .setAdministrativeUnit(unitId_10a) .setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DESTROY).setContainerDetailsFor(containerId_bac10) .setFolderDetailsForIds(folder_A(54, 56)); for (DecomListFolderDetail detail : zeList02.getFolderDetails()) { detail.setContainerRecordId(containerId_bac10); } zeList02.getContainerDetails().get(0).setFull(true); transaction.add(zeList02); transaction.add(rm.newDecommissioningListWithId(list_03)).setTitle("Liste hybride à fermer") .setAdministrativeUnit(unitId_10a) .setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_CLOSE).setFolderDetailsForIds(folder_A(1, 3)); transaction.add(rm.newDecommissioningListWithId(list_04)).setTitle("Liste analogique à transférer") .setAdministrativeUnit(unitId_10a) .setDecommissioningListType(FOLDERS_TO_TRANSFER).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setContainerDetailsFor(containerId_bac14, containerId_bac15).setFolderDetailsForIds(folder_A(22, 24)); transaction.add(rm.newDecommissioningListWithId(list_05)).setTitle("Liste hybride à transférer") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_TRANSFER).setFolderDetailsForIds(folder_A(19, 21)); transaction.add(rm.newDecommissioningListWithId(list_06)).setTitle("Liste électronique à transférer") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_TRANSFER).setFolderDetailsForIds(folder_A(25, 27)); transaction.add(rm.newDecommissioningListWithId(list_07)).setTitle("Liste analogique à détruire 2") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DESTROY).setFolderDetailsForIds(folder_A(54, 56)); //TODO Vérifier, était autrefois dans le filing space B DecommissioningList zeList08 = transaction.add(rm.newDecommissioningListWithId(list_08)) .setTitle("Liste hybride à verser") .setAdministrativeUnit(unitId_20d).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DEPOSIT).setFolderDetailsForIds(folder_B30, folder_B33, folder_B35) .setContainerDetailsFor(containerId_bac08, containerId_bac09); List<DecomListFolderDetail> details = zeList08.getFolderDetails(); details.get(0).setContainerRecordId(containerId_bac08); details.get(1).setContainerRecordId(containerId_bac09); transaction.add(rm.newDecommissioningListWithId(list_09)).setTitle("Liste électronique à verser") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DEPOSIT).setFolderDetailsForIds(folder_A(57, 59)); DecommissioningList zeList10 = transaction.add(rm.newDecommissioningListWithId(list_10)) .setTitle("Liste avec plusieurs supports à verser").setAdministrativeUnit(unitId_10a) .setDecommissioningListType(FOLDERS_TO_DEPOSIT) .setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setContainerDetailsFor(containerId_bac11, containerId_bac13) .setFolderDetailsForIds(folders("A42-A44, A48-A50")); details = zeList10.getFolderDetails(); details.get(0).setContainerRecordId(containerId_bac13); details.get(1).setContainerRecordId(containerId_bac13); details.get(2).setContainerRecordId(containerId_bac13); details.get(4).setContainerRecordId(containerId_bac11); details.get(5).setContainerRecordId(containerId_bac11); transaction.add(rm.newDecommissioningListWithId(list_11)).setTitle("Liste de fermeture traîtée") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_CLOSE).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)).setFolderDetailsForIds(folder_A(10, 15)); transaction.add(rm.newDecommissioningListWithId(list_12)).setTitle("Liste de transfert traîtée") .setAdministrativeUnit(unitId_10a) .setDecommissioningListType(FOLDERS_TO_TRANSFER).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setContainerDetailsFor(containerId_bac10, containerId_bac11, containerId_bac12) .setFolderDetailsForIds(folder_A(45, 59)); transaction.add(rm.newDecommissioningListWithId(list_13)).setTitle("Liste de transfert uniforme traîtée") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_TRANSFER).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)).setContainerDetailsFor(containerId_bac13) .setFolderDetailsForIds(folder_A(42, 44)); transaction.add(rm.newDecommissioningListWithId(list_14)).setTitle("Liste de versement traîtée") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DEPOSIT).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)).setContainerDetailsFor(containerId_bac05) .setFolderDetailsForIds(folder_A(79, 93)); transaction.add(rm.newDecommissioningListWithId(list_15)).setTitle("Liste de versement uniforme traîtée") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DEPOSIT).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)).setContainerDetailsFor(containerId_bac04) .setFolderDetailsForIds(folder_A(94, 96)); DecommissioningList zeList16 = transaction.add(rm.newDecommissioningListWithId(list_16) .setTitle("Liste analogique à transférer en contenants").setOriginArchivisticStatus(OriginStatus.ACTIVE) .setAdministrativeUnit(unitId_10a).setDecommissioningListType(FOLDERS_TO_TRANSFER) .setContainerDetailsFor(containerId_bac14).setFolderDetailsForIds(folder_A(22, 24))); for (DecomListFolderDetail detail : zeList16.getFolderDetails()) { detail.setContainerRecordId(containerId_bac14); } DecommissioningList zeList17 = transaction.add(rm.newDecommissioningListWithId(list_17)) .setTitle("Liste à verser").setAdministrativeUnit(unitId_10a) .setDecommissioningListType(FOLDERS_TO_DEPOSIT) .setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setContainerDetailsFor(containerId_bac11) .setFolderDetailsForIds(folders("A48-A50")); details = zeList17.getFolderDetails(); details.get(1).setContainerRecordId(containerId_bac11); details.get(2).setContainerRecordId(containerId_bac11); //TODO Vérifier, était autrefois dans le filing space B DecommissioningList zeList18 = transaction.add(rm.newDecommissioningListWithId(list_18)) .setTitle("Liste hybride à verser avec tri") .setAdministrativeUnit(unitId_20d).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DEPOSIT).setFolderDetailsForIds(folder_B30, folder_B33) .setContainerDetailsFor(containerId_bac08, containerId_bac09); details = zeList18.getFolderDetails(); details.get(0).setContainerRecordId(containerId_bac08); details.get(1).setContainerRecordId(containerId_bac09).setReversedSort(true); //TODO Vérifier, était autrefois dans le filing space B DecommissioningList zeList19 = transaction.add(rm.newDecommissioningListWithId(list_19)) .setTitle("Liste hybride à détruire avec tri") .setAdministrativeUnit(unitId_20d).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(FOLDERS_TO_DESTROY).setFolderDetailsForIds(folder_B30, folder_B33) .setContainerDetailsFor(containerId_bac08, containerId_bac09); details = zeList19.getFolderDetails(); details.get(0).setContainerRecordId(containerId_bac08); details.get(1).setContainerRecordId(containerId_bac09).setReversedSort(true); transaction.add(rm.newDecommissioningListWithId(list_20)).setTitle("Liste hybride à verser") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_DEPOSIT).setFolderDetailsForIds(folder_A(19, 21)); transaction.add(rm.newDecommissioningListWithId(list_21)).setTitle("Liste hybride à détruire") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_DESTROY).setFolderDetailsForIds(folder_A(19, 21)); transaction.add(rm.newDecommissioningListWithId(list_23)).setTitle("Liste à approuver") .setAdministrativeUnit(unitId_10a) .setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_CLOSE).setFolderDetailsForIds(folder_A(1, 3)) .setApprovalRequest(admin_userIdWithAllAccess).setApprovalRequestDate(new LocalDate()); DecomListValidation validationDakota = new DecomListValidation(dakota_managerInA_userInB, new LocalDate().minusDays(1)) .setValidationDate(new LocalDate()); DecomListValidation validationBob = new DecomListValidation(bob_userInAC, new LocalDate().minusDays(1)) .setValidationDate(new LocalDate()); transaction.add(rm.newDecommissioningListWithId(list_24)).setTitle("Liste approuvée et validée") .setAdministrativeUnit(unitId_10a) .setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_CLOSE).setFolderDetailsForIds(folder_A(1, 3)) .setApprovalRequest(chuckNorris).setApprovalRequestDate(new LocalDate()) .setApprovalUser(getAdmin()).setApprovalDate(new LocalDate()) .setValidations(asList(validationDakota, validationBob)); transaction.add(rm.newDecommissioningListWithId(list_25)).setTitle("Autre liste à approuver et valider") .setAdministrativeUnit(unitId_10a) .setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(FOLDERS_TO_CLOSE).setFolderDetailsForIds(folder_A(1, 3)) .setApprovalRequest(chuckNorris).setApprovalRequestDate(new LocalDate()) .addValidationRequest(dakota_managerInA_userInB, new LocalDate()) .addValidationRequest(bob_userInAC, new LocalDate()); } public RMTestRecords withDocumentDecommissioningLists() { //contrat CopyRetentionRule principal1_2_C = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "2-0-C") .setTypeId(documentTypeId_9); //proces-verbal CopyRetentionRule principal1_2_D = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "1-2-D") .setTypeId(documentTypeId_10); CopyRetentionRule principal5_5_C = copyBuilder.newPrincipal(asList(rm.PA(), rm.DM()), "5-5-C"); CopyRetentionRule secondary5_5_D = copyBuilder.newSecondary(asList(rm.PA(), rm.DM()), "5-5-D"); Transaction transaction = new Transaction(); transaction.add(rm.newRetentionRuleWithId(ruleId_6)).setCode("6").setTitle("Rule #6") .setScope(RetentionRuleScope.DOCUMENTS) .setAdministrativeUnits(asList(unitId_10, unitId_20)).setApproved(true) .setDocumentCopyRetentionRules(asList(principal1_2_C, principal1_2_D)) .setPrincipalDefaultDocumentCopyRetentionRule(principal5_5_C) .setSecondaryDefaultDocumentCopyRetentionRule(secondary5_5_D); Category categoryX = rm.getCategory(categoryId_X); List<String> retentionRules = new ArrayList<>(categoryX.getRententionRules()); retentionRules.add(ruleId_6); transaction.add(categoryX.setRetentionRules(retentionRules)); createDocumentsAndReturnThoseWhithDifferentCopyForEach(transaction, folder_A(1, 27)); createDocumentsAndReturnThoseWhithDifferentCopyForEach(transaction, folder_A(42, 59)); createDocumentsAndReturnThoseWhithDifferentCopyForEach(transaction, folder_A(79, 96)); //transférée transaction.add(rm.newDecommissioningListWithId(list_30)).setTitle("Liste de transfert de documents traîtées") .setAdministrativeUnit(unitId_10a) .setDecommissioningListType(DOCUMENTS_TO_TRANSFER).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(45, 49))); // à transférer transaction.add(rm.newDecommissioningListWithId(list_31)) .setTitle("Liste de transfert de documents").setOriginArchivisticStatus(OriginStatus.ACTIVE) .setAdministrativeUnit(unitId_10a).setDecommissioningListType(DOCUMENTS_TO_TRANSFER) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(22, 24))); // ------------ // versée transaction.add(rm.newDecommissioningListWithId(list_32)).setTitle("Liste de versement de documents traîtées") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(DOCUMENTS_TO_DEPOSIT).setProcessingUser(dakota_managerInA_userInB) .setProcessingDate(date(2012, 5, 5)) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(79, 93))); //semi-actif à verser transaction.add(rm.newDecommissioningListWithId(list_33)) .setTitle("Liste de versement de documents semi-actifs").setAdministrativeUnit(unitId_10a) .setDecommissioningListType(DOCUMENTS_TO_DEPOSIT) .setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setContainerDetailsFor(containerId_bac11) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(48, 50))); // actif à verser transaction.add(rm.newDecommissioningListWithId(list_34)).setTitle("Liste de versement de documents semi-actifs") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(DOCUMENTS_TO_DEPOSIT) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(19, 21))); // ------------ // actif à détruire transaction.add(rm.newDecommissioningListWithId(list_35)).setTitle("Liste de destruction de documents actifs") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.ACTIVE) .setDecommissioningListType(DOCUMENTS_TO_DESTROY) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(19, 21))); // semi-actif à détruire transaction.add(rm.newDecommissioningListWithId(list_36)).setTitle("Liste de destruction de documents semi-actifs") .setAdministrativeUnit(unitId_10a).setOriginArchivisticStatus(OriginStatus.SEMI_ACTIVE) .setDecommissioningListType(DOCUMENTS_TO_DESTROY) .setDocuments(documentsWhithDifferentCopyForEach(folder_A(54, 56))); try { recordServices.execute(transaction); } catch (RecordServicesException e) { throw new RuntimeException(e); } return this; } private List<String> createDocumentsAndReturnThoseWhithDifferentCopyForEach(Transaction transaction, String... folders) { ContentManager contentManager = modelLayerFactory.getContentManager(); User user = users.adminIn(collection); ContentVersionDataSummary contractVersion = upload("contrat.docx"); Content contractContent = contentManager.createMinor(user, "contrat.docx", contractVersion); ContentVersionDataSummary procesVersion = upload("proces.docx"); Content procesContent = contentManager.createMinor(user, "proces.docx", procesVersion); List<String> returnedIds = new ArrayList<>(); for (String folderId : folders) { Folder folder = rm.getFolder(folderId); String paperSameCopyId = folder + "_paperDocumentWithSameCopy"; String paperContractDifferentCopyId = folder + "_paperContractWithDifferentCopy"; String paperProcesDifferentCopyId = folder + "_paperProcesWithDifferentCopy"; returnedIds.add(paperContractDifferentCopyId); returnedIds.add(paperProcesDifferentCopyId); transaction.add(rm.newDocumentWithId(paperContractDifferentCopyId).setFolder(folder).setType(documentTypeId_9) .setTitle(folder.getTitle() + " - Document contrat analogique avec un autre exemplaire")); transaction.add(rm.newDocumentWithId(paperProcesDifferentCopyId).setFolder(folder).setType(documentTypeId_10) .setTitle(folder.getTitle() + " - Document procès verbal analogique avec un autre exemplaire")); transaction.add(rm.newDocumentWithId(paperSameCopyId).setFolder(folder) .setTitle(folder.getTitle() + " - Document analogique avec le même exemplaire")); String numericContractDifferentCopyId = folder + "_numericContractWithDifferentCopy"; String numericProcesDifferentCopyId = folder + "_numericProcesWithDifferentCopy"; String numericSameCopyId = folder + "_numericDocumentWithSameCopy"; returnedIds.add(numericContractDifferentCopyId); returnedIds.add(numericProcesDifferentCopyId); transaction.add(rm.newDocumentWithId(numericContractDifferentCopyId).setFolder(folder).setType(documentTypeId_9) .setContent(contractContent) .setTitle(folder.getTitle() + " - Document contrat numérique avec un autre exemplaire")); transaction.add(rm.newDocumentWithId(numericProcesDifferentCopyId).setFolder(folder).setType(documentTypeId_10) .setContent(procesContent) .setTitle(folder.getTitle() + " - Document procès verbal numérique avec un autre exemplaire")); transaction.add(rm.newDocumentWithId(numericSameCopyId).setFolder(folder) .setContent(procesContent).setTitle(folder.getTitle() + " - Document numérique avec le même exemplaire")); } return returnedIds; } private List<String> documentsWhithDifferentCopyForEach(String... folders) { List<String> returnedIds = new ArrayList<>(); for (String folderId : folders) { Folder folder = rm.getFolder(folderId); String paperContractDifferentCopyId = folder + "_paperContractWithDifferentCopy"; String paperProcesDifferentCopyId = folder + "_paperProcesWithDifferentCopy"; returnedIds.add(paperContractDifferentCopyId); returnedIds.add(paperProcesDifferentCopyId); String numericContractDifferentCopyId = folder + "_numericContractWithDifferentCopy"; String numericProcesDifferentCopyId = folder + "_numericProcesWithDifferentCopy"; returnedIds.add(numericContractDifferentCopyId); returnedIds.add(numericProcesDifferentCopyId); } return returnedIds; } private void setupStorageSpace(Transaction transaction) { transaction.add(rm.newStorageSpaceWithId(storageSpaceId_S01).setCode(storageSpaceId_S01) .setTitle("Etagere 1")); transaction.add( rm.newStorageSpaceWithId(storageSpaceId_S01_01).setCode(storageSpaceId_S01_01) .setTitle("Tablette 1").setParentStorageSpace(storageSpaceId_S01)).setDecommissioningType( TRANSFERT_TO_SEMI_ACTIVE); transaction.add( rm.newStorageSpaceWithId(storageSpaceId_S01_02).setCode(storageSpaceId_S01_02) .setTitle("Tablette 2").setParentStorageSpace(storageSpaceId_S01)).setDecommissioningType( DEPOSIT); transaction.add(rm.newStorageSpaceWithId(storageSpaceId_S02).setCode(storageSpaceId_S02) .setTitle("Etagere 2")); transaction.add( rm.newStorageSpaceWithId(storageSpaceId_S02_01).setCode(storageSpaceId_S02_01) .setTitle("Tablette 1").setParentStorageSpace(storageSpaceId_S02)).setDecommissioningType( TRANSFERT_TO_SEMI_ACTIVE); transaction.add(rm.newStorageSpaceWithId(storageSpaceId_S02_02).setCode(storageSpaceId_S02_02).setTitle("Tablette 2") .setParentStorageSpace(storageSpaceId_S02)).setDecommissioningType(DEPOSIT); } private void setupContainerTypes(Transaction transaction) { transaction.add(rm.newContainerRecordTypeWithId(containerTypeId_boite22x22).setTitle("Boite 22X22") .setCode("B22x22")); } private void setupContainers(Transaction transaction) { String noStorageSpace = null; transaction.add(rm.newContainerRecordWithId(containerId_bac19)).setTemporaryIdentifier("10_A_12") .setFull(false).setAdministrativeUnit(unitId_10a) .setDecommissioningType(DESTRUCTION).setType(containerTypeId_boite22x22); transaction.add(rm.newContainerRecordWithId(containerId_bac18)).setTemporaryIdentifier("10_A_11") .setFull(false).setAdministrativeUnit(unitId_10a) .setDecommissioningType(DESTRUCTION).setType(containerTypeId_boite22x22); transaction.add(rm.newContainerRecordWithId(containerId_bac17)).setTemporaryIdentifier("10_A_10") .setFull(false).setAdministrativeUnit(unitId_10a) .setDecommissioningType(DEPOSIT).setType(containerTypeId_boite22x22); transaction.add(rm.newContainerRecordWithId(containerId_bac16)).setTemporaryIdentifier("10_A_09") .setFull(false).setAdministrativeUnit(unitId_10a) .setDecommissioningType(DEPOSIT).setType(containerTypeId_boite22x22); transaction.add(rm.newContainerRecordWithId(containerId_bac15)).setTemporaryIdentifier("10_A_08") .setFull(false).setAdministrativeUnit(unitId_10a) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction.add(rm.newContainerRecordWithId(containerId_bac14)).setTemporaryIdentifier("10_A_07") .setFull(false).setAdministrativeUnit(unitId_10a) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac13).setTemporaryIdentifier("10_A_06") .setFull(false).setStorageSpace(storageSpaceId_S01_01).setAdministrativeUnit(unitId_10a) .setRealTransferDate(date(2008, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac12).setTemporaryIdentifier("10_A_05") .setFull(false).setStorageSpace(storageSpaceId_S01_01).setAdministrativeUnit(unitId_10a) .setRealTransferDate(date(2006, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac11).setTemporaryIdentifier("10_A_04") .setFull(false).setStorageSpace(storageSpaceId_S01_01).setAdministrativeUnit(unitId_10a) .setRealTransferDate(date(2005, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac10).setTemporaryIdentifier("10_A_03") .setFull(true).setStorageSpace(noStorageSpace).setAdministrativeUnit(unitId_10a) .setRealTransferDate(date(2007, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac09).setTemporaryIdentifier("11_B_02") .setFull(false).setStorageSpace(storageSpaceId_S02_01).setAdministrativeUnit(unitId_11b) .setRealTransferDate(date(2006, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac08).setTemporaryIdentifier("12_B_02") .setFull(false).setStorageSpace(storageSpaceId_S02_01).setAdministrativeUnit(unitId_12b) .setRealTransferDate(date(2007, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac07).setTemporaryIdentifier("30_C_03") .setFull(false).setStorageSpace(storageSpaceId_S02_01).setAdministrativeUnit(unitId_30c) .setRealTransferDate(date(2007, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac06).setTemporaryIdentifier("30_C_02") .setFull(false).setStorageSpace(noStorageSpace).setAdministrativeUnit(unitId_30c) .setRealTransferDate(date(2006, 10, 31))) .setDecommissioningType(TRANSFERT_TO_SEMI_ACTIVE).setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac05).setTemporaryIdentifier("10_A_02") .setFull(true).setStorageSpace(storageSpaceId_S01_02).setAdministrativeUnit(unitId_10a) .setRealTransferDate(date(2008, 10, 31)) .setRealDepositDate(date(2012, 5, 15))).setDecommissioningType(DEPOSIT) .setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac04).setTemporaryIdentifier("10_A_01") .setFull(false).setStorageSpace(storageSpaceId_S01_02).setAdministrativeUnit(unitId_10a) .setRealTransferDate(date(2007, 10, 31)) .setRealDepositDate(date(2010, 8, 17))).setDecommissioningType(DEPOSIT) .setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac03).setTemporaryIdentifier("11_B_01") .setFull(false).setStorageSpace(storageSpaceId_S02_02).setAdministrativeUnit(unitId_11b) .setRealTransferDate(date(2006, 10, 31)) .setRealDepositDate(date(2009, 8, 17))).setDecommissioningType(DEPOSIT) .setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac02).setTemporaryIdentifier("12_B_01") .setFull(false).setStorageSpace(noStorageSpace).setAdministrativeUnit(unitId_12b) .setRealTransferDate(date(2007, 10, 31)) .setRealDepositDate(date(2011, 2, 13))).setDecommissioningType(DEPOSIT) .setType(containerTypeId_boite22x22); transaction .add(rm.newContainerRecordWithId(containerId_bac01).setTemporaryIdentifier("30_C_01") .setFull(true).setStorageSpace(storageSpaceId_S02_02).setAdministrativeUnit(unitId_30c) .setRealTransferDate(date(2007, 10, 31)) .setRealDepositDate(date(2011, 2, 13))).setDecommissioningType(DEPOSIT) .setType(containerTypeId_boite22x22).setModifiedBy(bob_userInAC); } private void setupFolders(Transaction transaction) { List<Folder> folders = new ArrayList<>(); folders.add(rm.newFolderWithId(folder_A01).setTitle("Abeille").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_A02).setTitle("Aigle").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4))); folders.add(rm.newFolderWithId(folder_A03).setTitle("Alouette").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5))); folders.add(rm.newFolderWithId(folder_A04).setTitle("Baleine").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setDescription("King Dedede")); folders.add(rm.newFolderWithId(folder_A05).setTitle("Belette").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 4))); folders.add(rm.newFolderWithId(folder_A06).setTitle("Bison").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 5))); folders.add(rm.newFolderWithId(folder_A07).setTitle("Bouc").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z112).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_A08).setTitle("Boeuf").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z112).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4))); folders.add(rm.newFolderWithId(folder_A09).setTitle("Buffle").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z112).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5))); folders.add(rm.newFolderWithId(folder_A10).setTitle("Canard").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A11).setTitle("Carpe").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A12).setTitle("Castor").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A13).setTitle("Cerf").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A14).setTitle("Chacal").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A15).setTitle("Chameau").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A16).setTitle("Chat").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A17).setTitle("Chauve-souris").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 4)).setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A18).setTitle("Cheval").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 5)).setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A19).setTitle("Chevreuil").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A20).setTitle("Chien").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4)).setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_A21).setTitle("Chimpanzé").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A22).setTitle("Chouette").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A23).setTitle("Cigale").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A24).setTitle("Cochon").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 5)) .setCloseDateEntered(date(2003, 10, 31))); folders.add(rm.newFolderWithId(folder_A25).setTitle("Coq").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A26).setTitle("Corbeau").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_A27).setTitle("Coyote").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 5)) .setCloseDateEntered(date(2003, 10, 31))); folders.add(rm.newFolderWithId(folder_A42).setTitle("Crocodile").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setContainer(containerId_bac13)); folders.add(rm.newFolderWithId(folder_A43).setTitle("Dauphin").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setContainer(containerId_bac13)); folders.add(rm.newFolderWithId(folder_A44).setTitle("Dindon").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5)).setCloseDateEntered(date(2002, 10, 31)) .setActualTransferDate(date(2008, 10, 31)).setContainer(containerId_bac13)); folders.add(rm.newFolderWithId(folder_A45).setTitle("Écureuil").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setContainer(containerId_bac12)); folders.add(rm.newFolderWithId(folder_A46).setTitle("Éléphant").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31)).setContainer(containerId_bac12).setDescription("Babar")); folders.add(rm.newFolderWithId(folder_A47).setTitle("Girafe").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 11, 5)).setCloseDateEntered(date(2002, 10, 31)) .setContainer(containerId_bac12)); folders.add(rm.newFolderWithId(folder_A48).setTitle("Gorille").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31)) .setActualTransferDate(date(2004, 10, 31)).setDescription("Donkey Kong")); folders.add(rm.newFolderWithId(folder_A49).setTitle("Grenouille").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 4)).setCloseDateEntered(date(2001, 10, 31)) .setActualTransferDate(date(2004, 10, 31)).setContainer(containerId_bac11).setDescription("Greninja")); folders.add(rm.newFolderWithId(folder_A50).setTitle("Hamster").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 5)).setCloseDateEntered(date(2002, 10, 31)) .setActualTransferDate(date(2005, 10, 31)).setContainer(containerId_bac11)); folders.add(rm.newFolderWithId(folder_A51).setTitle("Hérisson").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setDescription("Sonic").setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A52).setTitle("Hibou").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setContainer(containerId_bac10).setDescription("Gibou")); folders.add(rm.newFolderWithId(folder_A53).setTitle("Hippopotame").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2005, 10, 31)) .setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A54).setTitle("Jaguar").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A55).setTitle("Kangourou").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A56).setTitle("Léopard").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 5)) .setCloseDateEntered(date(2003, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A57).setTitle("Lièvre").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac10).setDescription("Gèvre")); folders.add(rm.newFolderWithId(folder_A58).setTitle("Lion").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A59).setTitle("Loup").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 5)) .setCloseDateEntered(date(2003, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setContainer(containerId_bac10)); folders.add(rm.newFolderWithId(folder_A79).setTitle("Lynx").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setActualDepositDate(date(2011, 2, 13)).setContainer(containerId_bac05)); folders.add(rm.newFolderWithId(folder_A80).setTitle("Marmotte").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setActualDestructionDate(date(2011, 2, 13))); folders.add(rm.newFolderWithId(folder_A81).setTitle("Moineau").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2008, 10, 31)) .setActualDepositDate(date(2012, 2, 13)).setContainer(containerId_bac05)); folders.add(rm.newFolderWithId(folder_A82).setTitle("Mouton").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2005, 10, 31)) .setActualDestructionDate(date(2007, 4, 14))); folders.add(rm.newFolderWithId(folder_A83).setTitle("Orignal").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualDestructionDate(date(2007, 4, 14))); folders.add(rm.newFolderWithId(folder_A84).setTitle("Ours").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31)).setActualDestructionDate(date(2008, 4, 14))); folders.add(rm.newFolderWithId(folder_A85).setTitle("Panda").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31)) .setActualTransferDate(date(2004, 10, 31)).setActualDepositDate(date(2011, 5, 15)) .setContainer(containerId_bac05)); folders.add(rm.newFolderWithId(folder_A86).setTitle("Perroquet").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 4)).setCloseDateEntered(date(2001, 10, 31)) .setActualTransferDate(date(2004, 10, 31)).setActualDepositDate(date(2011, 5, 15)) .setContainer(containerId_bac05)); folders.add(rm.newFolderWithId(folder_A87).setTitle("Phoque").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 11, 5)).setCloseDateEntered(date(2002, 10, 31)) .setActualTransferDate(date(2005, 10, 31)).setActualDepositDate(date(2012, 5, 15)) .setContainer(containerId_bac05)); folders.add(rm.newFolderWithId(folder_A88).setTitle("Pigeon").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setActualDestructionDate(date(2011, 6, 16))); folders.add(rm.newFolderWithId(folder_A89).setTitle("Rossignol").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setActualDepositDate(date(2011, 6, 16)).setContainer(containerId_bac05)); folders.add(rm.newFolderWithId(folder_A90).setTitle("Sanglier").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 11, 5)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2005, 10, 31)) .setActualDestructionDate(date(2012, 6, 16))); folders.add(rm.newFolderWithId(folder_A91).setTitle("Serpent").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDestructionDate(date(2009, 7, 16))); folders.add(rm.newFolderWithId(folder_A92).setTitle("Singe").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDestructionDate(date(2009, 7, 16))); folders.add(rm.newFolderWithId(folder_A93).setTitle("Souris").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 5)) .setCloseDateEntered(date(2003, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setActualDestructionDate(date(2010, 7, 16))); folders.add(rm.newFolderWithId(folder_A94).setTitle("Taupe").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDepositDate(date(2009, 8, 17)).setContainer(containerId_bac04)); folders.add(rm.newFolderWithId(folder_A95).setTitle("Tigre").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDepositDate(date(2009, 8, 17)).setContainer(containerId_bac04)); folders.add(rm.newFolderWithId(folder_A96).setTitle("Zèbre").setAdministrativeUnitEntered(unitId_10a) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 7, 5)) .setCloseDateEntered(date(2003, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setActualDepositDate(date(2010, 8, 17)).setContainer(containerId_bac04)); folders.add(rm.newFolderWithId(folder_B01).setTitle("Abricot").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_B02).setTitle("Banane").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_B03).setTitle("Citron").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_Z112).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_B04).setTitle("Datte").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_B05).setTitle("Fraise").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_B06).setTitle("Framboise").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1).setCopyStatusEntered(SECONDARY) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_B07).setTitle("Kiwi").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_B08).setTitle("Mangue").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_B09).setTitle("Melon").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_B30).setTitle("Nectarine").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setContainer(containerId_bac08)); folders.add(rm.newFolderWithId(folder_B31).setTitle("Orange").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setContainer(containerId_bac09)); folders.add(rm.newFolderWithId(folder_B32).setTitle("Pêche").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1).setCopyStatusEntered(SECONDARY) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31)) .setContainer(containerId_bac08)); folders.add(rm.newFolderWithId(folder_B33).setTitle("Poire").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setContainer(containerId_bac09)); folders.add(rm.newFolderWithId(folder_B34).setTitle("Pomme").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac08)); folders.add(rm.newFolderWithId(folder_B35).setTitle("Raison").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31))); folders.add(rm.newFolderWithId(folder_B50).setTitle("Tomate").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setActualDepositDate(date(2011, 2, 13)).setContainer(containerId_bac02)); folders.add(rm.newFolderWithId(folder_B51).setTitle("Cerise").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualDestructionDate(date(2007, 4, 14))); folders.add(rm.newFolderWithId(folder_B52).setTitle("Avocat").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31)) .setActualTransferDate(date(2004, 10, 31)).setActualDestructionDate(date(2006, 5, 15))); folders.add(rm.newFolderWithId(folder_B53).setTitle("Ananas").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setActualDestructionDate(date(2011, 6, 16))); folders.add(rm.newFolderWithId(folder_B54).setTitle("Mûre").setAdministrativeUnitEntered(unitId_12b) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDestructionDate(date(2009, 7, 16))); folders.add(rm.newFolderWithId(folder_B55).setTitle("Prune").setAdministrativeUnitEntered(unitId_11b) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDepositDate(date(2009, 8, 17)).setContainer(containerId_bac03)); folders.add(rm.newFolderWithId(folder_C01).setTitle("Asperge").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_C02).setTitle("Brocoli").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_C03).setTitle("Carotte").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_Z112).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4))); folders.add(rm.newFolderWithId(folder_C04).setTitle("Céleri").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_C05).setTitle("Chou").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_C06).setTitle("Chou-fleur").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_C07).setTitle("Citrouille").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31))); folders.add(rm.newFolderWithId(folder_C08).setTitle("Concombre").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_C09).setTitle("Courge").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31))); folders.add(rm.newFolderWithId(folder_C30).setTitle("Haricot").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setContainer(containerId_bac07)); folders.add(rm.newFolderWithId(folder_C31).setTitle("Laitue").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setContainer(containerId_bac07)); folders.add(rm.newFolderWithId(folder_C32).setTitle("Maïs").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X100).setRetentionRuleEntered(ruleId_1) .setMediumTypes(rm.PA(), rm.DM()).setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31)) .setContainer(containerId_bac07)); folders.add(rm.newFolderWithId(folder_C33).setTitle("Navet").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setContainer(containerId_bac07)); folders.add(rm.newFolderWithId(folder_C34).setTitle("Oignon").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac07)); folders.add(rm.newFolderWithId(folder_C35).setTitle("Poireau").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setContainer(containerId_bac06)); folders.add(rm.newFolderWithId(folder_C50).setTitle("Pois").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2007, 10, 31)) .setActualDepositDate(date(2011, 2, 13)).setContainer(containerId_bac01)); folders.add(rm.newFolderWithId(folder_C51).setTitle("Poivron").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X110).setRetentionRuleEntered(ruleId_2) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(SECONDARY).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualDestructionDate(date(2007, 4, 14))); folders.add(rm.newFolderWithId(folder_C52).setTitle("Pomme de terre") .setAdministrativeUnitEntered(unitId_30c).setCategoryEntered(categoryId_X100) .setRetentionRuleEntered(ruleId_1).setMediumTypes(rm.PA(), rm.DM()).setDescription("Patate") .setOpenDate(date(2000, 10, 4)).setCloseDateEntered(date(2001, 10, 31)) .setActualTransferDate(date(2004, 10, 31)).setActualDestructionDate(date(2006, 5, 15))); folders.add(rm.newFolderWithId(folder_C53).setTitle("Radis").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_Z120).setRetentionRuleEntered(ruleId_3) .setMediumTypes(rm.PA(), rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 10, 4)) .setCloseDateEntered(date(2001, 10, 31)).setActualTransferDate(date(2004, 10, 31)) .setActualDestructionDate(date(2011, 6, 16))); folders.add(rm.newFolderWithId(folder_C54).setTitle("Epinard").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.PA()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 5, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDestructionDate(date(2009, 7, 16))); folders.add(rm.newFolderWithId(folder_C55).setTitle("Bette").setAdministrativeUnitEntered(unitId_30c) .setCategoryEntered(categoryId_X120).setRetentionRuleEntered(ruleId_4) .setMediumTypes(rm.DM()).setCopyStatusEntered(PRINCIPAL).setOpenDate(date(2000, 6, 4)) .setCloseDateEntered(date(2002, 10, 31)).setActualTransferDate(date(2006, 10, 31)) .setActualDepositDate(date(2009, 8, 17)).setContainer(containerId_bac01)); Map<String, List<String>> ruleDocumentTypes = new HashMap<>(); Map<String, String> documentTypesTitles = new HashMap<>(); for (Folder folder : folders) { transaction.add(folder); if (folder.getMediumTypes().contains(PA)) { String retentionRule = folder.getRetentionRuleEntered(); List<String> types = ruleDocumentTypes.get(retentionRule); if (types == null) { types = rm.getRetentionRule(retentionRule).getDocumentTypes(); ruleDocumentTypes.put(retentionRule, types); } for (String type : types) { String title = documentTypesTitles.get(type); if (title == null) { title = rm.getDocumentType(type).getTitle(); documentTypesTitles.put(type, title); } String documentTitle = folder.getTitle() + " - " + title; transaction.add(rm.newDocument().setTitle(documentTitle).setFolder(folder).setType(type)); } } } } private void setupDocumentsWithContent(Transaction transaction) { transaction.add(newDocumentWithContent(document_A19, "Chevreuil.odt").setFolder(folder_A19)); transaction.add(newDocumentWithContent(document_A49, "Grenouille.odt").setFolder(folder_A49)); transaction.add(newDocumentWithContent(document_B30, "Nectarine.odt").setFolder(folder_B30)); transaction.add(newDocumentWithContent(document_B33, "Poire.odt").setFolder(folder_B33)); transaction.add(newDocumentWithContent(document_A79, "Lynx.odt").setFolder(folder_A79)); } private Document newDocumentWithContent(String id, String resource) { User user = users.adminIn(collection); ContentVersionDataSummary version01 = upload("Minor_" + resource); Content content = contentManager.createMinor(user, resource, version01); ContentVersionDataSummary version10 = upload("Major_" + resource); content.updateContent(user, version10, true); return rm.newDocumentWithId(id).setTitle(resource).setContent(content).setType(documentTypeId_1); } private ContentVersionDataSummary upload(String resource) { InputStream inputStream = DemoTestRecords.class.getResourceAsStream("RMTestRecords_" + resource); return contentManager.upload(inputStream); } private LocalDate date(int year, int month, int day) { return new LocalDate(year, month, day); } public Category getCategory_Z() { return rm.getCategory(categoryId_Z); } public Category getCategory_Z100() { return rm.getCategory(categoryId_Z100); } public Category getCategory_Z110() { return rm.getCategory(categoryId_Z110); } public Category getCategory_Z111() { return rm.getCategory(categoryId_Z111); } public Category getCategory_Z112() { return rm.getCategory(categoryId_Z112); } public Category getCategory_Z120() { return rm.getCategory(categoryId_Z120); } public Category getCategory_Z200() { return rm.getCategory(categoryId_Z200); } public Category getCategory_ZE42() { return rm.getCategory(categoryId_ZE42); } public Category getCategory_Z999() { return rm.getCategory(categoryId_Z999); } public Category getCategory_X() { return rm.getCategory(categoryId_X); } public Category getCategory_X100() { return rm.getCategory(categoryId_X100); } public Category getCategory_X110() { return rm.getCategory(categoryId_X110); } public Category getCategory_X120() { return rm.getCategory(categoryId_X120); } public Category getCategory_X13() { return rm.getCategory(categoryId_X13); } public AdministrativeUnit getUnit10() { return rm.getAdministrativeUnit(unitId_10); } public AdministrativeUnit getUnit10a() { return rm.getAdministrativeUnit(unitId_10a); } public AdministrativeUnit getUnit11() { return rm.getAdministrativeUnit(unitId_11); } public AdministrativeUnit getUnit11b() { return rm.getAdministrativeUnit(unitId_11b); } public AdministrativeUnit getUnit12() { return rm.getAdministrativeUnit(unitId_12); } public AdministrativeUnit getUnit12b() { return rm.getAdministrativeUnit(unitId_12b); } public AdministrativeUnit getUnit12c() { return rm.getAdministrativeUnit(unitId_12c); } public AdministrativeUnit getUnit20() { return rm.getAdministrativeUnit(unitId_20); } public AdministrativeUnit getUnit20d() { return rm.getAdministrativeUnit(unitId_20d); } public AdministrativeUnit getUnit20e() { return rm.getAdministrativeUnit(unitId_20e); } public AdministrativeUnit getUnit30() { return rm.getAdministrativeUnit(unitId_30); } public AdministrativeUnit getUnit30c() { return rm.getAdministrativeUnit(unitId_30c); } public UniformSubdivision getUniformSubdivision1() { return rm.getUniformSubdivision(subdivId_1); } public UniformSubdivision getUniformSubdivision2() { return rm.getUniformSubdivision(subdivId_2); } public UniformSubdivision getUniformSubdivision3() { return rm.getUniformSubdivision(subdivId_3); } // public FilingSpace getFilingA() { // return rm.getFilingSpace(filingId_A); // } // // public FilingSpace getFilingB() { // return rm.getFilingSpace(filingId_B); // } // // public FilingSpace getFilingC() { // return rm.getFilingSpace(filingId_C); // } // // public FilingSpace getFilingD() { // return rm.getFilingSpace(filingId_D); // } // // public FilingSpace getFilingE() { // return rm.getFilingSpace(filingId_E); // } public RetentionRule getRule1() { return rm.getRetentionRule(ruleId_1); } public RetentionRule getRule2() { return rm.getRetentionRule(ruleId_2); } public RetentionRule getRule3() { return rm.getRetentionRule(ruleId_3); } public RetentionRule getRule4() { return rm.getRetentionRule(ruleId_4); } public RetentionRule getRule5() { return rm.getRetentionRule(ruleId_5); } public String getCollection() { return collection; } public RMSchemasRecordsServices getSchemas() { return rm; } public User getAdmin() { return rm.getUser(admin_userIdWithAllAccess); } public User getAlice() { return rm.getUser(alice_userWithNoWriteAccess); } public User getBob_userInAC() { return rm.getUser(bob_userInAC); } public User getCharles_userInA() { return rm.getUser(charles_userInA); } public User getDakota_managerInA_userInB() { return rm.getUser(dakota_managerInA_userInB); } public User getEdouard_managerInB_userInC() { return rm.getUser(edouard_managerInB_userInC); } public User getGandalf_managerInABC() { return rm.getUser(gandalf_managerInABC); } public User getChuckNorris() { return rm.getUser(chuckNorris); } public StorageSpace getStorageSpaceS01() { return rm.getStorageSpace(storageSpaceId_S01); } public StorageSpace getStorageSpaceS01_01() { return rm.getStorageSpace(storageSpaceId_S01_01); } public StorageSpace getStorageSpaceS01_02() { return rm.getStorageSpace(storageSpaceId_S01_02); } public StorageSpace getStorageSpaceS02() { return rm.getStorageSpace(storageSpaceId_S02); } public StorageSpace getStorageSpaceS02_01() { return rm.getStorageSpace(storageSpaceId_S02_01); } public StorageSpace getStorageSpaceS02_02() { return rm.getStorageSpace(storageSpaceId_S02_02); } public ContainerRecord getContainerBac14() { return rm.getContainerRecord(containerId_bac14); } public ContainerRecord getContainerBac13() { return rm.getContainerRecord(containerId_bac13); } public ContainerRecord getContainerBac12() { return rm.getContainerRecord(containerId_bac12); } public ContainerRecord getContainerBac11() { return rm.getContainerRecord(containerId_bac11); } public ContainerRecord getContainerBac10() { return rm.getContainerRecord(containerId_bac10); } public ContainerRecord getContainerBac09() { return rm.getContainerRecord(containerId_bac09); } public ContainerRecord getContainerBac08() { return rm.getContainerRecord(containerId_bac08); } public ContainerRecord getContainerBac07() { return rm.getContainerRecord(containerId_bac07); } public ContainerRecord getContainerBac06() { return rm.getContainerRecord(containerId_bac06); } public ContainerRecord getContainerBac05() { return rm.getContainerRecord(containerId_bac05); } public ContainerRecord getContainerBac04() { return rm.getContainerRecord(containerId_bac04); } public ContainerRecord getContainerBac03() { return rm.getContainerRecord(containerId_bac03); } public ContainerRecord getContainerBac02() { return rm.getContainerRecord(containerId_bac02); } public ContainerRecord getContainerBac01() { return rm.getContainerRecord(containerId_bac01); } public DecommissioningList getList01() { return rm.getDecommissioningList(list_01); } public DecommissioningList getList02() { return rm.getDecommissioningList(list_02); } public DecommissioningList getList03() { return rm.getDecommissioningList(list_03); } public DecommissioningList getList04() { return rm.getDecommissioningList(list_04); } public DecommissioningList getList05() { return rm.getDecommissioningList(list_05); } public DecommissioningList getList06() { return rm.getDecommissioningList(list_06); } public DecommissioningList getList07() { return rm.getDecommissioningList(list_07); } public DecommissioningList getList08() { return rm.getDecommissioningList(list_08); } public DecommissioningList getList09() { return rm.getDecommissioningList(list_09); } public DecommissioningList getList10() { return rm.getDecommissioningList(list_10); } public DecommissioningList getList11() { return rm.getDecommissioningList(list_11); } public DecommissioningList getList12() { return rm.getDecommissioningList(list_12); } public DecommissioningList getList13() { return rm.getDecommissioningList(list_13); } public DecommissioningList getList14() { return rm.getDecommissioningList(list_14); } public DecommissioningList getList15() { return rm.getDecommissioningList(list_15); } public DecommissioningList getList16() { return rm.getDecommissioningList(list_16); } public DecommissioningList getList17() { return rm.getDecommissioningList(list_17); } public DecommissioningList getList18() { return rm.getDecommissioningList(list_18); } public DecommissioningList getList19() { return rm.getDecommissioningList(list_19); } public DecommissioningList getList20() { return rm.getDecommissioningList(list_20); } public DecommissioningList getList21() { return rm.getDecommissioningList(list_21); } public DecommissioningList getList23() { return rm.getDecommissioningList(list_23); } public DecommissioningList getList24() { return rm.getDecommissioningList(list_24); } public DecommissioningList getList25() { return rm.getDecommissioningList(list_25); } public DecommissioningList getList26() { return rm.getDecommissioningList(list_26); } public DecommissioningList getList30() { return rm.getDecommissioningList(list_30); } public DecommissioningList getList31() { return rm.getDecommissioningList(list_31); } public DecommissioningList getList32() { return rm.getDecommissioningList(list_32); } public DecommissioningList getList33() { return rm.getDecommissioningList(list_33); } public DecommissioningList getList34() { return rm.getDecommissioningList(list_34); } public DecommissioningList getList35() { return rm.getDecommissioningList(list_35); } public DecommissioningList getList36() { return rm.getDecommissioningList(list_36); } public VariableRetentionPeriod getVariableRetentionPeriod_42() { return rm.getVariableRetentionPeriodWithCode("42"); } public VariableRetentionPeriod getVariableRetentionPeriod_666() { return rm.getVariableRetentionPeriodWithCode("666"); } public Folder getFolder_A01() { return rm.getFolder(folder_A01); } public Folder getFolder_A02() { return rm.getFolder(folder_A02); } public Folder getFolder_A03() { return rm.getFolder(folder_A03); } public Folder getFolder_A04() { return rm.getFolder(folder_A04); } public Folder getFolder_A05() { return rm.getFolder(folder_A05); } public Folder getFolder_A06() { return rm.getFolder(folder_A06); } public Folder getFolder_A07() { return rm.getFolder(folder_A07); } public Folder getFolder_A08() { return rm.getFolder(folder_A08); } public Folder getFolder_A09() { return rm.getFolder(folder_A09); } public Folder getFolder_A10() { return rm.getFolder(folder_A10); } public Folder getFolder_A11() { return rm.getFolder(folder_A11); } public Folder getFolder_A12() { return rm.getFolder(folder_A12); } public Folder getFolder_A13() { return rm.getFolder(folder_A13); } public Folder getFolder_A14() { return rm.getFolder(folder_A14); } public Folder getFolder_A15() { return rm.getFolder(folder_A15); } public Folder getFolder_A16() { return rm.getFolder(folder_A16); } public Folder getFolder_A17() { return rm.getFolder(folder_A17); } public Folder getFolder_A18() { return rm.getFolder(folder_A18); } public Folder getFolder_A19() { return rm.getFolder(folder_A19); } public Folder getFolder_A20() { return rm.getFolder(folder_A20); } public Folder getFolder_A21() { return rm.getFolder(folder_A21); } public Folder getFolder_A22() { return rm.getFolder(folder_A22); } public Folder getFolder_A23() { return rm.getFolder(folder_A23); } public Folder getFolder_A24() { return rm.getFolder(folder_A24); } public Folder getFolder_A25() { return rm.getFolder(folder_A25); } public Folder getFolder_A26() { return rm.getFolder(folder_A26); } public Folder getFolder_A27() { return rm.getFolder(folder_A27); } public Folder getFolder_A42() { return rm.getFolder(folder_A42); } public Folder getFolder_A43() { return rm.getFolder(folder_A43); } public Folder getFolder_A44() { return rm.getFolder(folder_A44); } public Folder getFolder_A45() { return rm.getFolder(folder_A45); } public Folder getFolder_A46() { return rm.getFolder(folder_A46); } public Folder getFolder_A47() { return rm.getFolder(folder_A47); } public Folder getFolder_A48() { return rm.getFolder(folder_A48); } public Folder getFolder_A49() { return rm.getFolder(folder_A49); } public Folder getFolder_A50() { return rm.getFolder(folder_A50); } public Folder getFolder_A51() { return rm.getFolder(folder_A51); } public Folder getFolder_A52() { return rm.getFolder(folder_A52); } public Folder getFolder_A53() { return rm.getFolder(folder_A53); } public Folder getFolder_A54() { return rm.getFolder(folder_A54); } public Folder getFolder_A55() { return rm.getFolder(folder_A55); } public Folder getFolder_A56() { return rm.getFolder(folder_A56); } public Folder getFolder_A57() { return rm.getFolder(folder_A57); } public Folder getFolder_A58() { return rm.getFolder(folder_A58); } public Folder getFolder_A59() { return rm.getFolder(folder_A59); } public Folder getFolder_A79() { return rm.getFolder(folder_A79); } public Folder getFolder_A80() { return rm.getFolder(folder_A80); } public Folder getFolder_A81() { return rm.getFolder(folder_A81); } public Folder getFolder_A82() { return rm.getFolder(folder_A82); } public Folder getFolder_A83() { return rm.getFolder(folder_A83); } public Folder getFolder_A84() { return rm.getFolder(folder_A84); } public Folder getFolder_A85() { return rm.getFolder(folder_A85); } public Folder getFolder_A86() { return rm.getFolder(folder_A86); } public Folder getFolder_A87() { return rm.getFolder(folder_A87); } public Folder getFolder_A88() { return rm.getFolder(folder_A88); } public Folder getFolder_A89() { return rm.getFolder(folder_A89); } public Folder getFolder_A90() { return rm.getFolder(folder_A90); } public Folder getFolder_A91() { return rm.getFolder(folder_A91); } public Folder getFolder_A92() { return rm.getFolder(folder_A92); } public Folder getFolder_A93() { return rm.getFolder(folder_A93); } public Folder getFolder_A94() { return rm.getFolder(folder_A94); } public Folder getFolder_A95() { return rm.getFolder(folder_A95); } public Folder getFolder_A96() { return rm.getFolder(folder_A96); } public Folder getFolder_B01() { return rm.getFolder(folder_B01); } public Folder getFolder_B02() { return rm.getFolder(folder_B02); } public Folder getFolder_B03() { return rm.getFolder(folder_B03); } public Folder getFolder_B04() { return rm.getFolder(folder_B04); } public Folder getFolder_B05() { return rm.getFolder(folder_B05); } public Folder getFolder_B06() { return rm.getFolder(folder_B06); } public Folder getFolder_B07() { return rm.getFolder(folder_B07); } public Folder getFolder_B08() { return rm.getFolder(folder_B08); } public Folder getFolder_B09() { return rm.getFolder(folder_B09); } public Folder getFolder_B30() { return rm.getFolder(folder_B30); } public Folder getFolder_B31() { return rm.getFolder(folder_B31); } public Folder getFolder_B32() { return rm.getFolder(folder_B32); } public Folder getFolder_B33() { return rm.getFolder(folder_B33); } public Folder getFolder_B34() { return rm.getFolder(folder_B34); } public Folder getFolder_B35() { return rm.getFolder(folder_B35); } public Folder getFolder_B50() { return rm.getFolder(folder_B50); } public Folder getFolder_B51() { return rm.getFolder(folder_B51); } public Folder getFolder_B52() { return rm.getFolder(folder_B52); } public Folder getFolder_B53() { return rm.getFolder(folder_B53); } public Folder getFolder_B54() { return rm.getFolder(folder_B54); } public Folder getFolder_B55() { return rm.getFolder(folder_B55); } public Folder getFolder_C01() { return rm.getFolder(folder_C01); } public Folder getFolder_C02() { return rm.getFolder(folder_C02); } public Folder getFolder_C03() { return rm.getFolder(folder_C03); } public Folder getFolder_C04() { return rm.getFolder(folder_C04); } public Folder getFolder_C05() { return rm.getFolder(folder_C05); } public Folder getFolder_C06() { return rm.getFolder(folder_C06); } public Folder getFolder_C07() { return rm.getFolder(folder_C07); } public Folder getFolder_C08() { return rm.getFolder(folder_C08); } public Folder getFolder_C09() { return rm.getFolder(folder_C09); } public Folder getFolder_C30() { return rm.getFolder(folder_C30); } public Folder getFolder_C31() { return rm.getFolder(folder_C31); } public Folder getFolder_C32() { return rm.getFolder(folder_C32); } public Folder getFolder_C33() { return rm.getFolder(folder_C33); } public Folder getFolder_C34() { return rm.getFolder(folder_C34); } public Folder getFolder_C35() { return rm.getFolder(folder_C35); } public Folder getFolder_C50() { return rm.getFolder(folder_C50); } public Folder getFolder_C51() { return rm.getFolder(folder_C51); } public Folder getFolder_C52() { return rm.getFolder(folder_C52); } public Folder getFolder_C53() { return rm.getFolder(folder_C53); } public Folder getFolder_C54() { return rm.getFolder(folder_C54); } public Folder getFolder_C55() { return rm.getFolder(folder_C55); } public Document getDocumentWithContent_A19() { return rm.getDocument(document_A19); } public Document getDocumentWithContent_A49() { return rm.getDocument(document_A49); } public Document getDocumentWithContent_B30() { return rm.getDocument(document_B30); } public Document getDocumentWithContent_B33() { return rm.getDocument(document_B33); } public Document getDocumentWithContent_A79() { return rm.getDocument(document_A79); } public Users getUsers() { return users; } public Group getLegends() { return users.legendsIn(collection); } public Group getHeroes() { return users.heroesIn(collection); } public String[] folder_A(int from, int to) { List<String> ids = new ArrayList<>(); for (int i = from; i <= to; i++) { String folderId; if (i < 10) { folderId = "A0" + i; } else { folderId = "A" + i; } ids.add(folderId); } return ids.toArray(new String[0]); } public String[] decommissionnableContractsInFolder_A(int from, int to) { List<String> ids = new ArrayList<>(); for (int i = from; i <= to; i++) { String folderId; if (i < 10) { folderId = "A0" + i; } else { folderId = "A" + i; } ids.add(folderId + "_paperContractWithDifferentCopy"); ids.add(folderId + "_numericContractWithDifferentCopy"); } return ids.toArray(new String[0]); } public String[] decommissionnableProcesInFolder_A(int from, int to) { List<String> ids = new ArrayList<>(); for (int i = from; i <= to; i++) { String folderId; if (i < 10) { folderId = "A0" + i; } else { folderId = "A" + i; } ids.add(folderId + "_paperProcesWithDifferentCopy"); ids.add(folderId + "_numericProcesWithDifferentCopy"); } return ids.toArray(new String[0]); } public List<String> folders(String idsStr) { List<String> ids = new ArrayList<>(); for (String part : idsStr.split(",")) { part = part.trim(); if (part.contains("-")) { String fromStr = part.split("-")[0]; String toStr = part.split("-")[1]; String filingSpace = fromStr.substring(0, 1); int from = Integer.valueOf(fromStr.substring(1)); int to = Integer.valueOf(toStr.substring(1)); for (int i = from; i <= to; i++) { if (i < 10) { ids.add(filingSpace + "0" + i); } else { ids.add(filingSpace + i); } } } else { ids.add(part); } } return ids; } public FolderType folderTypeEmploye() { return rm.getFolderTypeWithCode("employe"); } public FolderType folderTypeMeeting() { return rm.getFolderTypeWithCode("meetingFolder"); } public FolderType folderTypeOther() { return rm.getFolderTypeWithCode("other"); } public DocumentType documentTypeForm() { return rm.getDocumentTypeByCode("form"); } public DocumentType documentTypeReport() { return rm.getDocumentTypeByCode("report"); } public DocumentType documentTypeOther() { return rm.getDocumentTypeByCode("other"); } public TaskType taskTypeForm() { return tasks.getTaskTypeByCode("criticalTask"); } public TaskType taskTypeReport() { return tasks.getTaskTypeByCode("communicationTask"); } public TaskType taskTypeOther() { return tasks.getTaskTypeByCode("other"); } public Folder newFolderWithValues() { return newFolderWithValuesAndId(null); } public Folder newFolderWithValuesAndId(String id) { Folder folder = rm.newFolderWithId(id); folder.setAdministrativeUnitEntered(unitId_11b); folder.setCategoryEntered(categoryId_X); folder.setRetentionRuleEntered(ruleId_2); folder.setCopyStatusEntered(CopyType.PRINCIPAL); folder.setTitle(id == null ? "A folder" : ("Folder " + id)); folder.setOpenDate(LocalDate.now()); return folder; } public Folder newChildFolderIn(Folder parent) { return newChildFolderWithIdIn(null, parent); } public Folder newChildFolderWithIdIn(String id, Folder parent) { Folder folder = rm.newFolderWithId(id); folder.setParentFolder(parent); folder.setTitle(id == null ? "A child folder" : ("child folder " + id)); folder.setOpenDate(LocalDate.now()); return folder; } public Document newDocumentIn(Folder parent) { return newDocumentWithIdIn(null, parent); } public Document newDocumentWithIdIn(String id, Folder parent) { Document document = rm.newDocumentWithId(id); document.setFolder(parent); document.setTitle(id == null ? "A document" : ("document " + id)); return document; } }