From 06e308158cdd93dabb66356aaad6312e3b804eee Mon Sep 17 00:00:00 2001 From: Ali Safarli Date: Wed, 25 Feb 2026 15:32:29 +0400 Subject: [PATCH] Lab was compltede --- .gitignore | 39 ++++++++++ .idea/.gitignore | 8 ++ .idea/copilot.data.migration.ask2agent.xml | 6 ++ .idea/encodings.xml | 11 +++ .idea/misc.xml | 15 ++++ .idea/vcs.xml | 6 ++ Order-logic/pom.xml | 32 ++++++++ .../main/java/ironhack/OrderCalculator.java | 53 ++++++++++++++ order-data/pom.xml | 30 ++++++++ order-data/src/main/java/ironhack/Item.java | 73 +++++++++++++++++++ order-data/src/main/java/ironhack/Order.java | 60 +++++++++++++++ .../main/java/ironhack/OrderProcessor.java | 40 ++++++++++ pom.xml | 50 +++++++++++++ 13 files changed, 423 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/copilot.data.migration.ask2agent.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 Order-logic/pom.xml create mode 100644 Order-logic/src/main/java/ironhack/OrderCalculator.java create mode 100644 order-data/pom.xml create mode 100644 order-data/src/main/java/ironhack/Item.java create mode 100644 order-data/src/main/java/ironhack/Order.java create mode 100644 order-data/src/main/java/ironhack/OrderProcessor.java create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..480bdf5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ +.kotlin + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/copilot.data.migration.ask2agent.xml b/.idea/copilot.data.migration.ask2agent.xml new file mode 100644 index 0000000..1f2ea11 --- /dev/null +++ b/.idea/copilot.data.migration.ask2agent.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..9a48e16 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4508e96 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Order-logic/pom.xml b/Order-logic/pom.xml new file mode 100644 index 0000000..3809636 --- /dev/null +++ b/Order-logic/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + + com.ironhack + solution-lab-2.02-maven + 1.0-SNAPSHOT + + + + + Order-logic + + + + com.ironhack + order-data + 1.0-SNAPSHOT + + + + + + 17 + 17 + UTF-8 + + + \ No newline at end of file diff --git a/Order-logic/src/main/java/ironhack/OrderCalculator.java b/Order-logic/src/main/java/ironhack/OrderCalculator.java new file mode 100644 index 0000000..68361f3 --- /dev/null +++ b/Order-logic/src/main/java/ironhack/OrderCalculator.java @@ -0,0 +1,53 @@ +package ironhack; + + +import java.util.ArrayList; +import java.util.List; + +public class OrderCalculator { + + + + + public static double calculateTotalPrice(Order order) { + double total = 0; + for (Item item : order.getItems()) { + total += item.getQuantity() * item.getPrice(); + + } + return total; + } + + public static List filterItemsByPrice(Order order, double price){ + List filteredItems = new ArrayList<>(); + for (Item item : order.getItems()) { + if(item.getPrice()==price){ + filteredItems.add(item); + } + } + return filteredItems; + } + + public static void main(String[] args) { + OrderProcessor orderProcessor = new OrderProcessor(); + + + System.out.println("Total price: " + calculateTotalPrice(orderProcessor.order)); + System.out.println("Items with price 10.0: " + filterItemsByPrice(orderProcessor.order, 10.0)); + } + + + + + + + + + } + + + + + + + diff --git a/order-data/pom.xml b/order-data/pom.xml new file mode 100644 index 0000000..8f603b7 --- /dev/null +++ b/order-data/pom.xml @@ -0,0 +1,30 @@ + + + 4.0.0 + + + com.ironhack + solution-lab-2.02-maven + 1.0-SNAPSHOT + + + + order-data + + + + + com.google.code.gson + gson + + + + + 17 + 17 + UTF-8 + + + \ No newline at end of file diff --git a/order-data/src/main/java/ironhack/Item.java b/order-data/src/main/java/ironhack/Item.java new file mode 100644 index 0000000..9e2966e --- /dev/null +++ b/order-data/src/main/java/ironhack/Item.java @@ -0,0 +1,73 @@ +package ironhack; + +public class Item { + private String productId; + private String name;; + private int quantity; + private double price; + + + public Item(String productId, String name, int quantity, double price) { + if (productId == null) { + throw new IllegalArgumentException("Product ID cannot be null"); + } + + if (name == null) { + throw new IllegalArgumentException("Name cannot be null"); + } + + if (quantity < 0) { + throw new IllegalArgumentException("Quantity cannot be negative"); + } + + + if (price < 0) { + throw new IllegalArgumentException("Price cannot be negative"); + } + + + + + this.productId = productId; + this.name = name; + this.quantity = quantity; + this.price = price; + + } + + public String getName() { + return name; + } + + + + public String getProductId() { + return productId; + } + + + + public int getQuantity() { + return quantity; + } + + + + public double getPrice() { + return price; + } + + + + + + @Override + public String toString() { + return "Item{" + + "productId='" + productId + '\'' + + ", name='" + name + '\'' + + ", quantity=" + quantity + + ", price=" + price + + '}'; + } +} diff --git a/order-data/src/main/java/ironhack/Order.java b/order-data/src/main/java/ironhack/Order.java new file mode 100644 index 0000000..f90020d --- /dev/null +++ b/order-data/src/main/java/ironhack/Order.java @@ -0,0 +1,60 @@ +package ironhack; + +import java.util.List; + +public class Order { + private String orderId; + private String customerId; + private List items; + + + public Order(String orderId, String customerId, List items) { + if (orderId == null) { + throw new IllegalArgumentException("Order ID cannot be null"); + } + + if (customerId == null) { + throw new IllegalArgumentException("Customer ID cannot be null"); + } + + if (items == null) { + throw new IllegalArgumentException("Items cannot be null"); + } + + + + + this.orderId = orderId; + this.customerId = customerId; + this.items = items; + + } + + public String getOrderId() { + return orderId; + } + + + + public String getCustomerId() { + return customerId; + } + + + + public List getItems() { + return items; + } + + + + + @Override + public String toString() { + return "Order{" + + "orderId='" + orderId + '\'' + + ", customerId='" + customerId + '\'' + + ", items=" + items + + '}'; + } +} diff --git a/order-data/src/main/java/ironhack/OrderProcessor.java b/order-data/src/main/java/ironhack/OrderProcessor.java new file mode 100644 index 0000000..8a7c14f --- /dev/null +++ b/order-data/src/main/java/ironhack/OrderProcessor.java @@ -0,0 +1,40 @@ +package ironhack; + +import com.google.gson.Gson; + +public class OrderProcessor { + public static void main(String[] args) { + OrderProcessor processor = new OrderProcessor(); + processor.processOrder(); + } + + Gson gson = new Gson(); + + + String jsonOrder= """ + { + "orderId": "12345", + "customerId": "67890", + "items": [ + {"productId": "111", "name": "Laptop", "quantity": 2, "price": 10.0}, + {"productId": "222", "name": "Camera", "quantity": 1, "price": 20.0} + ] + } + """; + + + + Order order = gson.fromJson(jsonOrder, Order.class); + + public void processOrder () { + System.out.println("Processing order: " + order.getOrderId()); + System.out.println("Customer ID: " + order.getCustomerId()); + System.out.println("Items:"); + for (Item item : order.getItems()) { + System.out.println("- " + item.getName() + ": " + item.getQuantity() + " x $" + item.getPrice()); + } + + } + + +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..9a21700 --- /dev/null +++ b/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + com.ironhack + solution-lab-2.02-maven + 1.0-SNAPSHOT + pom + + order-data + Order-logic + + + + + + + 17 + 17 + UTF-8 + + + + + + com.google.code.gson + gson + 2.13.2 + + + + + + + central + https://repo1.maven.org/maven2/ + + + + + + central + https://repo1.maven.org/maven2/ + + + + + \ No newline at end of file