01: /*
02: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
03: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
04: */
05: package com.sun.portal.desktop.taglib.providerContext;
06:
07: import javax.servlet.jsp.JspException;
08:
09: import java.util.List;
10:
11: import com.sun.portal.providers.Provider;
12: import com.sun.portal.providers.context.ProviderContext;
13: import com.sun.portal.providers.context.ProviderContextException;
14:
15: import com.sun.portal.desktop.taglib.DesktopTaglibException;
16:
17: public class GetStringPropertyTag extends BaseProviderContextTagSupport {
18: private String m_key = null;
19: private String m_localized_raw = null;
20: private List m_pflist = null;
21:
22: public void setKey(String key) throws DesktopTaglibException {
23: m_key = resolveParameter(key).toString();
24: }
25:
26: public void setLocalized(String localized)
27: throws DesktopTaglibException {
28: m_localized_raw = localized;
29: }
30:
31: public void setPfList(String pflist) throws DesktopTaglibException {
32: if (!isContextVariable(pflist)) {
33: throw new DesktopTaglibException(
34: DesktopTaglibException.INVALID_PARAMETER, pflist);
35: }
36: try {
37: m_pflist = (List) resolveParameter(pflist);
38: } catch (ClassCastException cce) {
39: throw new DesktopTaglibException(
40: DesktopTaglibException.INVALID_PARAMETER, pflist);
41: }
42: }
43:
44: public int doStartTag() throws JspException {
45: ProviderContext pc = getCurrentProviderContext();
46: String prop = null;
47: Provider p = getCurrentObj();
48: try {
49: if (m_localized_raw == null) {
50: if (m_pflist == null) {
51: prop = pc.getStringProperty(p.getName(), m_key);
52: } else {
53: prop = pc.getStringProperty(p.getName(), m_key,
54: m_pflist);
55: }
56: } else {
57: Object obj = resolveParameter(m_localized_raw);
58: if (obj != null) {
59: if (obj instanceof Boolean) {
60: prop = pc.getStringProperty(p.getName(), m_key,
61: ((Boolean) obj).booleanValue());
62: } else if (obj instanceof String) {
63: prop = pc.getStringProperty(p.getName(), m_key,
64: toBoolean((String) obj));
65: } else {
66: prop = pc.getStringProperty(p.getName(), m_key);
67: }
68: } else {
69: prop = pc.getStringProperty(p.getName(), m_key);
70: }
71: }
72: } catch (ProviderContextException pce) {
73: throw new DesktopTaglibException(pce);
74: }
75:
76: processResult(prop);
77: return SKIP_BODY;
78: }
79: }
|