KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > hivemind > conditional > NodeImpl


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.conditional;
16
17 import org.apache.hivemind.util.Defense;
18
19 /**
20  * Implementation of {@link org.apache.hivemind.conditional.Node}.
21  *
22  * @author Howard M. Lewis Ship
23  * @since 1.1
24  */

25 public class NodeImpl implements Node
26 {
27     private Node _left;
28
29     private Node _right;
30
31     private Evaluator _evaluator;
32
33     public NodeImpl(Node left, Node right, Evaluator evaluator)
34     {
35         Defense.notNull(evaluator, "evaluator");
36
37         _left = left;
38         _right = right;
39         _evaluator = evaluator;
40     }
41
42     /**
43      * Alternate constructor used for terminal nodes.
44      */

45
46     public NodeImpl(Evaluator evaluator)
47     {
48         this(null, null, evaluator);
49     }
50
51     public Node getLeft()
52     {
53         return _left;
54     }
55
56     public Node getRight()
57     {
58         return _right;
59     }
60
61     // For testing
62

63     Evaluator getEvaluator()
64     {
65         return _evaluator;
66     }
67
68     public boolean evaluate(EvaluationContext context)
69     {
70         return _evaluator.evaluate(context, this);
71     }
72
73 }
Popular Tags