package org.apache.wicket.bean.validation; import org.apache.wicket.markup.html.form.FormComponent; import org.apache.wicket.model.IModel; import org.apache.wicket.model.IPropertyReflectionAwareModel; import org.apache.wicket.model.IWrapModel; /** * @author alexander.v.morozov */ final class ValidationModelResolver { /** * Lookup for property-aware model, attached to certain form component. * * @param component * form component * * @return property-aware model, extracted from supplied component or <code>null</code> */ public static IPropertyReflectionAwareModel<?> resolvePropertyModelFrom(FormComponent<?> component) { IModel<?> model = component.getModel(); while (true) { if (model == null) { return null; } if (model instanceof IPropertyReflectionAwareModel) { return (IPropertyReflectionAwareModel<?>) model; } if (model instanceof IWrapModel<?>) { model = ((IWrapModel<?>)model).getWrappedModel(); continue; } break; // not model found } return null; } private ValidationModelResolver() { // nop } }