Rev 1034 | Rev 2907 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.services;import in.shop2020.model.v1.user.User;import in.shop2020.model.v1.user.UserContextException;import in.shop2020.thrift.clients.UserContextServiceClient;import java.io.Serializable;import org.apache.thrift.TException;/*** This class is used to cache data that is frequently accessed for displaying* on the pages of the site. It implements Serializable since* <a href="http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html#Restart%20Persistence">Tomcat's restart persistence</a>* ensures that all session attributes will be preserved across application* restarts.** @author Chandranshu**/public class UserSessionInfo implements Serializable{/****/private static final long serialVersionUID = 1L;private boolean isLoggedIn;private long userId;private String email;private String nameOfUser;private int totalItems;private long cartId;private String pincode;public UserSessionInfo(){this.isLoggedIn = false;this.userId = -1;this.email = "";this.nameOfUser = "";this.totalItems = 0;this.cartId = -1;this.pincode = "110001";}public UserSessionInfo(long userId, String jsessionId){this();UserContextServiceClient ucsc = null;in.shop2020.model.v1.user.UserContextService.Client userClient = null;User existingUser = null;try {ucsc = new UserContextServiceClient();userClient = ucsc.getClient();existingUser = userClient.getUserById(userId);if(existingUser == null || existingUser.getUserId() == -1){existingUser = userClient.createAnonymousUser(jsessionId);}totalItems = userClient.getCart(existingUser.getActiveCartId()).getLinesSize();pincode = userClient.getDefaultPincode(existingUser.getUserId());} catch (UserContextException e) {e.printStackTrace();} catch (TException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}/*finally {ucsc.closeConnection();}*/initialize(existingUser, totalItems, pincode);}public UserSessionInfo(String jsessionId) {this();UserContextServiceClient ucsc = null;try {ucsc = new UserContextServiceClient();in.shop2020.model.v1.user.UserContextService.Client userClient = ucsc.getClient();User anonUser = userClient.createAnonymousUser(jsessionId);int totalItems= userClient.getCart(anonUser.getActiveCartId()).getLinesSize();pincode = userClient.getDefaultPincode(anonUser.getUserId());initialize(anonUser, totalItems, pincode);} catch (UserContextException e) {e.printStackTrace();} catch (TException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}/*finally{ucsc.closeConnection();}*/}private void initialize(User user, int totalItems, String pincode){if(user!=null){this.isLoggedIn = !user.isIsAnonymous();this.userId = user.getUserId();this.email = user.getEmail();this.nameOfUser = user.getName();this.cartId = user.getActiveCartId();this.totalItems = totalItems;this.pincode = pincode;}else{this.isLoggedIn = false;this.userId = -1;this.email = "";this.nameOfUser = "";this.totalItems = 0;this.cartId = -1;this.pincode = pincode;}}public boolean isSessionId() {return !isLoggedIn;}public boolean isLoggedIn() {return isLoggedIn;}public void setLoggedIn(boolean isLoggedIn) {this.isLoggedIn = isLoggedIn;}public long getUserId() {return userId;}public void setUserId(long userId) {this.userId = userId;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getNameOfUser() {return nameOfUser;}public void setNameOfUser(String nameOfUser) {this.nameOfUser = nameOfUser;}public int getTotalItems() {return totalItems;}public void setTotalItems(int totalItems) {this.totalItems = totalItems;}public long getCartId() {return cartId;}public void setCartId(long cartId) {this.cartId = cartId;}public String getPincode() {return pincode;}public void setPincode(String pincode) {this.pincode = pincode;}public String toString(){StringBuffer representation = new StringBuffer();representation.append("userId: " + userId + "\n");representation.append("isLoggedIn: " + isLoggedIn + "\n");representation.append("username: " + nameOfUser + "\n");return representation.toString();}}