package com.constellio.app.modules.rm.model.calculators.decommissioningList; import static java.util.Arrays.asList; import java.util.List; import com.constellio.app.modules.rm.model.CopyRetentionRule; import com.constellio.app.modules.rm.model.enums.CopyType; import com.constellio.app.modules.rm.wrappers.DecommissioningList; import com.constellio.model.entities.calculators.CalculatorParameters; import com.constellio.model.entities.calculators.MetadataValueCalculator; import com.constellio.model.entities.calculators.dependencies.Dependency; import com.constellio.model.entities.calculators.dependencies.LocalDependency; import com.constellio.model.entities.schemas.MetadataValueType; public class DecomListIsUniform implements MetadataValueCalculator<Boolean> { LocalDependency<CopyRetentionRule> uniformCopyRuleParam = LocalDependency.toAStructure(DecommissioningList.UNIFORM_COPY_RULE); LocalDependency<CopyType> uniformCopyTypeParam = LocalDependency.toAnEnum(DecommissioningList.UNIFORM_COPY_TYPE); LocalDependency<String> uniformRuleParam = LocalDependency.toAReference(DecommissioningList.UNIFORM_RULE); LocalDependency<String> uniformCategoryParam = LocalDependency.toAReference(DecommissioningList.UNIFORM_CATEGORY); @Override public Boolean calculate(CalculatorParameters parameters) { CopyRetentionRule uniformCopyRule = parameters.get(uniformCopyRuleParam); CopyType uniformCopyType = parameters.get(uniformCopyTypeParam); String uniformRule = parameters.get(uniformRuleParam); String uniformCategory = parameters.get(uniformCategoryParam); if (uniformCopyRule != null && uniformCopyType != null && uniformRule != null && uniformCategory != null) { return true; } else { return false; } //returne true si tous les parametres sont non-nulls, retourne false sinon } @Override public Boolean getDefaultValue() { return false; } @Override public MetadataValueType getReturnType() { return MetadataValueType.BOOLEAN; } @Override public boolean isMultiValue() { return false; } @Override public List<? extends Dependency> getDependencies() { return asList(uniformCopyRuleParam, uniformCopyTypeParam, uniformRuleParam, uniformCategoryParam); } }