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: TimestampDOHandling.java,v $
031: * Revision 1.6 2005/10/02 14:08:58 colinmacleod
032: * Added/improved log4j logging.
033: *
034: * Revision 1.5 2005/09/29 12:50:40 colinmacleod
035: * Restructured NamedDO and TimestampDO classes based around interfaces.
036: *
037: * Revision 1.4 2005/09/16 13:44:00 colinmacleod
038: * Commented out setModified - it is automatically set by Hibernate.
039: *
040: * Revision 1.3 2005/09/14 16:01:06 colinmacleod
041: * Changed the amend method to call setModified.
042: *
043: * Revision 1.2 2005/04/09 17:19:58 colinmacleod
044: * Changed copyright text to GPL v2 explicitly.
045: *
046: * Revision 1.1.1.1 2005/03/10 17:51:32 colinmacleod
047: * Restructured ivata op around Hibernate/PicoContainer.
048: * Renamed ivata groupware.
049: *
050: * Revision 1.1 2004/09/30 15:16:00 colinmacleod
051: * Split off addressbook elements into security subproject.
052: *
053: * Revision 1.1 2004/07/13 19:41:15 colinmacleod
054: * Moved project to POJOs from EJBs.
055: * Applied PicoContainer to services layer (replacing session EJBs).
056: * Applied Hibernate to persistence layer (replacing entity EJBs).
057: * -----------------------------------------------------------------------------
058: */
059: package com.ivata.groupware.container.persistence;
060:
061: import java.sql.Timestamp;
062: import java.util.Date;
063:
064: import com.ivata.groupware.admin.security.server.SecuritySession;
065: import com.ivata.groupware.admin.security.user.UserDO;
066:
067: /**
068: * <p>
069: * This class helps you assign users and time stamps for created by and modified
070: * by times
071: * </p>
072: *
073: * @author Colin MacLeod
074: * <a href='mailto:colin.macleod@ivata.com'>colin.macleod@ivata.com</a>
075: * @since ivata groupware 0.9 (2004-06-03)
076: * @version $Revision: 1.6 $
077: */
078: public final class TimestampDOHandling {
079: public static void add(SecuritySession securitySession,
080: AuthorTimestampDO timestampDO) {
081: assert (securitySession != null);
082: assert (timestampDO != null);
083:
084: Timestamp now = new Timestamp(new Date().getTime());
085: UserDO user = securitySession.getUser();
086: timestampDO.setCreated(now);
087: timestampDO.setCreatedBy(user);
088: timestampDO.setModified(now);
089: timestampDO.setModifiedBy(user);
090: }
091:
092: public static void amend(SecuritySession securitySession,
093: AuthorDO timestampDO) {
094: UserDO user = securitySession.getUser();
095: // NOTE: modified is automagically updated
096: // Timestamp now = new Timestamp(new Date().getTime());
097: // timestampDO.setModified(now);
098: timestampDO.setModifiedBy(user);
099: }
100:
101: /**
102: * Private default constructor enforces utility class behavior.
103: */
104: private TimestampDOHandling() {
105: }
106: }
|