package com.constellio.app.modules.rm.model.calculators.folder;
import static java.util.Arrays.asList;
import java.util.List;
import com.constellio.app.modules.rm.wrappers.Folder;
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.calculators.dependencies.ReferenceDependency;
import com.constellio.model.entities.schemas.MetadataValueType;
public class FolderAppliedUniformSubdivisionCalculator implements MetadataValueCalculator<String> {
ReferenceDependency<String> parentUniformSubdivisionParam = ReferenceDependency
.toAReference(Folder.PARENT_FOLDER, Folder.UNIFORM_SUBDIVISION);
LocalDependency<String> enteredUniformSubdivisionParam = LocalDependency.toAReference(Folder.UNIFORM_SUBDIVISION_ENTERED);
@Override
public String calculate(CalculatorParameters parameters) {
String parentUniformSubdivision = parameters.get(parentUniformSubdivisionParam);
String enteredUniformSubdivision = parameters.get(enteredUniformSubdivisionParam);
if (parentUniformSubdivision != null) {
return parentUniformSubdivision;
} else {
return enteredUniformSubdivision;
}
}
@Override
public String getDefaultValue() {
return null;
}
@Override
public MetadataValueType getReturnType() {
return MetadataValueType.REFERENCE;
}
@Override
public boolean isMultiValue() {
return false;
}
@Override
public List<? extends Dependency> getDependencies() {
return asList(parentUniformSubdivisionParam, enteredUniformSubdivisionParam);
}
}