KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tools > ant > taskdefs > condition > Xor


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */

18 package org.apache.tools.ant.taskdefs.condition;
19
20 import org.apache.tools.ant.BuildException;
21
22 import java.util.Enumeration JavaDoc;
23
24 /**
25  * The <tt>Xor</tt> condition type to exclusive or operations.
26  * This does not shortcut stuff.
27  */

28 public class Xor extends ConditionBase implements Condition {
29
30     /**
31      * Evaluate the contained conditions.
32      * @return the result of xoring the conditions together.
33      * @throws org.apache.tools.ant.BuildException
34      * if an error occurs.
35      */

36     public boolean eval() throws BuildException {
37         Enumeration JavaDoc e = getConditions();
38         //initial state is false.
39
boolean state = false;
40         while (e.hasMoreElements()) {
41             Condition c = (Condition) e.nextElement();
42             //every condition is xored against the previous one
43
state ^= c.eval();
44         }
45         return state;
46     }
47
48 }
49
Popular Tags