KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > slide > projector > expression > OrExpression


1 /*
2  * $Header: /home/cvs/jakarta-slide/projector/src/java/org/apache/slide/projector/expression/OrExpression.java,v 1.3 2004/07/28 09:48:21 ib Exp $
3  * $Revision: 1.3 $
4  * $Date: 2004/07/28 09:48:21 $
5  *
6  * ====================================================================
7  *
8  * Copyright 1999-2002 The Apache Software Foundation
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */

23
24 package org.apache.slide.projector.expression;
25
26 import java.util.ArrayList JavaDoc;
27 import java.util.Iterator JavaDoc;
28 import java.util.List JavaDoc;
29
30 import org.apache.slide.projector.engine.Job;
31
32 import de.zeigermann.xml.XMLStringWriter;
33 import de.zeigermann.xml.XMLWriter;
34
35 /**
36  * The AndExpression class
37  *
38  */

39 public class OrExpression implements EnclosingExpression {
40     private List JavaDoc nestedExpressions = new ArrayList JavaDoc();
41
42     public Expression activate(Job job) {
43         OrExpression activatedExpression = new OrExpression();
44         for ( Iterator JavaDoc i = nestedExpressions.iterator(); i.hasNext(); ) {
45             activatedExpression.addExpression(((Expression)i.next()).activate(job));
46         }
47         return activatedExpression;
48     }
49     
50     public void addExpression(Expression expression) {
51         nestedExpressions.add(expression);
52     }
53
54     public boolean evaluate() {
55         boolean eval = false;
56         for ( Iterator JavaDoc i = nestedExpressions.iterator(); i.hasNext(); ) {
57             Expression expression = (Expression)i.next();
58             if ( expression.evaluate()) {
59                 eval = true;
60             }
61         }
62         return eval;
63     }
64
65     public void save(XMLStringWriter writer) {
66         writer.writeStartTag(XMLWriter.createStartTag("or"));
67         for ( Iterator JavaDoc i = nestedExpressions.iterator(); i.hasNext(); ) {
68             Expression expression = (Expression)i.next();
69             expression.save(writer);
70         }
71         writer.writeEndTag(XMLWriter.createEndTag("or"));
72     }
73 }
Popular Tags