From e73762eec41a5aa87a0719c9ede660f8ada4be2d Mon Sep 17 00:00:00 2001 From: Nikita Iryupin Date: Fri, 25 Dec 2020 12:30:21 +0100 Subject: [PATCH] Some more fixes of NodeBase --- .../fel/sit/omo/foodchain/node/NodeBase.java | 27 ++++++++----------- .../operation/FinancialTransaction.java | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/NodeBase.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/NodeBase.java index 3d5c61c..ede1db0 100644 --- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/NodeBase.java +++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/NodeBase.java @@ -19,9 +19,12 @@ public class NodeBase implements ChannelObserver { private final List products; private MonetaryAmount money; + private final List refusedTranslations; + public NodeBase() { subscribedChannels = new LinkedList<>(); products = new LinkedList<>(); + refusedTranslations = new LinkedList<>(); } @@ -34,11 +37,11 @@ public class NodeBase implements ChannelObserver { } - public void sendTransaction(MonetaryAmount amount, NodeBase node) { - Transaction transaction = new FinancialTransaction(this, node, TransactionType.PURCHASE, amount, ); + public void sendTransaction(MonetaryAmount amount, NodeBase node, ProductTransaction prevTransaction) { + Transaction transaction = new FinancialTransaction(this, node, TransactionType.PURCHASE, amount, prevTransaction); subscribedChannels.stream() - .filter(ch -> ch.getProductType().equals(product.getProductType())) + .filter(ch -> ch.getProductType().equals(prevTransaction.getProduct().getProductType())) .findAny().ifPresent(channel -> channel.addTransaction(transaction)); } @@ -53,26 +56,18 @@ public class NodeBase implements ChannelObserver { } - public void refuseTransaction(ProductTransaction transaction) { - + public void refuseTransaction(Transaction transaction) { + transaction.endTransaction(); + refusedTranslations.add(transaction); //TODO maybe need more work on it } - - public void refuseTransaction(FinancialTransaction transaction) { - - } - - //TODO another way to read transaction - public Transaction readNextTransaction(ChannelBase channel) { + + return channel.getNextTransaction(); } - public Requirement readNextRequirement(ChannelBase channel) { - return channel.getNextRequirement(); - } - public void acceptRequirement(Requirement requirement) { diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/operation/FinancialTransaction.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/operation/FinancialTransaction.java index d498393..a2a9128 100644 --- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/operation/FinancialTransaction.java +++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/operation/FinancialTransaction.java @@ -9,7 +9,7 @@ public class FinancialTransaction extends Transaction { private final MonetaryAmount amount; private final ProductTransaction transactionPaid; - FinancialTransaction(NodeBase creator, NodeBase receiver, TransactionType type, MonetaryAmount amount, ProductTransaction transactionPaid) { + public FinancialTransaction(NodeBase creator, NodeBase receiver, TransactionType type, MonetaryAmount amount, ProductTransaction transactionPaid) { super(creator, receiver, type); this.amount = amount; this.transactionPaid = transactionPaid;