Skip to content
Snippets Groups Projects
Commit 643f21ad authored by Simon Könnecke's avatar Simon Könnecke
Browse files

added SuperVisor Stats for the snapshot

parent 1c413a97
No related branches found
No related tags found
Loading
......@@ -12,13 +12,11 @@ import fucoin.actions.SuperVisorAction;
import fucoin.gui.SuperVisorGuiControl;
import fucoin.AbstractNode;
import fucoin.gui.TransactionLogger;
import fucoin.wallet.WalletStatistics;
import javax.swing.*;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.Map.Entry;
public class SuperVisorImpl extends AbstractNode implements TransactionLogger {
......@@ -171,7 +169,29 @@ public class SuperVisorImpl extends AbstractNode implements TransactionLogger {
}
public void createDump(LocalTime time) {
String str = new Gson().toJson(this.gui.getTable());
Snapshot snapshot = new Snapshot();
snapshot.amountTableModel = this.gui.getTable();
snapshot.statistics = new WalletStatistics();
int sum = 0;
Vector rows = snapshot.amountTableModel.getDataVector();
for (int i = 0; i < rows.size(); i++) {
if (rows.get(i) instanceof Vector) {
Vector<Object> row = (Vector<Object>) rows.get(i);
int amount = (Integer) row.get(2);
snapshot.statistics.setMin(amount);
snapshot.statistics.setMax(amount);
sum += amount;
}
}
snapshot.statistics.setSum(sum);
snapshot.statistics.setCount(rows.size());
snapshot.statistics.setAvg(sum / rows.size());
String str = new Gson().toJson(snapshot);
super.createDump("SuperVisor", str, time);
}
class Snapshot {
WalletStatistics statistics;
AmountTableModel amountTableModel;
}
}
......@@ -272,6 +272,7 @@ public class WalletImpl extends AbstractWallet {
f.getName().equals("min") ||
f.getName().equals("max") ||
f.getName().equals("sum") ||
f.getName().equals("avg") ||
f.getName().equals("count") ||
f.getName().equals("amount") ||
f.getName().equals("name"));
......
......@@ -8,27 +8,28 @@ import java.io.Serializable;
public class WalletStatistics implements Serializable {
private int min;
private int max;
private int avg;
private int sum;
private int count;
public WalletStatistics() {
this.min = Integer.MAX_VALUE;
this.max = Integer.MIN_VALUE;
this.sum = 0;
this.avg = 0;
this.count = 0;
}
public WalletStatistics(int min, int max, int sum, int count) {
public WalletStatistics(int min, int max, int avg, int count) {
this.min = min;
this.max = max;
this.sum = sum;
this.avg = avg;
this.count = count;
}
public void update(int currentWalletAmount) {
setMin(currentWalletAmount);
setMax(currentWalletAmount);
setSum(currentWalletAmount);
setAvg((getAvg() + currentWalletAmount) / 2);
}
public int getMin() {
......@@ -47,12 +48,12 @@ public class WalletStatistics implements Serializable {
this.max = Math.max(this.max, max);
}
public int getSum() {
return sum;
public int getAvg() {
return avg;
}
public void setSum(int sum) {
this.sum = (this.sum + sum) / 2;
public void setAvg(int avg) {
this.avg = avg;
}
public int getCount() {
......@@ -60,6 +61,14 @@ public class WalletStatistics implements Serializable {
}
public void setCount(int count) {
this.count = (this.count + count) / 2;
this.count = count;
}
public int getSum() {
return sum;
}
public void setSum(int sum) {
this.sum = sum;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment