KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > valueuri > condition > NotValueURIHandler


1 /**
2  * $Id: NotValueURIHandler.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 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.valueuri.condition;
30
31 import com.idaremedia.antx.FlexString;
32 import com.idaremedia.antx.apis.Requester;
33 import com.idaremedia.antx.helpers.Strings;
34 import com.idaremedia.antx.helpers.Tk;
35 import com.idaremedia.antx.parameters.IsA;
36 import com.idaremedia.antx.starters.ValueURIHandlerSkeleton;
37
38 /**
39  * Value URI handler that returns the logical not of the incoming source value. Allows
40  * properties, variables, and reference values (lenient stringifier used). Result is
41  * normalized to either the "<span class="src">true</span>" or the
42  * "<span class="src">false</span>" string for easy matching.
43  * <p/>
44  * <b>Example Usage:</b><pre>
45  * &lt;do true="${<b>$not:</b>scrub&#46;disabled}"&gt;&#8230;
46  * &lt;property name="smoke.enabled" value="${<b>$not:</b>fullregress.enabled}"/&gt;
47  *
48  * -- To Install --
49  * &lt;manageuris action="install"&gt;
50  * &lt;parameter name="not"
51  * value="com.idaremedia.antx.valueuri.condition.NotValueURIHandler"/&gt;
52  * &lt;/manageuris&gt;
53  * </pre>
54  *
55  * @since JWare/AntX 0.5
56  * @author ssmc, &copy;2005 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
57  * @version 0.5
58  * @.safety multiple
59  * @.group api,helper
60  **/

61
62 public final class NotValueURIHandler extends ValueURIHandlerSkeleton
63 {
64     /**
65      * Initializes a new not value uri handler.
66      **/

67     public NotValueURIHandler()
68     {
69         super();
70     }
71
72
73     /**
74      * Returns the logical not of the source boolean value. If the source
75      * is not a valid boolean, returns <i>null</i>.
76      **/

77     public String JavaDoc valueFrom(String JavaDoc uriFragment, String JavaDoc fullUri, Requester clnt)
78     {
79         FlexString source = new FlexString();
80         source.set(uriFragment);
81
82         IsA isa= IsA.PROPERTY;
83         int i = uriFragment.lastIndexOf("?");
84         if (i>0) {
85             source.set(uriFragment.substring(0,i++));
86             if (i<uriFragment.length()) {
87                 String JavaDoc isaName = uriFragment.substring(i);
88                 isa = IsA.from(isaName,isa);
89            }
90         }
91
92         source.set(Tk.resolveString(clnt.getProject(),source.get(),true));
93
94         switch (isa.getIndex()) {
95             case IsA.VARIABLE_INDEX: {
96                 source.setIsExported(true);
97                 break;
98             }
99             case IsA.REFERENCE_INDEX:{
100                 source.setIsReference(true);
101                 break;
102             }
103             case IsA.PROPERTY_INDEX: {
104                 source.setIsProperty(true);
105                 break;
106             }
107             default: {
108                 source.setIsLiteral();
109             }
110         }
111
112         String JavaDoc value = source.getValue(clnt.getProject());
113         if (value!=null) {
114             if (Tk.string2PosBool(value).booleanValue()) {
115                 return Strings.FALSE;
116             } else if (!Tk.string2NegBool(value).booleanValue()) {
117                 return Strings.TRUE;
118             }
119         }
120
121         return getDefaultValue(fullUri,clnt);
122     }
123 }
124
125 /* end-of-NotValueURIHandler.java */
Popular Tags