-static void
-measurement_level_trns_run (struct measurement_level_trns *mlt,
- const struct ccase *c)
-{
- for (size_t i = 0; i < mlt->n_vars; )
- {
- struct measurement_level_var *mlv = &mlt->vars[i];
- double value = case_num (c, mlv->var);
- enum measure m = add_measurement_level_trns_proc__ (mlv, value);
- if (m != MEASURE_UNKNOWN)
- {
- var_set_measure (mlv->var, m);
-
- add_measurement_level_var_uninit (mlv);
- *mlv = mlt->vars[--mlt->n_vars];
- }
- else
- i++;
- }
-}
-
-static enum trns_result
-add_measurement_level_trns_proc (void *mlt_, struct ccase **c,
- casenumber case_nr UNUSED)
-{
- struct measurement_level_trns *mlt = mlt_;
- measurement_level_trns_run (mlt, *c);
- return TRNS_CONTINUE;
-}
-
-static void
-add_measurement_level_trns_free__ (struct measurement_level_trns *mlt)
-{
- for (size_t i = 0; i < mlt->n_vars; i++)
- {
- struct measurement_level_var *mlv = &mlt->vars[i];
- var_set_measure (mlv->var, add_measurement_level_var_interpret (mlv));
- add_measurement_level_var_uninit (mlv);
- }
- free (mlt->vars);
- free (mlt);
-}
-
-static void
-measurement_level_trns_commit (struct measurement_level_trns *mlt)
-{
- for (size_t i = 0; i < mlt->n_vars; i++)
- {
- struct measurement_level_var *mlv = &mlt->vars[i];
- var_set_measure (mlv->var, add_measurement_level_var_interpret (mlv));
- }
-}
-
-static bool
-add_measurement_level_trns_free (void *mlt_)
-{
- struct measurement_level_trns *mlt = mlt_;
- measurement_level_trns_commit (mlt);
- add_measurement_level_trns_free__ (mlt);
- return true;
-}
-
-static const struct trns_class add_measurement_level_trns_class = {
- .name = "add measurement level",
- .execute = add_measurement_level_trns_proc,
- .destroy = add_measurement_level_trns_free,
-};