Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions solution-lab-2.02-maven/order-data/order-data.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="AdditionalModuleElements">
<content url="file://$MODULE_DIR$" dumb="true">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
</content>
</component>
</module>
29 changes: 29 additions & 0 deletions solution-lab-2.02-maven/order-data/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.ironhack</groupId>
<artifactId>solution-lab-2.02-maven</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>order-data</artifactId>
<packaging>jar</packaging>

<name>Order Data Module</name>

<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
</dependencies>

</project>
51 changes: 51 additions & 0 deletions solution-lab-2.02-maven/order-data/src/main/java/Order.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import java.util.List;

public class Order {
private String orderId;
private String customerName;
private List<OrderItem> 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<OrderItem> getItems() {
return items;
}

public void setItems(List<OrderItem> 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 +
'}';
}
}
40 changes: 40 additions & 0 deletions solution-lab-2.02-maven/order-data/src/main/java/OrderItem.java
Original file line number Diff line number Diff line change
@@ -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 +
'}';
}
}
Original file line number Diff line number Diff line change
@@ -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());
}
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
artifactId=order-data
groupId=com.ironhack
version=1.0-SNAPSHOT
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Order.class
OrderItem.class
OrderProcessor.class
Original file line number Diff line number Diff line change
@@ -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
Binary file not shown.
30 changes: 30 additions & 0 deletions solution-lab-2.02-maven/order-logic/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.ironhack</groupId>
<artifactId>solution-lab-2.02-maven</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>

<artifactId>order-logic</artifactId>
<packaging>jar</packaging>

<name>Order Logic Module</name>

<dependencies>
<dependency>
<groupId>az.example</groupId>
<artifactId>order-data</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -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;
}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
artifactId=order-logic
groupId=com.ironhack
version=1.0-SNAPSHOT
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
OrderCalculator.class
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
C:\Users\abuso\lab-java-maven\solution-lab-2.02-maven\order-logic\src\main\java\OrderCalculator.java
Binary file not shown.
73 changes: 73 additions & 0 deletions solution-lab-2.02-maven/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.ironhack</groupId>
<artifactId>solution-lab-2.02-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Lab 2.02 - Multi-module Maven Solution</name>

<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<gson.version>2.11.0</gson.version>
<slf4j.version>2.0.16</slf4j.version>
</properties>

<modules>
<module>order-data</module>
<module>order-logic</module>
</modules>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>

<repositories>
<repository>
<id>central</id>
<name>Maven Central</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Central</name>
<url>https://repo.maven.apache.org/maven2</url>
</pluginRepository>
</pluginRepositories>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>

</project>