01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.forms.validation;
18:
19: import org.apache.cocoon.forms.formmodel.Widget;
20:
21: /**
22: * Validates a widget. Validation can mean lots of different things depending on the
23: * actual widget and validator type, e.g. :
24: * <li>
25: * <ul>on fields, a validator will validate the field's value,</ul>
26: * <ul>on repeaters, a validator can perform inter-row validation</ul>
27: * </li>
28: * <p>
29: * A validator returns a boolean result indicating if validation was successful or not.
30: * If not successful, the validator <code>must<code> set a {@link org.apache.cocoon.forms.validation.ValidationError}
31: * on the validated widget or one of its children.
32: * <p>
33: * <em>Note:</em> It is important (although it cannot be explicitely forbidden) that a validator
34: * does not consider widgets that are not the validated widgets itself or its children, as this
35: * may lead to inconsistencies in the form model because of the way form validation occurs (depth-first
36: * traversal of the widget tree).
37: *
38: * @version $Id: WidgetValidator.java 449149 2006-09-23 03:58:05Z crossley $
39: */
40: public interface WidgetValidator {
41:
42: /**
43: * Validate a widget.
44: *
45: * @param widget the widget to validate
46: * @return <code>true</code> if validation was successful. If not, the validator must have set
47: * a {@link ValidationError} on the widget or one of its children.
48: */
49: boolean validate(Widget widget);
50: }
|