/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.kapti.mobileclient.user; import com.kapti.mobileclient.XmlRpcClientFactory; import com.kapti.mobileclient.exceptions.RequestError; import com.kapti.mobileclient.exceptions.StockPlayException; import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; import org.kxmlrpc.XmlRpcClient; /** * * @author Thijs */ public class UserFactory { private static UserFactory instance = new UserFactory(); public static UserFactory getInstance() { return instance; } private UserFactory() { } public Vector getAllUsers() throws StockPlayException { return getUsersByFilter(""); } public Vector getUsersByFilter(String filter) throws StockPlayException { Vector result = new Vector(); try { XmlRpcClient client = XmlRpcClientFactory.getXmlRpcClient(); Vector params = new Vector(); params.addElement(filter); Vector users = (Vector) client.execute("User.List", params); for (Enumeration e = users.elements(); e.hasMoreElements();) { Object obj = e.nextElement(); result.addElement(User.fromStruct((Hashtable) obj)); } return result; } catch (Exception ex) { throw new RequestError(ex.getMessage()); } } public User getUserById(int id) throws StockPlayException { Vector users = getUsersByFilter("id == '" + id + "'"); if (!users.isEmpty()) { return (User) users.firstElement(); } else { return null; } } public boolean verifyLogin(String nickname, String password) throws StockPlayException { XmlRpcClient client = XmlRpcClientFactory.getXmlRpcClient(); Vector params = new Vector(); params.addElement(nickname); params.addElement(password); try { String session = ((String) client.execute("User.Validate", params)); if (session.length() > 0) { XmlRpcClientFactory.setSessionID(session); return true; } return false; } catch (Exception ex) { return false; } } public Vector getPortfolioByUser(User user) throws StockPlayException { XmlRpcClient client = XmlRpcClientFactory.getXmlRpcClient(); Vector result = new Vector(); try { Vector params = new Vector(); params.addElement("userid == '" + user.getId() + "'"); Vector portfolio = (Vector) client.execute("User.Portfolio.List", params); for (Enumeration e = portfolio.elements(); e.hasMoreElements();) { Object obj = e.nextElement(); result.addElement(UserSecurity.fromStruct((Hashtable) obj)); } return result; } catch (Exception ex) { throw new StockPlayException(ex.getMessage()); } } }