package com.constellio.app.modules.rm.model;
import java.util.List;
import com.constellio.app.modules.rm.model.enums.CopyType;
import com.constellio.app.modules.rm.model.enums.DisposalType;
import com.constellio.data.dao.services.idGenerator.UUIDV1Generator;
import com.constellio.model.utils.EnumWithSmallCodeUtils;
public class CopyRetentionRuleBuilderWithDefinedIds extends CopyRetentionRuleBuilder {
public CopyRetentionRuleBuilderWithDefinedIds() {
super(new UUIDV1Generator());
}
@Override
public CopyRetentionRule newRetentionRule(CopyType copyType, List<String> contentTypesCodes, String value) {
String[] parts = (" " + value + " ").split("-");
CopyRetentionRule copyRetentionRule = new CopyRetentionRule();
copyRetentionRule.setId(copyType.getCode() + ":" + value + ":" + contentTypesCodes.toString());
copyRetentionRule.setMediumTypeIds(contentTypesCodes);
copyRetentionRule.setCopyType(copyType);
String part0 = parts[0].trim();
String part1 = parts[1].trim();
String part2 = parts[2].trim();
if (!part0.isEmpty() && !part0.equals("0")) {
copyRetentionRule.setActiveRetentionPeriod(new RetentionPeriod(Integer.valueOf(part0)));
}
if (!part1.isEmpty() && !part1.equals("0")) {
copyRetentionRule.setSemiActiveRetentionPeriod(new RetentionPeriod(Integer.valueOf(part1)));
}
if (!part2.isEmpty()) {
copyRetentionRule.setInactiveDisposalType((DisposalType) EnumWithSmallCodeUtils.toEnum(DisposalType.class, part2));
}
return copyRetentionRule;
}
}