KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > condition > solo > RulesTk


1 /**
2  * $Id: RulesTk.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 2004-2005 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.condition.solo;
30
31 import org.apache.tools.ant.BuildException;
32 import org.apache.tools.ant.Project;
33 import org.apache.tools.ant.TaskAdapter;
34 import org.apache.tools.ant.taskdefs.condition.Condition;
35
36 import com.idaremedia.antx.Iteration;
37 import com.idaremedia.antx.apis.Requester;
38 import com.idaremedia.antx.helpers.Strings;
39
40 /**
41  * Collection of rule evaluation related utility methods.
42  *
43  * @since JWare/AntX 0.5
44  * @author ssmc, &copy;2004-2005 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
45  * @version 0.5
46  * @.safety multiple
47  * @.group impl,helper
48  **/

49
50 public final class RulesTk
51 {
52     private RulesTk()
53     {
54         //only utility methods from us!
55
}
56
57
58     /**
59      * Returns <i>true</i> if the named condition evaluates true.
60      * Uses the standard condition value URI handler to do the
61      * heavy lifting.
62      * @param clnt caller (non-null)
63      * @param testId reference of condition to evaluate (non-null)
64      * @return <i>true</i> if evaluated true.
65      * @since JWare/AntX 0.5
66      **/

67     public static boolean evalTest(String JavaDoc testId, Requester clnt)
68     {
69         ConditionValueURIHandler runner = new ConditionValueURIHandler();
70         String JavaDoc result = runner.valueFrom(testId,"$test:"+testId, clnt);
71         return Strings.TRUE.equals(result);
72     }
73
74
75
76     /**
77      * Check that the given reference points to a condition-like
78      * object.
79      * @param refid the referenced object (non-null)
80      * @param clnt error handler (non-null)
81      * @throws IllegalArgumentException if either parameter is <i>null</i>.
82      * @throws BuildException if the referred-to thing does not
83      * exist or is of an incompatible class.
84      * @since JWare/AntX 0.5
85      **/

86     public static void verifyTest(String JavaDoc refid, Requester clnt)
87     {
88         if (refid==null || clnt==null) {
89             throw new IllegalArgumentException JavaDoc();
90         }
91         String JavaDoc error = null;
92         Object JavaDoc ref = clnt.getProject().getReference(refid);
93         if (ref==null) {
94             error = Iteration.uistrs().get("task.missing.refid",refid);
95         } else {
96             if (ref instanceof TaskAdapter) {
97                 ref = ((TaskAdapter)ref).getProxy();
98             }
99             if (!(ref instanceof Condition) && !(ref instanceof ShareableCondition)) {
100                 error = Iteration.uistrs().get("task.bad.refid",refid,
101                     Condition.class.getName(), ref.getClass().getName());
102             }
103         }
104
105         if (error!=null) {
106             clnt.problem(error, Project.MSG_ERR);
107             throw new BuildException(error, clnt.getLocation());
108         }
109     }
110 }
111
112 /* end-of-RulesTk.java */
Popular Tags