All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zkoss.bind.ValidationContext Maven / Gradle / Ivy

There is a newer version: 10.0.0-jakarta
Show newest version
/* ValidationContext.java

	Purpose:
		
	Description:
		
	History:
		2011/9/29 Created by Dennis Chen

Copyright (C) 2011 Potix Corporation. All Rights Reserved.
 */
package org.zkoss.bind;

import java.util.Map;

/**
 * The context for validation 
 * @author dennis
 * @since 6.0.0
 */
public interface ValidationContext {

	/** 
	 * Checks status of validation context valid or not, it is a global status of same command, 
	 * any validator of this validation phase call {@link #setInvalid()} will set this false. 
	 * @return true of result is valid, false if any {@link Validator} called {@link #setInvalid()}. Note, default is true. 
	 */
	boolean isValid();

	/** 
	 * Checks status of local validation context valid or not, it only relates to one validator. 
	 * @return true of result is valid, false if this {@link Validator} called {@link #setInvalid()}, default is true.
	 * @since 6.5.3 
	 */
	boolean isLocalValid();

	/**
	 * set invalid
	 */
	void setInvalid();

	/**
	 * get the command that trigger the validation
	 * @return the command, null if a prompt-save-binding
	 */
	String getCommand();

	/**
	 * get dependent properties that need to be validated.
	 * you usually use this method to get value of other properties to do complex validation or
	 * a form validation
	 * Notice that if the property is under a collection, you would see "$each", which represents "each"
	 * @return the properties map.
	 */
	Map getProperties();

	/**
	 * get dependent properties by the property name.
	 * you usually use this method to get a value of other properties to do complex validation or
	 * a form validation
	 * Notice that if the property is under a collection, you would see "$each", which represents "each"
	 * @param name the property name
	 * @return the properties array
	 */
	Property[] getProperties(String name);

	/**
	 * get dependent properties by a base object.
	 * this method returns a Map (key is the property name) of properties that have same base object. 
	 * It is useful in the form validation case to get all dependent property that related to a form.
	 * For example in a validator of a form, 
{@code
	 * Map beanProps = ctx.getProperties(ctx.getProperty().getBase());
	 * Map formProps = ctx.getProperties(ctx.getProperty().getValue());
	 * }
* Notice that if the property is under a collection, you would see "$each", which represents "each" * @param base the base object of properties * @return a Map of properties that has same base object. * @since 6.0.1 */ Map getProperties(Object base); /** * Returns validator arg value of the given key * This is a shortcut of getBindContext().getValidatorArg() * @param key the key to the value. * @return value of validator arg of the given key * @since 6.0.1 */ public Object getValidatorArg(String key); /** * get the main property that need to be validated. * Notice that if the property is under a collection, you would see "$each", which represents "each" * @return the main property. */ Property getProperty(); /** * @return current bind context */ BindContext getBindContext(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy