package com.constellio.app.modules.rm.model.calculators.decommissioningList; import static java.util.Arrays.asList; import java.util.ArrayList; import java.util.List; import com.constellio.app.modules.rm.wrappers.DecommissioningList; import com.constellio.app.modules.rm.wrappers.structures.DecomListContainerDetail; 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 DecomListContainersCalculator implements MetadataValueCalculator<List<String>> { LocalDependency<List<DecomListContainerDetail>> containerDetailsParam = LocalDependency .toAStructure(DecommissioningList.CONTAINER_DETAILS).whichIsMultivalue(); @Override public List<String> calculate(CalculatorParameters parameters) { List<String> ids = new ArrayList<>(); List<DecomListContainerDetail> details = parameters.get(containerDetailsParam); for (DecomListContainerDetail detail : details) { if (detail != null) { ids.add(detail.getContainerRecordId()); } } return ids; } @Override public List<String> getDefaultValue() { return new ArrayList<>(); } @Override public MetadataValueType getReturnType() { return MetadataValueType.REFERENCE; } @Override public boolean isMultiValue() { return true; } @Override public List<? extends Dependency> getDependencies() { return asList(containerDetailsParam); } }