package org.activityinfo.legacy.shared.adapter.bindings; import org.activityinfo.model.form.FormInstance; import org.activityinfo.legacy.shared.model.DTO; import java.util.Map; /** * Two-way bridge between FormInstances and Legacy objects */ public interface FieldBinding<T extends DTO> { /** * Updates a FormInstance from a Legacy Model * * @param instance FormInstance * @param model a Legacy Model */ public void updateInstanceFromModel(FormInstance instance, T model); /** * Updates the toChangePropertyMap * * @param instance * @param changeMap a name -> property value map used to update the model */ public void populateChangeMap(FormInstance instance, Map<String, Object> changeMap); }