KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > taglibs > standard > tag > el > fmt > SetLocaleTag


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.tag.el.fmt;
18
19 import javax.servlet.jsp.JspException JavaDoc;
20
21 import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
22 import org.apache.taglibs.standard.tag.common.fmt.SetLocaleSupport;
23
24 /**
25  * <p>A handler for &lt;setLocale&gt; that accepts attributes as Strings
26  * and evaluates them as expressions at runtime.</p>
27  *
28  * @author Jan Luehe
29  */

30
31 public class SetLocaleTag extends SetLocaleSupport {
32
33     //*********************************************************************
34
// 'Private' state (implementation details)
35

36     private String JavaDoc value_; // stores EL-based property
37
private String JavaDoc variant_; // stores EL-based property
38

39
40     //*********************************************************************
41
// Constructor
42

43     /**
44      * Constructs a new LocaleTag. As with TagSupport, subclasses
45      * should not provide other constructors and are expected to call
46      * the superclass constructor
47      */

48     public SetLocaleTag() {
49         super();
50         init();
51     }
52
53
54     //*********************************************************************
55
// Tag logic
56

57     // evaluates expression and chains to parent
58
public int doStartTag() throws JspException JavaDoc {
59
60         // evaluate any expressions we were passed, once per invocation
61
evaluateExpressions();
62
63     // chain to the parent implementation
64
return super.doStartTag();
65     }
66
67     // Releases any resources we may have (or inherit)
68
public void release() {
69         super.release();
70         init();
71     }
72
73
74     //*********************************************************************
75
// Accessor methods
76

77     // for EL-based attribute
78
public void setValue(String JavaDoc value_) {
79         this.value_ = value_;
80     }
81
82     // for EL-based attribute
83
public void setVariant(String JavaDoc variant_) {
84         this.variant_ = variant_;
85     }
86
87
88     //*********************************************************************
89
// Private (utility) methods
90

91     // (re)initializes state (during release() or construction)
92
private void init() {
93         // null implies "no expression"
94
value_ = variant_ = null;
95     }
96
97     // Evaluates expressions as necessary
98
private void evaluateExpressions() throws JspException JavaDoc {
99
100     // 'value' attribute (mandatory)
101
value = ExpressionEvaluatorManager.evaluate(
102         "value", value_, Object JavaDoc.class, this, pageContext);
103
104     // 'variant' attribute (optional)
105
if (variant_ != null) {
106         variant = (String JavaDoc) ExpressionEvaluatorManager.evaluate(
107             "variant", variant_, String JavaDoc.class, this, pageContext);
108     }
109     }
110 }
111
Popular Tags