/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: ValidatedConstrained.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.site; import java.util.Collection; import java.util.List; /** * This interface extends the Validated interface and provides additional * methods that are related to beans that are constrained with {@link * ConstrainedProperty} constraints. * <p>One notable addition is the capability to handle {@link ValidationGroup}s. * * @author Geert Bevin (gbevin[remove] at uwyn dot com) * @version $Revision: 3918 $ * @see Validated * @see Constrained * @see ConstrainedProperty * @see ValidationGroup * @since 1.4 */ public interface ValidatedConstrained<P extends ConstrainedProperty> extends Validated { /** * Adds a new validation group. * * @param name the name of the validation group that needs to be created * and added * @return the newly created <code>ValidationGroup</code> * @since 1.4 */ public ValidationGroup<P> addGroup(String name); /** * Focuses on one particular validation group, showing only the * <code>ValidationError</code>s that were generated by its * <code>ValidationRule</code>s. * * @param name the name of the validation group that will be focused * @since 1.4 */ public void focusGroup(String name); /** * Removed all the <code>ValidationError</code>s of a particular * validation group. * * @param name the name of the validation group that will be focused * @since 1.4 */ public void resetGroup(String name); /** * Retrieves all validation groups. * * @return the collection of all registered validation groups * @since 1.4 */ public Collection<ValidationGroup<P>> getGroups(); /** * Retrieve a particular validation group. * * @param name the name of the validation group that will be retrieved * @return the requested <code>ValidationGroup</code>; or * <p><code>null</code> if no such validation group exists * @since 1.4 */ public ValidationGroup<P> getGroup(String name); /** * Validate the <code>ValidationRule</code>s of a particular validation * group. * * @param name the name of the validation group that will be retrieved * @return <code>true</code> if no validation errors were generated; or * <p><code>false</code> otherwise * @since 1.4 */ public boolean validateGroup(String name); /** * Validate the <code>ValidationRule</code>s of a particular validation * group and also validates the entire bean within the provided * <code>ValidationContext</code> * * @param name the name of the validation group * @param context the <code>ValidationContext</code> in which this bean * instance will be additionally validated * @return <code>true</code> if no validation errors were generated; or * <p><code>false</code> otherwise * @since 1.6 */ public boolean validateGroup(String name, ValidationContext context); /** * Adds the validation rules that are related to a particular {@link * ConstrainedProperty}. * <p>If the rules of this property name have already been added before * through another <code>ConstrainedProperty</code> instance, its existing * <code>ValidationRule</code>s will be erased and the previous * constraints will be merged into the new * <code>ConstrainedProperty</code> before adding its validation rules. * * @param constrainedProperty the ConstrainedProperty that will be * inspected * @return the list of generated {@link ValidationRule}s * @since 1.4 */ public List<PropertyValidationRule> addConstrainedPropertyRules(P constrainedProperty); /** * Generates the validation rules that are related to a particular {@link * ConstrainedProperty}. * * @param constrainedProperty the ConstrainedProperty that will be * inspected * @return the list of generated {@link ValidationRule}s * @since 1.4 */ public List<PropertyValidationRule> generateConstrainedPropertyRules(P constrainedProperty); /** * Returns the collection of error messages that occurred during the * loading of the content of a certain property. * * @param propertyName the name of the property whose loading errors * should be obtained * @return null if no errors occurred during the loading of the content of * the provided property or if the property doesn't exist; or * <p>the requested collection of error messages * @since 1.4 */ public Collection<String> getLoadingErrors(String propertyName); }