diff --git a/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/Car.java b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/Car.java new file mode 100644 index 0000000000..79e5ddd061 --- /dev/null +++ b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/Car.java @@ -0,0 +1,35 @@ +package com.baeldung.hexagonal.architecture; +import lombok.AllArgsConstructor; +import lombok.Data; + +@AllArgsConstructor +@Data +public class Car { + String manufacturerName; + String fuleType; + String modelNo; + String yearOfManufacture; + String vehicleType; + int noOfGears; + + public void startCar() { + //Start the car + } + + public void stopCar() { + //Stop the car + } + + public void changeGear(int gearNo){ + //Change gear + } + + public void openBoot() { + //Open boot of the car + } + + public void enableChildLock() { + //Enable child lock in the car + } + +} diff --git a/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/FordAdapter.java b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/FordAdapter.java new file mode 100644 index 0000000000..75e83e5dce --- /dev/null +++ b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/FordAdapter.java @@ -0,0 +1,48 @@ +package com.baeldung.hexagonal.architecture; + +import java.util.List; +import java.util.Map; + +public class FordAdapter implements ManufacturingPort { + + @Override + public void manufacturingMethodology(Car car) { + // Process for manufacturing ford car + + } + + @Override + public void manufacturingLocation(String location) { + // Location at which ford manufacturing will take place + + } + + @Override + public void logoForTheCar(Car car) { + // Put ford logo on the car + + } + + @Override + public void timeToMarketForTheCar(Car car) { + // Find time to market for a particular ford car model + + } + + @Override + public List> totalManufacturingVolume() { + // Return car production volume of all ford manufacturing units + return null; + } + + @Override + public List listOfAllFactories() { + // Return list of all ford factories + return null; + } + + public void fordEngineFuelTest(Car car) { + //Do engine test for ford + } + +} diff --git a/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/HondaAdapter.java b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/HondaAdapter.java new file mode 100644 index 0000000000..7b6bac1aa6 --- /dev/null +++ b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/HondaAdapter.java @@ -0,0 +1,48 @@ +package com.baeldung.hexagonal.architecture; + +import java.util.List; +import java.util.Map; + +public class HondaAdapter implements ManufacturingPort { + + @Override + public void manufacturingMethodology(Car car) { + // Process for manufacturing honda car + + } + + @Override + public void manufacturingLocation(String location) { + // Location at which honda manufacturing will take place + + } + + @Override + public void logoForTheCar(Car car) { + // Put honda logo on the car + + } + + @Override + public void timeToMarketForTheCar(Car car) { + // Find time to market for a particular honda car model + + } + + @Override + public List> totalManufacturingVolume() { + // Return car production volume of all honda manufacturing units + return null; + } + + @Override + public List listOfAllFactories() { + // Return list of all honda factories + return null; + } + + public void carCrashAndSafetyTest(Car car) { + //Do car crash test got honda car + } + +} \ No newline at end of file diff --git a/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/ManufacturingPort.java b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/ManufacturingPort.java new file mode 100644 index 0000000000..666e69ac05 --- /dev/null +++ b/spring-5-reactive/src/main/java/com/baeldung/hexagonal/architecture/ManufacturingPort.java @@ -0,0 +1,14 @@ +package com.baeldung.hexagonal.architecture; + +import java.util.List; +import java.util.Map; + +public interface ManufacturingPort { + + public void manufacturingMethodology(Car car); + public void manufacturingLocation(String location); + public void logoForTheCar(Car car); + public void timeToMarketForTheCar(Car car); + public List> totalManufacturingVolume(); + public List listOfAllFactories(); +}