setValueAtIndex method
void
setValueAtIndex(
- int index,
- Object? value, {
- int? subfieldInfo,
- String? subfieldName,
})
Implementation
void setValueAtIndex(
int index,
Object? value, {
int? subfieldInfo,
String? subfieldName,
}) {
Subfield? subfield;
if (subfieldInfo != null) {
subfield = getSubfieldByIndex(subfieldInfo);
} else if (subfieldName != null) {
subfield = getSubfieldByName(subfieldName);
}
double s, o;
if (subfield == null) {
s = scale;
o = offset;
} else {
s = subfield.scale;
o = subfield.offset;
}
if (value is num) {
if (s != 1.0 || o != 0.0) {
// Apply inverse scale and offset
value = (value.toDouble() + o) * s;
}
// Round if it's an integer type
int baseTypeNum = type & Fit.baseTypeNumMask;
if (Fit.baseType[baseTypeNum].isInteger) {
value = value.round();
}
}
setRawValue(index, value);
}