diff --git a/solution-lab-2.02-maven/order-data/order-data.iml b/solution-lab-2.02-maven/order-data/order-data.iml new file mode 100644 index 0000000..056f882 --- /dev/null +++ b/solution-lab-2.02-maven/order-data/order-data.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/solution-lab-2.02-maven/order-data/pom.xml b/solution-lab-2.02-maven/order-data/pom.xml new file mode 100644 index 0000000..bd41f8c --- /dev/null +++ b/solution-lab-2.02-maven/order-data/pom.xml @@ -0,0 +1,29 @@ + + + 4.0.0 + + + com.ironhack + solution-lab-2.02-maven + 1.0-SNAPSHOT + + + order-data + jar + + Order Data Module + + + + com.google.code.gson + gson + + + org.slf4j + slf4j-api + + + + \ No newline at end of file diff --git a/solution-lab-2.02-maven/order-data/src/main/java/Order.java b/solution-lab-2.02-maven/order-data/src/main/java/Order.java new file mode 100644 index 0000000..30d5931 --- /dev/null +++ b/solution-lab-2.02-maven/order-data/src/main/java/Order.java @@ -0,0 +1,51 @@ +import java.util.List; + +public class Order { + private String orderId; + private String customerName; + private List items; + private double total; + + + public String getOrderId() { + return orderId; + } + + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + + public double getTotal() { + return total; + } + + public void setTotal(double total) { + this.total = total; + } + + @Override + public String toString() { + return "Order{" + + "orderId='" + orderId + '\'' + + ", customerName='" + customerName + '\'' + + ", items=" + items + + ", total=" + total + + '}'; + } +} diff --git a/solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java b/solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java new file mode 100644 index 0000000..68a0e59 --- /dev/null +++ b/solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java @@ -0,0 +1,40 @@ +public class OrderItem { + private String productName; + private int quantity; + private double unitPrice; + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + public double getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(double unitPrice) { + this.unitPrice = unitPrice; + } + public double getSubtotal() { + return quantity * unitPrice; + } + @Override + public String toString() { + return "OrderItem{" + + "productName='" + productName + '\'' + + ", quantity=" + quantity + + ", unitPrice=" + unitPrice + + '}'; + } +} \ No newline at end of file diff --git a/solution-lab-2.02-maven/order-data/src/main/java/OrderProcessor.java b/solution-lab-2.02-maven/order-data/src/main/java/OrderProcessor.java new file mode 100644 index 0000000..18a0f11 --- /dev/null +++ b/solution-lab-2.02-maven/order-data/src/main/java/OrderProcessor.java @@ -0,0 +1,29 @@ + + +import com.google.gson.Gson; + +public class OrderProcessor { + public static void main(String[] args) { + String json = """ + { + "orderId": "ORD-2026-0042", + "customerName": "revan abusov", + "items": [ + {"productName": "Wireless Mouse", "quantity": 2, "unitPrice": 45.50}, + {"productName": "Mechanical Keyboard", "quantity": 1, "unitPrice": 120.00}, + {"productName": "USB-C Hub", "quantity": 3, "unitPrice": 28.75} + ], + "total": 296.75 + } + """; + Gson gson = new Gson(); + Order order = gson.fromJson(json, Order.class); + System.out.println("=== Parsed Order ==="); + System.out.println(order); + System.out.println("\nItems:"); + for (OrderItem item : order.getItems()) { + System.out.printf(" • %s × %d = %.2f $%n", + item.getProductName(), item.getQuantity(), item.getSubtotal()); + } + } +} \ No newline at end of file diff --git a/solution-lab-2.02-maven/order-data/target/classes/Order.class b/solution-lab-2.02-maven/order-data/target/classes/Order.class new file mode 100644 index 0000000..aa8c49d Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/classes/Order.class differ diff --git a/solution-lab-2.02-maven/order-data/target/classes/OrderItem.class b/solution-lab-2.02-maven/order-data/target/classes/OrderItem.class new file mode 100644 index 0000000..616b5e3 Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/classes/OrderItem.class differ diff --git a/solution-lab-2.02-maven/order-data/target/classes/OrderProcessor.class b/solution-lab-2.02-maven/order-data/target/classes/OrderProcessor.class new file mode 100644 index 0000000..854233d Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/classes/OrderProcessor.class differ diff --git a/solution-lab-2.02-maven/order-data/target/maven-archiver/pom.properties b/solution-lab-2.02-maven/order-data/target/maven-archiver/pom.properties new file mode 100644 index 0000000..3b8ec5c --- /dev/null +++ b/solution-lab-2.02-maven/order-data/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=order-data +groupId=com.ironhack +version=1.0-SNAPSHOT diff --git a/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..a805e65 --- /dev/null +++ b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,3 @@ +Order.class +OrderItem.class +OrderProcessor.class diff --git a/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..332c012 --- /dev/null +++ b/solution-lab-2.02-maven/order-data/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,3 @@ +C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-data\src\main\java\Order.java +C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-data\src\main\java\OrderItem.java +C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-data\src\main\java\OrderProcessor.java diff --git a/solution-lab-2.02-maven/order-data/target/order-data-1.0-SNAPSHOT.jar b/solution-lab-2.02-maven/order-data/target/order-data-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..1588dff Binary files /dev/null and b/solution-lab-2.02-maven/order-data/target/order-data-1.0-SNAPSHOT.jar differ diff --git a/solution-lab-2.02-maven/order-logic/pom.xml b/solution-lab-2.02-maven/order-logic/pom.xml new file mode 100644 index 0000000..8687836 --- /dev/null +++ b/solution-lab-2.02-maven/order-logic/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + + com.ironhack + solution-lab-2.02-maven + 1.0-SNAPSHOT + + + order-logic + jar + + Order Logic Module + + + + az.example + order-data + ${project.version} + + + org.slf4j + slf4j-api + + + + \ No newline at end of file diff --git a/solution-lab-2.02-maven/order-logic/src/main/java/OrderCalculator.java b/solution-lab-2.02-maven/order-logic/src/main/java/OrderCalculator.java new file mode 100644 index 0000000..66c4866 --- /dev/null +++ b/solution-lab-2.02-maven/order-logic/src/main/java/OrderCalculator.java @@ -0,0 +1,52 @@ +import java.util.List; +public class OrderCalculator { + + public static void main(String[] args) { + Order order = createSampleOrder(); + System.out.println("=== Order Summary ==="); + System.out.println("client: "+order.getCustomerName()); + System.out.println("order no: "+order.getOrderId()); + double calculatedTotal = 0; + int totalItems = 0; + System.out.println("\n order details:"); + for (OrderItem item : order.getItems()) { + double subtotal = item.getSubtotal(); + calculatedTotal += subtotal; + totalItems += item.getQuantity(); + System.out.printf(" • %-22s × %2d=%8.2f $%n", + item.getProductName(), item.getQuantity(), subtotal); + } + System.out.printf("total:%8.2f $%n",calculatedTotal); + System.out.printf("JSON total:%8.2f $%n", order.getTotal()); + System.out.printf("total number:%d number%n",totalItems); + if (Math.abs(calculatedTotal - order.getTotal()) > 0.01) { + System.out.println("Error: something wrong"); + } else { + System.out.println("Total values is okey"); + } + } + private static Order createSampleOrder() { + Order order = new Order(); + order.setOrderId("ORD-2026-0042"); + order.setCustomerName("revan abusov"); + + OrderItem mouse = new OrderItem(); + mouse.setProductName("Wireless Mouse"); + mouse.setQuantity(2); + mouse.setUnitPrice(45.50); + + OrderItem keyboard = new OrderItem(); + keyboard.setProductName("Mechanical Keyboard"); + keyboard.setQuantity(1); + keyboard.setUnitPrice(120.00); + + OrderItem hub = new OrderItem(); + hub.setProductName("USB-C Hub"); + hub.setQuantity(3); + hub.setUnitPrice(28.75); + order.setItems(List.of(mouse, keyboard, hub)); + double total = mouse.getSubtotal() + keyboard.getSubtotal() + hub.getSubtotal(); + order.setTotal(total); + return order; + } +} \ No newline at end of file diff --git a/solution-lab-2.02-maven/order-logic/target/classes/OrderCalculator.class b/solution-lab-2.02-maven/order-logic/target/classes/OrderCalculator.class new file mode 100644 index 0000000..d9b63fe Binary files /dev/null and b/solution-lab-2.02-maven/order-logic/target/classes/OrderCalculator.class differ diff --git a/solution-lab-2.02-maven/order-logic/target/maven-archiver/pom.properties b/solution-lab-2.02-maven/order-logic/target/maven-archiver/pom.properties new file mode 100644 index 0000000..4966a55 --- /dev/null +++ b/solution-lab-2.02-maven/order-logic/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=order-logic +groupId=com.ironhack +version=1.0-SNAPSHOT diff --git a/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..66f66a4 --- /dev/null +++ b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1 @@ +OrderCalculator.class diff --git a/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..e3bbb0f --- /dev/null +++ b/solution-lab-2.02-maven/order-logic/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1 @@ +C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-logic\src\main\java\OrderCalculator.java diff --git a/solution-lab-2.02-maven/order-logic/target/order-logic-1.0-SNAPSHOT.jar b/solution-lab-2.02-maven/order-logic/target/order-logic-1.0-SNAPSHOT.jar new file mode 100644 index 0000000..354cba2 Binary files /dev/null and b/solution-lab-2.02-maven/order-logic/target/order-logic-1.0-SNAPSHOT.jar differ diff --git a/solution-lab-2.02-maven/pom.xml b/solution-lab-2.02-maven/pom.xml new file mode 100644 index 0000000..1a89434 --- /dev/null +++ b/solution-lab-2.02-maven/pom.xml @@ -0,0 +1,73 @@ + + + 4.0.0 + + com.ironhack + solution-lab-2.02-maven + 1.0-SNAPSHOT + pom + + Lab 2.02 - Multi-module Maven Solution + + + 17 + UTF-8 + ${java.version} + ${java.version} + 2.11.0 + 2.0.16 + + + + order-data + order-logic + + + + + + com.google.code.gson + gson + ${gson.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + + + + central + Maven Central + https://repo.maven.apache.org/maven2 + + + + + + central + Maven Central + https://repo.maven.apache.org/maven2 + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + ${java.version} + ${java.version} + + + + + + \ No newline at end of file