package org.activityinfo.model.expr.eval; import org.activityinfo.model.type.FieldType; import org.activityinfo.model.type.FieldValue; import org.activityinfo.model.type.number.Quantity; import org.activityinfo.model.type.number.QuantityType; /** * Wraps a QuantityType field reader, replacing missing values with zeros to support * legacy behavior. */ public class MissingToZeroReader<InstanceT> implements FieldReader<InstanceT> { private final FieldReader<InstanceT> reader; private final QuantityType type; public MissingToZeroReader(FieldReader<InstanceT> reader) { this.reader = reader; this.type = (QuantityType) reader.getType(); } @Override public FieldValue readField(InstanceT record) { return new Quantity(0, type.getUnits()); } @Override public FieldType getType() { return type; } }