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;
20:
21: import java.util.List;
22:
23: import org.w3c.dom.Element;
24:
25: /**
26: * A range describes the valid values that a property instance can contain.
27: * The Range interface is implemented to provide specific data handling for
28: * a type of property. Ranges are stored as metadata on the
29: * {@link org.openharmonise.vfs.VirtualFile}s for {@link Property} objects.
30: *
31: * @author Matthew Large
32: * @version $Revision: 1.1 $
33: *
34: */
35: public interface Range {
36:
37: /**
38: * Populates this range from a XML element.
39: *
40: * @param elRange Root element of range XML
41: */
42: public void instantiate(Element elRange);
43:
44: /**
45: * Validates a single value using the restrictions described by this
46: * range.
47: *
48: * @param val Value
49: * @return Validation result
50: */
51: public ValidationResult validate(ValueInstance val);
52:
53: /**
54: * Validates a list of values using the restrictions described by this
55: * range.
56: *
57: * @param aValues
58: * @return Validation result
59: */
60: public ValidationResult validate(List aValues);
61:
62: }
|