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.woody.validation;
18:
19: import org.apache.cocoon.woody.FormContext;
20: import org.apache.cocoon.woody.formmodel.Widget;
21:
22: /**
23: * Validates a widget. Validation can mean lots of different things depending on the
24: * actual widget and validator type, e.g. :
25: * <li>
26: * <ul>on fields, a validator will validate the field's value,</ul>
27: * <ul>on repeaters, a validator can perform inter-row validation</ul>
28: * </li>
29: * <p>
30: * A validator returns a boolean result indicating if validation was successful or not.
31: * If not successful, the validator <code>must<code> set a {@link org.apache.cocoon.woody.validation.ValidationError}
32: * on the validated widget or one of its children.
33: * <p>
34: * <em>Note:</em> It is important (although it cannot be explicitely forbidden) that a validator
35: * does not consider widgets that are not the validated widgets itself or its children, as this
36: * may lead to inconsistencies in the form model because of the way form validation occurs (depth-first
37: * traversal of the widget tree).
38: *
39: * @author <a href="http://www.apache.org/~sylvain/">Sylvain Wallez</a>
40: * @version CVS $Id: WidgetValidator.java 433543 2006-08-22 06:22:54Z crossley $
41: */
42: public interface WidgetValidator {
43:
44: /**
45: * Validate a widget.
46: *
47: * @param widget the widget to validate
48: * @param context the form context
49: * @return <code>true</code> if validation was successful. If not, the validator must have set
50: * a {@link ValidationError} on the widget or one of its children.
51: */
52: boolean validate(Widget widget, FormContext context);
53: }
|