diff --git a/StockManagement/.classpath b/StockManagement/.classpath new file mode 100644 index 0000000..51a8bba --- /dev/null +++ b/StockManagement/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/StockManagement/.gitignore b/StockManagement/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/StockManagement/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/StockManagement/.project b/StockManagement/.project new file mode 100644 index 0000000..57c78d2 --- /dev/null +++ b/StockManagement/.project @@ -0,0 +1,17 @@ + + + StockManagement + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/StockManagement/.settings/org.eclipse.jdt.core.prefs b/StockManagement/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ec1937b --- /dev/null +++ b/StockManagement/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/StockManagement/src/Arrival.java b/StockManagement/src/Arrival.java new file mode 100644 index 0000000..df16c68 --- /dev/null +++ b/StockManagement/src/Arrival.java @@ -0,0 +1,19 @@ +import java.util.*; + +public class Arrival { + private Available available; + private Stock stock; + private Map.Entry value; + public Arrival(Available available, Stock stock) { + this.available = available; + this.stock = stock; + } + public void arrive(int num, String item) { + this.value = new AbstractMap.SimpleEntry<>(item, num); + Map stock = this.stock.getValue(); + this.available.updateArrival(value, stock); + } + public Map.Entry getValue() { + return new AbstractMap.SimpleEntry<>(value); + } +} \ No newline at end of file diff --git a/StockManagement/src/Available.java b/StockManagement/src/Available.java new file mode 100644 index 0000000..d8a2cdc --- /dev/null +++ b/StockManagement/src/Available.java @@ -0,0 +1,26 @@ +import java.util.*; + +public class Available { + private Shortage shortage; + private Deriver deriver; + private Map.Entry value; + public void updateArrival(Map.Entry arrival, Map stock) { + Map shortage = this.shortage.getValue(); + int temp_get3; + if (stock.get(arrival.getKey()) != null) { + temp_get3 = stock.get(arrival.getKey()); + } else { + temp_get3 = 0; + } + value = new AbstractMap.SimpleEntry<>(arrival.getKey(), (arrival.getValue()+temp_get3)); + this.shortage.updateAvailable(value); + this.deriver.updateAvailable(value, shortage); + } + public Available(Shortage shortage, Deriver deriver) { + this.shortage = shortage; + this.deriver = deriver; + } + public Map.Entry getValue() { + return new AbstractMap.SimpleEntry<>(value); + } +} \ No newline at end of file diff --git a/StockManagement/src/Deriver.java b/StockManagement/src/Deriver.java new file mode 100644 index 0000000..939b6ec --- /dev/null +++ b/StockManagement/src/Deriver.java @@ -0,0 +1,72 @@ +import java.util.*; + +public class Deriver { + private Map.Entry available; + private Map.Entry request; + private Stock stock; + private Map.Entry> value; + public void updateAvailable(Map.Entry available, Map shortage) { + this.available = available; + Map.Entry> temp_if2; + int temp_get4; + if (shortage.get(available.getKey()) != null) { + temp_get4 = shortage.get(available.getKey()); + } else { + temp_get4 = 0; + } + if ((available.getValue()>=temp_get4)) { + int temp_get5; + if (shortage.get(available.getKey()) != null) { + temp_get5 = shortage.get(available.getKey()); + } else { + temp_get5 = 0; + } + int temp_get6; + if (shortage.get(available.getKey()) != null) { + temp_get6 = shortage.get(available.getKey()); + } else { + temp_get6 = 0; + } + temp_if2 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(temp_get5, (available.getValue()-temp_get6))); + } else { + temp_if2 = new AbstractMap.SimpleEntry<>(available.getKey(), new AbstractMap.SimpleEntry<>(0, available.getValue())); + } + value = temp_if2; + this.stock.updateDeriver(value); + } + public void updateRequest(Map.Entry request, Map stock) { + this.request = request; + Map.Entry> temp_if3; + int temp_get7; + if (stock.get(request.getKey()) != null) { + temp_get7 = stock.get(request.getKey()); + } else { + temp_get7 = 0; + } + if ((temp_get7>=request.getValue())) { + int temp_get8; + if (stock.get(request.getKey()) != null) { + temp_get8 = stock.get(request.getKey()); + } else { + temp_get8 = 0; + } + temp_if3 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(request.getValue(), (temp_get8-request.getValue()))); + } else { + int temp_get9; + if (stock.get(request.getKey()) != null) { + temp_get9 = stock.get(request.getKey()); + } else { + temp_get9 = 0; + } + temp_if3 = new AbstractMap.SimpleEntry<>(request.getKey(), new AbstractMap.SimpleEntry<>(0, temp_get9)); + } + value = temp_if3; + this.stock.updateDeriver(value); + } + public Deriver(Stock stock) { + this.stock = stock; + } + public Map.Entry> getValue() { + return new AbstractMap.SimpleEntry<>(value); + } +} \ No newline at end of file diff --git a/StockManagement/src/Main.java b/StockManagement/src/Main.java new file mode 100644 index 0000000..a143575 --- /dev/null +++ b/StockManagement/src/Main.java @@ -0,0 +1,71 @@ +import java.util.Map; + +public class Main { + + public static void main(String[] args) { + StockManagement stockMan = new StockManagement(); + stockMan.arrive(10, "A"); + System.out.println("Arrive A: 10"); + stockMan.arrive(20, "B"); + System.out.println("Arrive B: 20"); + + Map stock1 = stockMan.getStock(); + Map shortage1 = stockMan.getShortage(); + Map.Entry shipping1 = stockMan.getShipping(); + System.out.println("stock:"); + System.out.println("A: " + stock1.get("A")); + System.out.println("B: " + stock1.get("B")); + System.out.println("shotage:"); + System.out.println("A: " + shortage1.get("A")); + System.out.println("B: " + shortage1.get("B")); + System.out.println("shipping:"); + if (shipping1 != null) System.out.println(shipping1.getKey() +": " + shipping1.getValue()); + + + stockMan.req(5, "A"); + System.out.println("Request A: 5"); + + Map stock2 = stockMan.getStock(); + Map shortage2 = stockMan.getShortage(); + Map.Entry shipping2 = stockMan.getShipping(); + System.out.println("stock:"); + System.out.println("A: " + stock2.get("A")); + System.out.println("B: " + stock2.get("B")); + System.out.println("shotage:"); + System.out.println("A: " + shortage2.get("A")); + System.out.println("B: " + shortage2.get("B")); + System.out.println("shipping:"); + if (shipping2 != null) System.out.println(shipping2.getKey() +": " + shipping2.getValue()); + + stockMan.req(10, "A"); + System.out.println("Request A: 10"); + + Map stock3 = stockMan.getStock(); + Map shortage3 = stockMan.getShortage(); + Map.Entry shipping3 = stockMan.getShipping(); + System.out.println("stock:"); + System.out.println("A: " + stock3.get("A")); + System.out.println("B: " + stock3.get("B")); + System.out.println("shotage:"); + System.out.println("A: " + shortage3.get("A")); + System.out.println("B: " + shortage3.get("B")); + System.out.println("shipping:"); + if (shipping3 != null) System.out.println(shipping3.getKey() +": " + shipping3.getValue()); + + stockMan.arrive(10, "A"); + System.out.println("Arrive A: 10"); + + Map stock4 = stockMan.getStock(); + Map shortage4 = stockMan.getShortage(); + Map.Entry shipping4 = stockMan.getShipping(); + System.out.println("stock:"); + System.out.println("A: " + stock4.get("A")); + System.out.println("B: " + stock4.get("B")); + System.out.println("shotage:"); + System.out.println("A: " + shortage4.get("A")); + System.out.println("B: " + shortage4.get("B")); + System.out.println("shipping:"); + if (shipping4 != null) System.out.println(shipping4.getKey() +": " + shipping4.getValue()); + } + +} diff --git a/StockManagement/src/Request.java b/StockManagement/src/Request.java new file mode 100644 index 0000000..5af6d92 --- /dev/null +++ b/StockManagement/src/Request.java @@ -0,0 +1,22 @@ +import java.util.*; + +public class Request { + private Shortage shortage; + private Deriver deriver; + private Stock stock; + private Map.Entry value; + public Request(Shortage shortage, Deriver deriver, Stock stock) { + this.shortage = shortage; + this.deriver = deriver; + this.stock = stock; + } + public void req(int num, String item) { + this.value = new AbstractMap.SimpleEntry<>(item, num); + Map stock = this.stock.getValue(); + this.shortage.updateRequest(value, stock); + this.deriver.updateRequest(value, stock); + } + public Map.Entry getValue() { + return new AbstractMap.SimpleEntry<>(value); + } +} \ No newline at end of file diff --git a/StockManagement/src/Shipping.java b/StockManagement/src/Shipping.java new file mode 100644 index 0000000..14feee7 --- /dev/null +++ b/StockManagement/src/Shipping.java @@ -0,0 +1,11 @@ +import java.util.*; + +public class Shipping { + private Deriver deriver; + public Shipping(Deriver deriver) { + this.deriver = deriver; + } + public Map.Entry getValue() { + return new AbstractMap.SimpleEntry<>(this.deriver.getValue().getKey(), this.deriver.getValue().getValue().getKey()); + } +} \ No newline at end of file diff --git a/StockManagement/src/Shortage.java b/StockManagement/src/Shortage.java new file mode 100644 index 0000000..e4e33f0 --- /dev/null +++ b/StockManagement/src/Shortage.java @@ -0,0 +1,50 @@ +import java.util.*; + +public class Shortage { + private Map.Entry request; + private Map.Entry available; + private Map value = new HashMap(); + public void updateRequest(Map.Entry request, Map stock) { + this.request = request; + Map temp_if0; + int temp_get0; + if (stock.get(request.getKey()) != null) { + temp_get0 = stock.get(request.getKey()); + } else { + temp_get0 = 0; + } + if ((temp_get0>=request.getValue())) { + temp_if0 = this.value; + } else { + int temp_get1; + if (this.value.get(request.getKey()) != null) { + temp_get1 = this.value.get(request.getKey()); + } else { + temp_get1 = 0; + } + this.value.put(request.getKey(),(temp_get1+request.getValue())); + temp_if0 = this.value; + } + value = temp_if0; + } + public void updateAvailable(Map.Entry available) { + this.available = available; + Map temp_if1; + int temp_get2; + if (this.value.get(available.getKey()) != null) { + temp_get2 = this.value.get(available.getKey()); + } else { + temp_get2 = 0; + } + if ((available.getValue()>=temp_get2)) { + this.value.put(available.getKey(),0); + temp_if1 = this.value; + } else { + temp_if1 = this.value; + } + value = temp_if1; + } + public Map getValue() { + return new HashMap<>(value); + } +} \ No newline at end of file diff --git a/StockManagement/src/Stock.java b/StockManagement/src/Stock.java new file mode 100644 index 0000000..a02bc72 --- /dev/null +++ b/StockManagement/src/Stock.java @@ -0,0 +1,11 @@ +import java.util.*; + +public class Stock { + private Map value = new HashMap(); + public void updateDeriver(Map.Entry> deriver) { + this.value.put(deriver.getKey(),deriver.getValue().getValue()); + } + public Map getValue() { + return new HashMap<>(value); + } +} \ No newline at end of file diff --git a/StockManagement/src/StockManagement.java b/StockManagement/src/StockManagement.java new file mode 100644 index 0000000..7de4e98 --- /dev/null +++ b/StockManagement/src/StockManagement.java @@ -0,0 +1,47 @@ +import java.util.*; + +public class StockManagement { + private Stock stock; + private Deriver deriver; + private Shortage shortage; + private Available available; + private Arrival arrival; + private Shipping shipping; + private Request request; + public StockManagement() { + stock = new Stock(); + deriver = new Deriver(stock); + shortage = new Shortage(); + available = new Available(shortage,deriver); + arrival = new Arrival(available,stock); + shipping = new Shipping(deriver); + request = new Request(shortage,deriver,stock); + } + public void arrive(int num, String item) { + this.arrival.arrive(num, item); + } + public void req(int num, String item) { + this.request.req(num, item); + } + public Map.Entry getRequest() { + return request.getValue(); + } + public Map.Entry getShipping() { + return shipping.getValue(); + } + public Map.Entry getArrival() { + return arrival.getValue(); + } + public Map getShortage() { + return shortage.getValue(); + } + public Map.Entry getAvailable() { + return available.getValue(); + } + public Map.Entry> getDeriver() { + return deriver.getValue(); + } + public Map getStock() { + return stock.getValue(); + } +} \ No newline at end of file