KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > ofbiz > webapp > taglib > ParamTag


1 /*
2  * $Id: ParamTag.java 5462 2005-08-05 18:35:48Z jonesde $
3  *
4  * Copyright (c) 2001-2003 The Open For Business Project - www.ofbiz.org
5  *
6  * Permission is hereby granted, free of charge, to any person obtaining a
7  * copy of this software and associated documentation files (the "Software"),
8  * to deal in the Software without restriction, including without limitation
9  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10  * and/or sell copies of the Software, and to permit persons to whom the
11  * Software is furnished to do so, subject to the following conditions:
12  *
13  * The above copyright notice and this permission notice shall be included
14  * in all copies or substantial portions of the Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
21  * OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
22  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23  *
24  */

25 package org.ofbiz.webapp.taglib;
26
27 import java.util.Map JavaDoc;
28 import javax.servlet.jsp.JspTagException JavaDoc;
29 import javax.servlet.jsp.tagext.TagSupport JavaDoc;
30
31 /**
32  * ParamTag - Defines a parameter for the service tag.
33  *
34  * @author <a HREF="mailto:jaz@ofbiz.org">Andy Zeneski</a>
35  * @version $Rev: 5462 $
36  * @since 2.0
37  */

38 public class ParamTag extends TagSupport JavaDoc {
39
40     protected String JavaDoc name = null;
41     protected String JavaDoc mode = null;
42     protected String JavaDoc map = null;
43     protected String JavaDoc alias = null;
44     protected String JavaDoc attribute = null;
45     protected Object JavaDoc paramValue = null;
46
47     public void setName(String JavaDoc name) {
48         this.name = name;
49     }
50
51     public String JavaDoc getName() {
52         return name;
53     }
54
55     public void setMode(String JavaDoc mode) {
56         this.mode = mode;
57     }
58
59     public String JavaDoc getMode() {
60         return this.mode;
61     }
62
63     public void setAttribute(String JavaDoc attribute) {
64         this.attribute = attribute;
65     }
66
67     public String JavaDoc getAttribute() {
68         return attribute;
69     }
70
71     public void setValue(Object JavaDoc paramValue) {
72         this.paramValue = paramValue;
73     }
74
75     public Object JavaDoc getValue() {
76         return paramValue;
77     }
78
79     public void setMap(String JavaDoc map) {
80         this.map = map;
81     }
82
83     public String JavaDoc getMap() {
84         return map;
85     }
86
87     public void setAlias(String JavaDoc alias) {
88         this.alias = alias;
89     }
90
91     public String JavaDoc getAlias() {
92         return this.alias;
93     }
94
95     public int doStartTag() throws JspTagException JavaDoc {
96         AbstractParameterTag sTag = (AbstractParameterTag) findAncestorWithClass(this, AbstractParameterTag.class);
97
98         if (sTag == null)
99             throw new JspTagException JavaDoc("ParamTag not inside a ServiceTag.");
100
101         if (mode != null && !mode.equals("IN") && !mode.equals("OUT") && !mode.equals("INOUT"))
102             throw new JspTagException JavaDoc("Invalid mode attribute. Must be IN/OUT/INOUT.");
103
104         if (mode != null && (mode.equals("OUT") || mode.equals("INOUT")))
105             sTag.addOutParameter(name, (alias != null ? alias : name));
106
107         if (mode == null || mode.equals("IN") || mode.equals("INOUT")) {
108             Object JavaDoc value = null;
109
110             if (attribute != null) {
111                 if (map == null) {
112                     value = pageContext.findAttribute(attribute);
113                     if (value == null)
114                         value = pageContext.getRequest().getParameter(attribute);
115                 } else {
116                     try {
117                         Map JavaDoc mapObject = (Map JavaDoc) pageContext.findAttribute(map);
118
119                         value = mapObject.get(attribute);
120                     } catch (Exception JavaDoc e) {
121                         throw new JspTagException JavaDoc("Problem processing map (" + map + ") for attributes.");
122                     }
123                 }
124             }
125             if (value == null && paramValue != null) {
126                 value = paramValue;
127             }
128
129             sTag.addInParameter(name, value);
130         }
131
132         return SKIP_BODY;
133     }
134
135     public int doEndTag() {
136         return EVAL_PAGE;
137     }
138 }
139
Popular Tags