From d3378d37d4a720ce8986a9dca7829ed17d4f5e01 Mon Sep 17 00:00:00 2001 From: Nikita Iryupin Date: Mon, 30 Nov 2020 15:39:49 +0100 Subject: [PATCH] Fixed intterface and abstract class after consultansion --- .../fel/sit/omo/foodchain/node/INode.java | 20 +++++---- .../fel/sit/omo/foodchain/node/NodeBase.java | 43 +++++++++++++------ 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/INode.java b/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/INode.java index 953ebb1..3600255 100644 --- a/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/INode.java +++ b/src/main/java/cz/cvut/fel/sit/omo/foodchain/node/INode.java @@ -1,22 +1,26 @@ package cz.cvut.fel.sit.omo.foodchain.node; import cz.cvut.fel.sit.omo.foodchain.channel.IChannel; -import cz.cvut.fel.sit.omo.foodchain.operation.Action; -import cz.cvut.fel.sit.omo.foodchain.operation.Transaction; +import cz.cvut.fel.sit.omo.foodchain.operation.*; import cz.cvut.fel.sit.omo.foodchain.product.Product; import cz.cvut.fel.sit.omo.foodchain.product.ProductType; import cz.cvut.fel.sit.omo.foodchain.requirement.Requirement; import cz.cvut.fel.sit.omo.foodchain.signature.Signature; -import java.util.LinkedList; import java.util.List; public interface INode { - void sendTransaction(Product product, INode INode); + void sendTransaction(Product product, INode node); - void receiveTransaction(Transaction transaction); + void sendTransaction(MonetaryAmount amount, INode node); - void refuseTransaction(Transaction transaction); + void receiveTransaction(ProductTransaction transaction); + + void receiveTransaction(FinancialTransaction transaction); + + void refuseTransaction(ProductTransaction transaction); + + void refuseTransaction(FinancialTransaction transaction); Transaction readNextTransaction(IChannel channel); @@ -28,9 +32,9 @@ public interface INode { void unsubscribeFromChannel(IChannel channel); - void doAction(Action action, Product product); + void doAction(ProductOperationType action, Product product); - void doAction(Action action); + void doAction(ProductOperationType action); void storeProduct(Product product); 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 f0e9cd5..4fd7d30 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 @@ -1,9 +1,7 @@ package cz.cvut.fel.sit.omo.foodchain.node; import cz.cvut.fel.sit.omo.foodchain.channel.IChannel; -import cz.cvut.fel.sit.omo.foodchain.operation.Action; -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.operation.*; import cz.cvut.fel.sit.omo.foodchain.product.Product; import cz.cvut.fel.sit.omo.foodchain.product.ProductType; import cz.cvut.fel.sit.omo.foodchain.requirement.Requirement; @@ -14,17 +12,17 @@ import java.util.List; public class NodeBase implements INode { - List subscribedChannels; + private final List subscribedChannels; + private final List products; public NodeBase(){ subscribedChannels = new LinkedList<>(); + products = new LinkedList<>(); } @Override public void sendTransaction(Product product, INode node) { - Transaction transaction = new ProductTransaction(); - transaction.setProduct(product); - transaction.setGoal(node); + Transaction transaction = new ProductTransaction(product, node); subscribedChannels.stream() .filter(ch -> ch.getProductType().equals(product.getType())) @@ -32,15 +30,31 @@ public class NodeBase implements INode { } @Override - public void receiveTransaction(Transaction transaction) { - //TODO + public void sendTransaction(MonetaryAmount amount, INode node) { + } @Override - public void refuseTransaction(Transaction transaction) { + public void receiveTransaction(ProductTransaction transaction) { } + @Override + public void receiveTransaction(FinancialTransaction transaction) { + + } + + @Override + public void refuseTransaction(ProductTransaction transaction) { + + } + + @Override + public void refuseTransaction(FinancialTransaction transaction) { + + } + + @Override public Transaction readNextTransaction(IChannel channel) { return channel.getNextTransaction(); @@ -67,15 +81,16 @@ public class NodeBase implements INode { } @Override - public void doAction(Action action, Product product) { - action.doWithProduct(product); + public void doAction(ProductOperationType action, Product product) { + //create new action } @Override - public void doAction(Action action) { - action.doActionWithNodeContext(this); + public void doAction(ProductOperationType action) { + //create new action } + @Override public void storeProduct(Product product) {