Source code: org/apache/hivemind/schema/Rule.java
1 // Copyright 2004, 2005 The Apache Software Foundation
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 package org.apache.hivemind.schema;
16
17 import org.apache.hivemind.Element;
18 import org.apache.hivemind.Locatable;
19
20 /**
21 * Rules associated with {@link org.apache.hivemind.schema.Schema} elements.
22 * As the {@link org.apache.hivemind.schema.SchemaProcessor}
23 * works through the {@link org.apache.hivemind.Element} hiearchy, it invokes
24 * methods on the Rules.
25 *
26 * @author Howard M. Lewis Ship
27 */
28 public interface Rule extends Locatable
29 {
30 /**
31 * Begin rules are fired first, in order. All rules are invoked, and then the
32 * SchemaProcessor recurses into the elements contained within the element.
33 */
34 public void begin(SchemaProcessor processor, Element element);
35
36 /**
37 * End rules are fired last, in inverse order.
38 */
39 public void end(SchemaProcessor processor, Element element);
40 }