/** * */ package com.grendelscan.ui.http.transactionTable; import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.eclipse.jface.viewers.Viewer; import com.grendelscan.commons.http.transactions.StandardHttpTransaction; import com.grendelscan.ui.customControls.dataTable.TableDataRepository; /** * @author david * */ public class TransactionSummaryProvider implements TableDataRepository<TransactionSummary> { protected Map<Integer, TransactionSummary> transactions; private long lastUpdatedTime; public TransactionSummaryProvider(Map<Integer, TransactionSummary> transactions) { this.transactions = Collections.synchronizedMap(new HashMap<Integer, TransactionSummary>(500)); if (transactions != null) { this.transactions.putAll(transactions); } } public void addOrUpdateTransaction(StandardHttpTransaction transaction) { if (transactions.containsKey(transaction.getId())) { transactions.get(transaction.getId()).updateSummary(transaction); } else { transactions.put(transaction.getId(), new TransactionSummary(transaction)); } lastUpdatedTime = (new Date()).getTime(); } public void clear() { transactions.clear(); } public final Collection<TransactionSummary> getTransactionList() { return transactions.values(); } // /* (non-Javadoc) // * @see com.grendelscan.ui.customControls.dataTable.DataProvider#getData() // */ // @Override // public Collection<TransactionSummary> getData() // { // return getTransactionList(); // } /* (non-Javadoc) * @see com.grendelscan.ui.UpdateService.UpdateServiceDataProvider#getLastModified() */ @Override public long getLastModified() { return lastUpdatedTime; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) */ @Override public Object[] getElements(Object inputElement) { return transactions.values().toArray(); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#dispose() */ @Override public void dispose() { // TODO Auto-generated method stub } /* (non-Javadoc) * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object) */ @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // TODO Auto-generated method stub } }