package com.constellio.app.modules.rm.model.calculators.decommissioningList;
import java.util.Arrays;
import java.util.List;
import org.joda.time.LocalDate;
import com.constellio.app.modules.rm.model.enums.DecomListStatus;
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 DecomListStatusCalculator implements MetadataValueCalculator<DecomListStatus> {
LocalDependency<LocalDate> processedDateParam = LocalDependency.toADate(DecommissioningList.PROCESSING_DATE);
@Override
public DecomListStatus calculate(CalculatorParameters parameters) {
LocalDate processedDate = parameters.get(processedDateParam);
return processedDate == null ? DecomListStatus.GENERATED : DecomListStatus.PROCESSED;
}
@Override
public DecomListStatus getDefaultValue() {
return null;
}
@Override
public MetadataValueType getReturnType() {
return MetadataValueType.ENUM;
}
@Override
public boolean isMultiValue() {
return false;
}
@Override
public List<? extends Dependency> getDependencies() {
return Arrays.asList(processedDateParam);
}
}