/*
* 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 TransactionFactory {
private static TransactionFactory instance = new TransactionFactory();
public static TransactionFactory getInstance() {
return instance;
}
private TransactionFactory() {
}
public Vector getAllTransactions() throws StockPlayException {
return getTransactionByFilter("");
}
public Vector getTransactionByFilter(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.Transaction.List", params);
for (Enumeration e = users.elements(); e.hasMoreElements();) {
result.addElement(Transaction.fromStruct((Hashtable) e.nextElement()));
}
return result;
} catch (Exception ex) {
throw new RequestError(ex.getMessage());
}
}
public Transaction getTransactionById(int id) throws StockPlayException {
Vector users = getTransactionByFilter("id == '" + id + "'");
if(!users.isEmpty())
return (Transaction)users.firstElement();
else
return null;
}
}