001: /*
002: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/workplace/CmsWorkplaceUserInfoEntry.java,v $
003: * Date : $Date: 2008-02-27 12:05:45 $
004: * Version: $Revision: 1.4 $
005: *
006: * This library is part of OpenCms -
007: * the Open Source Content Management System
008: *
009: * Copyright (c) 2002 - 2008 Alkacon Software GmbH (http://www.alkacon.com)
010: *
011: * This library is free software; you can redistribute it and/or
012: * modify it under the terms of the GNU Lesser General Public
013: * License as published by the Free Software Foundation; either
014: * version 2.1 of the License, or (at your option) any later version.
015: *
016: * This library is distributed in the hope that it will be useful,
017: * but WITHOUT ANY WARRANTY; without even the implied warranty of
018: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: * Lesser General Public License for more details.
020: *
021: * For further information about Alkacon Software GmbH, please see the
022: * company website: http://www.alkacon.com
023: *
024: * For further information about OpenCms, please see the
025: * project website: http://www.opencms.org
026: *
027: * You should have received a copy of the GNU Lesser General Public
028: * License along with this library; if not, write to the Free Software
029: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
030: */
031:
032: package org.opencms.workplace;
033:
034: import org.opencms.widgets.CmsInputWidget;
035: import org.opencms.widgets.I_CmsWidget;
036:
037: import java.lang.reflect.Constructor;
038:
039: /**
040: * Represents an user additional information entry.<p>
041: *
042: * @author Michael Moossen
043: *
044: * @version $Revision: 1.4 $
045: *
046: * @since 6.5.6
047: */
048: public final class CmsWorkplaceUserInfoEntry {
049:
050: /** The entry's key. */
051: private final String m_key;
052:
053: /** If entry is optional. */
054: private final String m_optional;
055:
056: /** The widget. */
057: private final String m_widget;
058:
059: /** The class name of the stored data type. */
060: private String m_type;
061:
062: /** The widget parameters. */
063: private String m_params;
064:
065: /**
066: * Default constructor.<p>
067: *
068: * @param key the key for this entry
069: * @param type the class name of the stored data type
070: * @param widget the widget to use
071: * @param params the widget parameters
072: * @param optional if this entry is optional
073: */
074: public CmsWorkplaceUserInfoEntry(String key, String type,
075: String widget, String params, String optional) {
076:
077: m_key = key;
078: m_type = type;
079: m_widget = widget;
080: m_params = params;
081: m_optional = optional;
082: }
083:
084: /**
085: * Returns the key.<p>
086: *
087: * @return the key
088: */
089: public String getKey() {
090:
091: return m_key;
092: }
093:
094: /**
095: * Returns the widget class name.<p>
096: *
097: * @return the widget class name
098: */
099: public String getWidget() {
100:
101: return m_widget;
102: }
103:
104: /**
105: * Returns a new widget object.<p>
106: *
107: * @return a new widget object
108: */
109: public I_CmsWidget getWidgetObject() {
110:
111: if (getWidget() == null) {
112: if (m_params == null) {
113: return new CmsInputWidget();
114: } else {
115: return new CmsInputWidget(m_params);
116: }
117: }
118: try {
119: if (m_params == null) {
120: return (I_CmsWidget) Class.forName(getWidget())
121: .newInstance();
122: }
123: Class clazz = Class.forName(getWidget());
124: Constructor ctor = clazz
125: .getConstructor(new Class[] { String.class });
126: return (I_CmsWidget) ctor
127: .newInstance(new Object[] { m_params });
128: } catch (Exception e) {
129: return new CmsInputWidget();
130: }
131: }
132:
133: /**
134: * Returns the optional flag.<p>
135: *
136: * @return the optional flag
137: */
138: public String getOptional() {
139:
140: return m_optional;
141: }
142:
143: /**
144: * Returns the optional flag.<p>
145: *
146: * @return the optional flag
147: */
148: public boolean isOptional() {
149:
150: return Boolean.valueOf(m_optional).booleanValue();
151: }
152:
153: /**
154: * Returns the configured widget parameters.<p>
155: *
156: * @return the configured widget parameters
157: */
158: public String getParams() {
159:
160: return m_params;
161: }
162:
163: /**
164: * Returns the configured class name type.<p>
165: *
166: * @return the configured class name type
167: */
168: public String getType() {
169:
170: return m_type;
171: }
172:
173: /**
174: * Returns the class type.<p>
175: *
176: * @return the class type
177: */
178: public Class getClassType() {
179:
180: if (m_type == null) {
181: return String.class;
182: }
183: try {
184: return Class.forName(m_type);
185: } catch (ClassNotFoundException e) {
186: return String.class;
187: }
188: }
189: }
|