pl.fhframework.binding.ModelBinding Maven / Gradle / Ivy
package pl.fhframework.binding;
import lombok.Setter;
import pl.fhframework.BindingResult;
import pl.fhframework.annotations.RepeaterTraversable;
import pl.fhframework.model.dto.ElementChanges;
import pl.fhframework.model.forms.Component;
import pl.fhframework.model.forms.FormElement;
import java.util.Objects;
import java.util.Optional;
import lombok.Getter;
@RepeaterTraversable
public abstract class ModelBinding {
/**
* Full/original expression used
*/
@Getter
@Setter
protected String bindingExpression;
public ModelBinding(String bindingExpression) {
this.bindingExpression = bindingExpression;
}
public abstract boolean canChange();
public void setValue(V value) {
setValue(value, Optional.empty());
}
public abstract void setValue(V value, Optional formatter);
public abstract BindingResult getBindingResult();
public abstract ModelBinding clone(Component newOwner);
public T resolveValueAndAddChanges(FormElement formElement, ElementChanges elementChanges, T oldValue, String attributeName) {
BindingResult