Start implimentating report on Node

This commit is contained in:
Nikita Iryupin 2020-12-27 17:20:00 +01:00
parent 5426ffcf02
commit 7f5dace718
5 changed files with 57 additions and 2 deletions

View File

@ -175,6 +175,26 @@ public class NodeBase implements ChannelObserver {
return money;
}
public Map<ChannelBase, ChannelSubscriptionType> getSubscribedChannels() {
return subscribedChannels;
}
public List<Product> getProducts() {
return products;
}
public List<Transaction> getRefusedTransactions() {
return refusedTransactions;
}
public NodeType getAllowedSeller() {
return allowedSeller;
}
public NodeType getAllowedPurchaser() {
return allowedPurchaser;
}
public void addMoney(MonetaryAmount m) {
this.money = this.money.add(m);
}

View File

@ -1,6 +1,7 @@
package cz.cvut.fel.sit.omo.foodchain.operation;
import cz.cvut.fel.sit.omo.foodchain.node.base.NodeBase;
import cz.cvut.fel.sit.omo.foodchain.reporting.ReportTextVisitor;
import javax.money.MonetaryAmount;
import javax.naming.InsufficientResourcesException;
@ -40,4 +41,9 @@ public class FinancialTransaction extends Transaction {
", transactionPaid=" + transactionPaid +
'}';
}
@Override
public String accept(ReportTextVisitor visitor) {
return visitor.visit(this);
}
}

View File

@ -3,6 +3,7 @@ package cz.cvut.fel.sit.omo.foodchain.operation;
import cz.cvut.fel.sit.omo.foodchain.node.base.NodeBase;
import cz.cvut.fel.sit.omo.foodchain.product.Product;
import cz.cvut.fel.sit.omo.foodchain.product.ProductState;
import cz.cvut.fel.sit.omo.foodchain.reporting.ReportTextVisitor;
import javax.naming.InsufficientResourcesException;
@ -49,4 +50,9 @@ public class ProductTransaction extends Transaction {
"product=" + product.getName() +
'}';
}
@Override
public String accept(ReportTextVisitor visitor) {
return visitor.visit(this);
}
}

View File

@ -1,6 +1,7 @@
package cz.cvut.fel.sit.omo.foodchain.operation;
import cz.cvut.fel.sit.omo.foodchain.node.base.NodeBase;
import cz.cvut.fel.sit.omo.foodchain.reporting.ReportTextVisitor;
import cz.cvut.fel.sit.omo.foodchain.signature.Signature;
import cz.cvut.fel.sit.omo.foodchain.signature.SignatureManager;
@ -42,4 +43,6 @@ public abstract class Transaction extends OperationBase {
", nodeReceiver=" + nodeReceiver.getClass().getSimpleName() +
'}';
}
public abstract String accept(ReportTextVisitor visitor);
}

View File

@ -2,13 +2,25 @@ package cz.cvut.fel.sit.omo.foodchain.reporting;
import cz.cvut.fel.sit.omo.foodchain.channel.ChannelBase;
import cz.cvut.fel.sit.omo.foodchain.node.base.NodeBase;
import cz.cvut.fel.sit.omo.foodchain.operation.FinancialTransaction;
import cz.cvut.fel.sit.omo.foodchain.operation.OperationBase;
import cz.cvut.fel.sit.omo.foodchain.operation.ProductTransaction;
import cz.cvut.fel.sit.omo.foodchain.operation.Transaction;
import cz.cvut.fel.sit.omo.foodchain.product.Product;
public class ReportTextVisitor {
public String visit(NodeBase node){
private static final String ln = System.lineSeparator();
return null;
public String visit(NodeBase node){
StringBuilder result = new StringBuilder();
result.append("Node info: ").append(ln)
.append("Allowed seller: ").append(node.getAllowedSeller()).append(ln)
.append("Allowed purchaser: ").append(node.getAllowedPurchaser()).append(ln)
.append("Money: ").append(node.getMoney()).append(ln)
.append("Refused transactions: ");
node.getRefusedTransactions().forEach(tr -> result.append(tr.accept(this)));
return result.toString();
}
public String visit(ChannelBase channel){
@ -19,4 +31,12 @@ public class ReportTextVisitor {
public String visit(Product product){
return null;
}
public String visit(ProductTransaction transaction){
return null;
}
public String visit(FinancialTransaction transaction){
return null;
}
}