KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > go > UnlessAll


1 /**
2  * $Id: UnlessAll.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 2004 iDare Media, Inc. All rights reserved.
4  *
5  * Originally written by iDare Media, Inc. for release into the public domain. This
6  * library, source form and binary form, is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License (LGPL) as published
8  * by the Free Software Foundation; either version 2.1 of the License, or (at your option)
9  * any later version.<p>
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  * See the GNU LGPL for more details.<p>
14  *
15  * You should have received a copy of the GNU Lesser General Public License along with this
16  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
17  * 330, Boston, MA 02111-1307 USA. The GNU LGPL can be found online at
18  * http://www.fsf.org/copyleft/lesser.html<p>
19  *
20  * This product has been influenced by several projects within the open-source community.
21  * The JWare developers wish to acknowledge the open-source community's support. For more
22  * information regarding the open-source products used within JWare, please visit the
23  * JWare website.
24  *----------------------------------------------------------------------------------------*
25  * WEBSITE- http://www.jware.info EMAIL- inquiries@jware.info
26  *----------------------------------------------------------------------------------------*
27  **/

28
29 package com.idaremedia.antx.go;
30
31 import java.util.Iterator JavaDoc;
32 import java.util.List JavaDoc;
33
34 import org.apache.tools.ant.Project;
35
36 import com.idaremedia.antx.helpers.Tk;
37
38 /**
39  * Implementation of the general <i>unlessAll</i> and <i>unlessAllTrue</i> tests
40  * for all conditional components. The <span class="src">UnlessAll</span> criteria
41  * passes if at least one of the named properties in a list does <em>not</em> exist
42  * within a specified project.
43  *
44  * @since JWare/AntX 0.4
45  * @author ssmc, &copy;2004 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
46  * @version 0.5
47  * @.safety multiple
48  * @.group impl,helper
49  * @.pattern GoF.Strategy
50  * @see Go
51  * @see Unless
52  * @see IffAll
53  **/

54
55 public final class UnlessAll
56 {
57     /**
58      * Returns <i>true</i> if at least one of the named does not
59      * exist in given project.
60      * @param list comma-delimited list of property names
61      * @param P project from which properties read
62      * @param onlyIfTrue <i>true</i> if each property only counts if
63      * it is a valid positive boolean string
64      **/

65     public static boolean pass(String JavaDoc list, Project P, boolean onlyIfTrue)
66     {
67         if (Tk.isWhitespace(list)) {
68             return false;
69         }
70         List JavaDoc l= Tk.splitList(list);
71         Iterator JavaDoc itr= l.iterator();
72
73         while (itr.hasNext()) {
74             if (Unless.allowed(itr.next().toString(),P,onlyIfTrue)) {
75                 return true; //=> missin at least one!
76
}
77         }
78         return false;// => all there so NOT ok!
79
}
80
81
82     /**
83      * Prevent; only helpers public.
84      **/

85     private UnlessAll() {
86     }
87 }
88
89 /* end-of-UnlessAll.java */
90
Popular Tags