blob: 2daef975488abbfc5190c71806120db112c89481 [file] [log] [blame]
package org.apache.wicket.bean.validation;
import java.lang.annotation.Annotation;
import jakarta.validation.constraints.Size;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.form.FormComponent;
/**
* An object that can modify a component's markup tag during render based on values of a constraint
* annotation. An example would be a modifier that adds the {@code maxlen} attribute to the tag
* given a {@link Size} annotation.
*
* @author igor
*
*/
@FunctionalInterface
public interface ITagModifier<T extends Annotation>
{
/**
* Modify the tag
*
* @param component
* component the tag belongs to
* @param tag
* markup tag to be modified
* @param annotation
* constraint annotation
*/
void modify(FormComponent<?> component, ComponentTag tag, T annotation);
}