package org.richfaces.component.behavior; import java.util.Collection; import javax.faces.component.behavior.ClientBehavior; import javax.faces.component.behavior.ClientBehaviorContext; import javax.faces.convert.Converter; import org.richfaces.validator.ConverterDescriptor; import org.richfaces.validator.ValidatorDescriptor; /** * <p class="changed_added_4_0"> * Interface for JSF Behavior that creates scripts for client-side validation * </p> * * @author asmirnov@exadel.com * */ public interface ClientValidatorBehavior extends ClientBehavior { String BEHAVIOR_TYPE = "org.richfaces.behavior.ClientValidator"; /** * <p class="changed_added_4_0"> * Get JavaScript code for AJAX request. * </p> * * @param context */ String getAjaxScript(ClientBehaviorContext context); /** * <p class="changed_added_4_0"> * Look up for converter associated with target UIInput * </p> * * @param context * @return {@link Converter} instance or null if conversion not required. */ ConverterDescriptor getConverter(ClientBehaviorContext context) throws ConverterNotFoundException; /** * <p class="changed_added_4_0"> * </p> * * @param context */ Collection<ValidatorDescriptor> getValidators(ClientBehaviorContext context); /** * <p class="changed_added_4_0"> * Returns array of classes that represents JSR-303 validation groups. * </p> * */ Class<?>[] getGroups(); void setGroups(Class<?>... groups); boolean isDisabled(); boolean isImmediateSet(); boolean isImmediate(); String getOninvalid(); String getOnvalid(); }