001: /*
002: * Copyright (c) 2001 - 2005 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata groupware may be redistributed under the GNU General Public
006: * License as published by the Free Software Foundation;
007: * version 2 of the License.
008: *
009: * These programs are free software; you can redistribute them and/or
010: * modify them under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; version 2 of the License.
012: *
013: * These programs are distributed in the hope that they will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: *
017: * See the GNU General Public License in the file LICENSE.txt for more
018: * details.
019: *
020: * If you would like a copy of the GNU General Public License write to
021: *
022: * Free Software Foundation, Inc.
023: * 59 Temple Place - Suite 330
024: * Boston, MA 02111-1307, USA.
025: *
026: *
027: * To arrange commercial support and licensing, contact ivata at
028: * http://www.ivata.com/contact.jsp
029: * -----------------------------------------------------------------------------
030: * $Log: RightDetailDO.java,v $
031: * Revision 1.2 2005/10/02 14:08:58 colinmacleod
032: * Added/improved log4j logging.
033: *
034: * Revision 1.1 2005/09/29 14:17:04 colinmacleod
035: * Split UserGroupDO off from GroupDO.
036: * Moved UserGroupDO, Right classes to security subproject (from
037: * addressbook).
038: * Centralized user right handling into Rights and RightsImpl.
039: *
040: * Revision 1.4 2005/09/14 14:52:02 colinmacleod
041: * Added serialVersionUID.
042: *
043: * Revision 1.3 2005/04/10 20:09:36 colinmacleod
044: * Added new themes.
045: * Changed id type to String.
046: * Changed i tag to em and b tag to strong.
047: * Improved PicoContainerFactory with NanoContainer scripts.
048: *
049: * Revision 1.2 2005/04/09 17:19:08 colinmacleod
050: * Changed copyright text to GPL v2 explicitly.
051: *
052: * Revision 1.1.1.1 2005/03/10 17:50:35 colinmacleod
053: * Restructured ivata op around Hibernate/PicoContainer.
054: * Renamed ivata groupware.
055: *
056: * Revision 1.1 2004/07/13 19:41:14 colinmacleod
057: * Moved project to POJOs from EJBs.
058: * Applied PicoContainer to services layer (replacing session EJBs).
059: * Applied Hibernate to persistence layer (replacing entity EJBs).
060: *
061: * Revision 1.3 2004/03/21 21:16:06 colinmacleod
062: * Shortened name to ivata op.
063: *
064: * Revision 1.2 2004/02/01 22:00:32 colinmacleod
065: * Added full names to author tags
066: *
067: * Revision 1.1.1.1 2004/01/27 20:57:51 colinmacleod
068: * Moved ivata openportal to SourceForge..
069: *
070: * Revision 1.5 2003/11/03 11:28:24 jano
071: * commiting addressbook,
072: * tryinjg to fix deploying problem
073: *
074: * Revision 1.4 2003/10/17 12:36:12 jano
075: * fixing problems with building
076: * converting intranet -> portal
077: * Eclipse building
078: *
079: * Revision 1.3 2003/10/15 13:46:12 jano
080: * converting to XDoclet
081: *
082: * Revision 1.2 2003/10/15 13:18:02 colin
083: * fixing for XDoclet
084: *
085: * Revision 1.3 2003/05/01 12:13:22 jano
086: * tidy up names of sequeneces
087: *
088: * Revision 1.2 2003/02/25 14:38:13 colin
089: * implemented setModified methods on entity beans thro IvataEntityBean superclass
090: *
091: * Revision 1.1 2003/02/24 19:09:21 colin
092: * moved to business
093: *
094: * Revision 1.5 2003/02/04 17:43:45 colin
095: * copyright notice
096: *
097: * Revision 1.4 2002/09/26 09:54:27 jano
098: * name of sequence
099: *
100: * Revision 1.3 2002/07/04 12:29:28 jano
101: * i put readonly script to CVS and i will commit all SRC directory
102: *
103: * Revision 1.2 2002/06/17 07:29:07 colin
104: * improved and extended javadoc documentation
105: * -----------------------------------------------------------------------------
106: */
107: package com.ivata.groupware.admin.security.user.group.right.detail;
108:
109: import org.apache.log4j.Logger;
110:
111: import com.ivata.groupware.container.persistence.BaseDO;
112: import com.ivata.groupware.container.persistence.NamedDO;
113:
114: /**
115: * <p>Represents details a right for group of people to do something. This
116: * class provides detail to determine which object the right affects. It also
117: * contains a description explaining in clear text what the right allows.</p>
118: *
119: * @since ivata groupware 0.9 (2002-05-15)
120: * @author Colin MacLeod
121: * <a href='mailto:colin.macleod@ivata.com'>colin.macleod@ivata.com</a>
122: * @version $Revision: 1.2 $
123: * @see com.ivata.groupware.adddressbook.person.group.right.RightBean
124: *
125: * @hibernate.class
126: * table="user_right_detail"
127: * @hibernate.cache
128: * usage="read-write"
129: */
130: public class RightDetailDO extends BaseDO implements NamedDO {
131: /**
132: * Logger for this class.
133: */
134: private static final Logger logger = Logger
135: .getLogger(RightDetailDO.class);
136:
137: /**
138: * Serialization version (for <code>Serializable</code> interface).
139: */
140: private static final long serialVersionUID = 1L;
141: /**
142: * <p>Full and detailed description of the entitlements the right
143: * offers.</p>
144: */
145: private String description;
146: /**
147: * <p>Name of the right is a clear-text field which uniquely which
148: * identifies what it is the group will be allowed to do. This name can
149: * include spaces.</p>
150: */
151: private String name;
152: /**
153: * Name of the class which is affected by the right.
154: */
155: private String className;
156: /**
157: * <p>
158: * Class property - this is the path name of the property within a bean of
159: * the class which will be compared against the <code>targetId</code> of
160: * the right.
161: * </p>
162: * <p>
163: * It should resolve to either a value object or an integer. If
164: * this is <code>null</code>, it means the whole class is affected by the
165: * right.
166: * </p>
167: */
168: private String property;
169:
170: /**
171: * <p>Get full and detailed description of the entitlements the right
172: * offers.</p>
173: *
174: * @return full and detailed description of the entitlements the right
175: * offers.
176: * @hibernate.property
177: */
178: public final String getDescription() {
179: if (logger.isDebugEnabled()) {
180: logger.debug("getDescription() - start");
181: }
182:
183: if (logger.isDebugEnabled()) {
184: logger.debug("getDescription() - end - return value = "
185: + description);
186: }
187: return description;
188: }
189:
190: /**
191: * <p>Get the name of the right is a clear-text field which uniquely which
192: * identifies what it is the group will be allowed to do. This name can
193: * include spaces.</p>
194: *
195: * @return clear text name of the right, possibly including spaces.
196: * @hibernate.property
197: */
198: public final String getName() {
199: if (logger.isDebugEnabled()) {
200: logger.debug("getName() - start");
201: }
202:
203: if (logger.isDebugEnabled()) {
204: logger.debug("getName() - end - return value = " + name);
205: }
206: return name;
207: }
208:
209: /**
210: * <p>Set full and detailed description of the entitlements the right offers.</p>
211: *
212: * @param description full and detailed description of the entitlements the
213: * right offers.
214: */
215: public final void setDescription(final String description) {
216: if (logger.isDebugEnabled()) {
217: logger.debug("setDescription(String description = "
218: + description + ") - start");
219: }
220:
221: checkSetter();
222: this .description = description;
223:
224: if (logger.isDebugEnabled()) {
225: logger.debug("setDescription(String) - end");
226: }
227: }
228:
229: /**
230: * <p>Set the name of the right is a clear-text field which uniquely which identifies what it is the group will be allowed to do. This name can include spaces.</p>
231: *
232: * @param name clear text name of the right, possibly including spaces.
233: */
234: public final void setName(final String name) {
235: if (logger.isDebugEnabled()) {
236: logger.debug("setName(String name = " + name + ") - start");
237: }
238:
239: checkSetter();
240: this .name = name;
241:
242: if (logger.isDebugEnabled()) {
243: logger.debug("setName(String) - end");
244: }
245: }
246: }
|