01: /*
02: * The contents of this file are subject to the
03: * Mozilla Public License Version 1.1 (the "License");
04: * you may not use this file except in compliance with the License.
05: * You may obtain a copy of the License at http://www.mozilla.org/MPL/
06: *
07: * Software distributed under the License is distributed on an "AS IS"
08: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
09: * See the License for the specific language governing rights and
10: * limitations under the License.
11: *
12: * The Initial Developer of the Original Code is Simulacra Media Ltd.
13: * Portions created by Simulacra Media Ltd are Copyright (C) Simulacra Media Ltd, 2004.
14: *
15: * All Rights Reserved.
16: *
17: * Contributor(s):
18: */
19: package org.openharmonise.vfs.metadata.range;
20:
21: import java.util.*;
22:
23: import org.openharmonise.vfs.metadata.*;
24:
25: /**
26: * AbstractRange is a base class for implementors of the {@link org.openharmonise.vfs.metadata.Range}
27: * interface.
28: *
29: * @author Matthew Large
30: * @version $Revision: 1.1 $
31: *
32: */
33: public abstract class AbstractRange {
34:
35: /**
36: *
37: */
38: public AbstractRange() {
39: super ();
40: }
41:
42: /**
43: * Validates a list of values using the restrictions described by this
44: * range.
45: *
46: * @param aValues
47: * @return Validation result
48: *
49: * @see Range#validate(List)
50: */
51: public ValidationResult validate(List aValues) {
52: ValidationResult finalResult = new ValidationResult();
53:
54: Iterator itor = aValues.iterator();
55:
56: while (itor.hasNext()) {
57: ValidationResult result = this
58: .validate(((ValueInstance) itor.next()));
59: finalResult.addNestedValidation(result);
60: if (!result.isValid()) {
61: finalResult.setValid(false);
62: }
63: }
64:
65: return finalResult;
66: }
67:
68: /**
69: * Validates a single value using the restrictions described by this
70: * range.
71: *
72: * @param val Value
73: * @return Validation result
74: *
75: * @see Range#validate(ValueInstance)
76: */
77: public abstract ValidationResult validate(ValueInstance value);
78:
79: }
|