package com.constellio.sdk.load.script.preparators; import java.util.ArrayList; import java.util.List; import com.constellio.app.modules.rm.services.RMSchemasRecordsServices; import com.constellio.app.modules.rm.wrappers.AdministrativeUnit; import com.constellio.app.modules.rm.wrappers.Folder; import com.constellio.model.entities.records.Record; import com.constellio.model.entities.records.Transaction; import com.constellio.model.entities.records.wrappers.RecordWrapper; import com.constellio.model.entities.security.Authorization; import com.constellio.model.entities.security.global.AuthorizationAddRequest; import com.constellio.sdk.load.script.PrincipalTaxonomyPreparator; import com.constellio.sdk.load.script.utils.LinkableIdsList; public class AdministrativeUnitTaxonomyPreparator extends BaseTaxonomyPreparator implements PrincipalTaxonomyPreparator { LinkableIdsList ids = new LinkableIdsList(); @Override protected RecordWrapper newConceptWithCodeAndParent(RMSchemasRecordsServices rm, String code, RecordWrapper parent) { String title = "Administrative unit '" + code + "'"; return ids.attach(rm.newAdministrativeUnit().setCode(code).setTitle(title).setParent((AdministrativeUnit) parent)); } @Override public void init(RMSchemasRecordsServices rm, Transaction transaction) { } @Override public void attach(RMSchemasRecordsServices rm, Record record) { if (record.getSchemaCode().startsWith(Folder.SCHEMA_TYPE)) { rm.wrapFolder(record).setAdministrativeUnitEntered(ids.next()); } } @Override public List<AuthorizationAddRequest> setupAuthorizations(RMSchemasRecordsServices rm, RecordWrapper unit, LinkableIdsList users, LinkableIdsList groups) { List<AuthorizationAddRequest> authorizations = new ArrayList<>(); authorizations.add(rm.newAuthorization().forPrincipalsIds(groups.next()).on(unit).givingReadWriteAccess()); return authorizations; } }