KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > taglibs > standard > lang > jpath > expression > EncodeUrlFunction


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

16
17 package org.apache.taglibs.standard.lang.jpath.expression;
18
19 import java.net.URLEncoder JavaDoc;
20
21 import javax.servlet.jsp.PageContext JavaDoc;
22
23 import org.apache.taglibs.standard.lang.jpath.adapter.ConversionException;
24 import org.apache.taglibs.standard.lang.jpath.adapter.Convert;
25 import org.apache.taglibs.standard.lang.jpath.adapter.IterationContext;
26
27 /**
28  * The EncodeUrlFunction class
29  *
30  *
31  * @author <a HREF='mailto:scott.hasse@isthmusgroup.com'>Scott Hasse</a>
32  * @version
33  */

34 public class EncodeUrlFunction extends SimpleNode {
35
36     /**
37      * Used to create an instance of the EncodeUrlFunction class
38      *
39      *
40      * @param id
41      *
42      */

43     public EncodeUrlFunction(int id) {
44         super(id);
45     }
46
47     /**
48      * Used to create an instance of the EncodeUrlFunction class
49      *
50      *
51      * @param p
52      * @param id
53      *
54      */

55     public EncodeUrlFunction(Parser p, int id) {
56         super(p, id);
57     }
58
59     /**
60      * Provides a method to print a normalized version of the original
61      * expression. The normalized version has standardized spacing and
62      * parenthesis, and can be used to compare expressions formatted
63      * in different ways to see if they are actually the same expression.
64      *
65      *
66      * @return The normalized version of the original expression
67      *
68      */

69     public String JavaDoc toNormalizedString() {
70
71         String JavaDoc normalized = "";
72
73         normalized = "encode-url(" + jjtGetChild(0).toNormalizedString()
74                 + ")";
75
76         return normalized;
77     }
78
79     /**
80      * This method evaluates this node of the expression and all child nodes.
81      * It returns the result of the
82      * evaluation as an <tt>Object</tt>. If any problems are encountered
83      * during the evaluation, an <tt>EvaluationException</tt> is thrown.
84      *
85      *
86      * @param pageContext the current JSP PageContext
87      *
88      * @param icontext the Iteration Context of the expression. If there is
89      * no interation context, this should be null.
90      *
91      * @return the result of the expression evaluation as an object
92      *
93      * @throws EvaluationException if a problem is encountered during the
94      * evaluation
95      */

96     public Object JavaDoc evaluate(PageContext JavaDoc pageContext, IterationContext icontext)
97             throws EvaluationException {
98
99         String JavaDoc result;
100
101         try {
102             result =
103                 URLEncoder
104                     .encode(Convert
105                         .toString(jjtGetChild(0)
106                             .evaluate(pageContext, icontext)));
107         } catch (ConversionException ce) {
108             throw new EvaluationException(this, ce.getMessage());
109         }
110
111         return result;
112     }
113 }
114
Popular Tags