Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatUserDAO.java =================================================================== diff -u -rb70e2750284cb613bbe37fb30b69091d679c3bf4 -rbb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatUserDAO.java (.../IChatUserDAO.java) (revision b70e2750284cb613bbe37fb30b69091d679c3bf4) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatUserDAO.java (.../IChatUserDAO.java) (revision bb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639) @@ -25,11 +25,20 @@ package org.lamsfoundation.lams.tool.chat.dao; import org.lamsfoundation.lams.dao.IBaseDAO; +import org.lamsfoundation.lams.tool.chat.model.ChatUser; /** * DAO for accessing the ChatUser objects - interface defining * methods to be implemented by the Hibernate or other implementation. */ public interface IChatUserDAO extends IBaseDAO{ + /** + * + * @param userId + * @param toolSessionId + * @return + */ + ChatUser getByUserIdAndSessionId(Long userId, Long toolSessionId); + void saveOrUpdate(ChatUser chatUser); } \ No newline at end of file Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatUserDAO.java =================================================================== diff -u -rb70e2750284cb613bbe37fb30b69091d679c3bf4 -rbb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatUserDAO.java (.../ChatUserDAO.java) (revision b70e2750284cb613bbe37fb30b69091d679c3bf4) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatUserDAO.java (.../ChatUserDAO.java) (revision bb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639) @@ -24,12 +24,34 @@ package org.lamsfoundation.lams.tool.chat.dao.hibernate; +import java.util.List; + import org.lamsfoundation.lams.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.tool.chat.dao.IChatUserDAO; +import org.lamsfoundation.lams.tool.chat.model.ChatUser; /** * DAO for accessing the ChatUser objects - Hibernate specific code. */ public class ChatUserDAO extends BaseDAO implements IChatUserDAO { + public static final String SQL_QUERY_FIND_BY_USER_ID_SESSION_ID = "from " + + ChatUser.class.getName() + " as f" + + " where user_id=? and f.session.sessionId=?"; + + public ChatUser getByUserIdAndSessionId(Long userId, Long toolSessionId) { + List list = this.getHibernateTemplate().find( + SQL_QUERY_FIND_BY_USER_ID_SESSION_ID, + new Object[] { userId, toolSessionId }); + + if (list == null || list.isEmpty()) + return null; + + return (ChatUser) list.get(0); + } + + public void saveOrUpdate(ChatUser chatUser) { + this.getHibernateTemplate().saveOrUpdate(chatUser); + this.getHibernateTemplate().flush(); + } } Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatSession.java =================================================================== diff -u -rb70e2750284cb613bbe37fb30b69091d679c3bf4 -rbb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatSession.java (.../ChatSession.java) (revision b70e2750284cb613bbe37fb30b69091d679c3bf4) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatSession.java (.../ChatSession.java) (revision bb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639) @@ -61,6 +61,8 @@ private Chat chat; private Set chatUsers = new HashSet(0); + + private String jabberRoom; // Constructors @@ -188,7 +190,18 @@ public void setChatUsers(Set chatUsers) { this.chatUsers = chatUsers; } + + /** + * @hibernate.property column="jabber_room" length="250" + */ + public String getJabberRoom() { + return jabberRoom; + } + public void setJabberRoom(String jabberRoom) { + this.jabberRoom = jabberRoom; + } + /** * toString * Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatUser.java =================================================================== diff -u -rb70e2750284cb613bbe37fb30b69091d679c3bf4 -rbb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatUser.java (.../ChatUser.java) (revision b70e2750284cb613bbe37fb30b69091d679c3bf4) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatUser.java (.../ChatUser.java) (revision bb0125e666b0b7a7ca7fbe5f76d7ba2a4f11e639) @@ -24,152 +24,179 @@ package org.lamsfoundation.lams.tool.chat.model; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; + /** * - * Caches the user details. This allows the tool to be more efficient at - * displaying user names but means that when people's names change, they - * won't change in the "old" tool data. + * Caches the user details. This allows the tool to be more efficient at + * displaying user names but means that when people's names change, they won't + * change in the "old" tool data. * - * @hibernate.class - * table="tl_lachat11_user" + * @hibernate.class table="tl_lachat11_user" */ -public class ChatUser implements java.io.Serializable { +public class ChatUser implements java.io.Serializable { - - /** + /** * */ private static final long serialVersionUID = -3701664859818409197L; - // Fields - private Long uid; - private Long userId; - private String lastName; - private String firstName; - private ChatSession chatSession; + // Fields + private Long uid; - // Constructors + private Long userId; - /** default constructor */ - public ChatUser() { - } + private String lastName; - - /** full constructor */ - public ChatUser(Long userId, String lastName, String firstName, ChatSession chatSession) { - this.userId = userId; - this.lastName = lastName; - this.firstName = firstName; - this.chatSession = chatSession; - } + private String firstName; - - // Property accessors - /** - * @hibernate.id - * generator-class="native" - * type="java.lang.Long" - * column="uid" - */ + private String loginName; - public Long getUid() { - return this.uid; - } - - public void setUid(Long uid) { - this.uid = uid; - } - /** - * @hibernate.property - * column="user_id" - * length="20" - * - */ + private ChatSession chatSession; + + private String jabberId; - public Long getUserId() { - return this.userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - /** - * @hibernate.property - * column="last_name" - * length="255" - * - */ + // Constructors - public String getLastName() { - return this.lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - /** - * @hibernate.property - * column="first_name" - * length="255" - * - */ + /** default constructor */ + public ChatUser() { + } - public String getFirstName() { - return this.firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - /** - * @hibernate.many-to-one - * not-null="true" - * @hibernate.column name="session_id" - * - */ + public ChatUser(UserDTO user, ChatSession chatSession) { + this.userId = new Long(user.getUserID().intValue()); + this.firstName = user.getFirstName(); + this.lastName = user.getLastName(); + this.loginName = user.getLogin(); + this.chatSession = chatSession; + } - public ChatSession getChatSession() { - return this.chatSession; - } - - public void setChatSession(ChatSession chatSession) { - this.chatSession = chatSession; - } - + /** full constructor */ + public ChatUser(Long userId, String lastName, String firstName, + ChatSession chatSession) { + this.userId = userId; + this.lastName = lastName; + this.firstName = firstName; + this.chatSession = chatSession; + } - /** - * toString - * @return String - */ - public String toString() { - StringBuffer buffer = new StringBuffer(); + // Property accessors + /** + * @hibernate.id generator-class="native" type="java.lang.Long" column="uid" + */ + public Long getUid() { + return this.uid; + } - buffer.append(getClass().getName()).append("@").append(Integer.toHexString(hashCode())).append(" ["); - buffer.append("userId").append("='").append(getUserId()).append("' "); - buffer.append("]"); - - return buffer.toString(); - } + public void setUid(Long uid) { + this.uid = uid; + } + /** + * @hibernate.property column="user_id" length="20" + * + */ + public Long getUserId() { + return this.userId; + } - public boolean equals(Object other) { - if ( (this == other ) ) return true; - if ( (other == null ) ) return false; - if ( !(other instanceof ChatUser) ) return false; - ChatUser castOther = ( ChatUser ) other; - - return ( (this.getUid()==castOther.getUid()) || ( this.getUid()!=null && castOther.getUid()!=null && this.getUid().equals(castOther.getUid()) ) ); - } - - public int hashCode() { - int result = 17; - result = 37 * result + ( getUid() == null ? 0 : this.getUid().hashCode() ); - return result; - } + public void setUserId(Long userId) { + this.userId = userId; + } + /** + * @hibernate.property column="last_name" length="255" + * + */ + public String getLastName() { + return this.lastName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + + /** + * @hibernate.property column="login_name" length="255" + * + */ + public String getLoginName() { + return loginName; + } + public void setLoginName(String loginName) { + this.loginName = loginName; + } + /** + * @hibernate.property column="first_name" length="255" + * + */ + public String getFirstName() { + return this.firstName; + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + /** + * @hibernate.property column="jabber_id" length="255" + */ + public String getJabberId() { + return jabberId; + } + public void setJabberId(String jabberId) { + this.jabberId = jabberId; + } + + /** + * @hibernate.many-to-one not-null="true" + * @hibernate.column name="session_id" + * + */ + public ChatSession getChatSession() { + return this.chatSession; + } + + public void setChatSession(ChatSession chatSession) { + this.chatSession = chatSession; + } + + /** + * toString + * + * @return String + */ + public String toString() { + StringBuffer buffer = new StringBuffer(); + + buffer.append(getClass().getName()).append("@").append( + Integer.toHexString(hashCode())).append(" ["); + buffer.append("userId").append("='").append(getUserId()).append("' "); + buffer.append("]"); + + return buffer.toString(); + } + + public boolean equals(Object other) { + if ((this == other)) + return true; + if ((other == null)) + return false; + if (!(other instanceof ChatUser)) + return false; + ChatUser castOther = (ChatUser) other; + + return ((this.getUid() == castOther.getUid()) || (this.getUid() != null + && castOther.getUid() != null && this.getUid().equals( + castOther.getUid()))); + } + + public int hashCode() { + int result = 17; + result = 37 * result + + (getUid() == null ? 0 : this.getUid().hashCode()); + return result; + } } \ No newline at end of file