001 /*
002 * The Spring Framework is published under the terms of the Apache Software
003 * License.
004 */
005 package org.springframework.rules.constraint.property;
006
007 import org.springframework.rules.constraint.Constraint;
008
009 /**
010 * A predicate that constrains a bean property in some way.
011 *
012 * @author Keith Donald
013 */
014 public interface PropertyConstraint extends Constraint {
015
016 /**
017 * Returns the constrained property name.
018 *
019 * @return The property name
020 */
021 public String getPropertyName();
022
023 /**
024 * Returns <code>true</code> if this property constraint is dependent on
025 * the provided propertyName for test evaluation; that is, it should be retested
026 * when propertyName changes.
027 * @param propertyName
028 * @return true or false
029 */
030 public boolean isDependentOn(String propertyName);
031
032 /**
033 * Does this property constraint effect more than one property?
034 * @return true if yes, false otherwise
035 */
036 public boolean isCompoundRule();
037 }