diff --git a/case-1/src/main/java/com/company/app/pvmodulelayouts/layoutspecification/PvModulesMountedOnRoofFacePlaneLayoutSpecification.java b/case-1/src/main/java/com/company/app/pvmodulelayouts/PvModulesMountedOnRoofFacePlaneLayoutSpecification.java similarity index 87% rename from case-1/src/main/java/com/company/app/pvmodulelayouts/layoutspecification/PvModulesMountedOnRoofFacePlaneLayoutSpecification.java rename to case-1/src/main/java/com/company/app/pvmodulelayouts/PvModulesMountedOnRoofFacePlaneLayoutSpecification.java index 7ce1177..8ff6193 100644 --- a/case-1/src/main/java/com/company/app/pvmodulelayouts/layoutspecification/PvModulesMountedOnRoofFacePlaneLayoutSpecification.java +++ b/case-1/src/main/java/com/company/app/pvmodulelayouts/PvModulesMountedOnRoofFacePlaneLayoutSpecification.java @@ -1,9 +1,7 @@ -package com.company.app.pvmodulelayouts.layoutspecification; +package com.company.app.pvmodulelayouts; import com.company.app.PvModuleDefinition; import com.company.app.PvModulePosition; -import com.company.app.pvmodulelayouts.LayoutSpecification; -import com.company.app.pvmodulelayouts.LayoutTile; import java.util.stream.Stream; diff --git a/case-1/src/main/java/com/company/app/pvmodulelayouts/layoutspecification/PvModulesMountedOnTiltedRacksLayoutSpecification.java b/case-1/src/main/java/com/company/app/pvmodulelayouts/PvModulesMountedOnTiltedRacksLayoutSpecification.java similarity index 89% rename from case-1/src/main/java/com/company/app/pvmodulelayouts/layoutspecification/PvModulesMountedOnTiltedRacksLayoutSpecification.java rename to case-1/src/main/java/com/company/app/pvmodulelayouts/PvModulesMountedOnTiltedRacksLayoutSpecification.java index 0fa0e9e..2eda896 100644 --- a/case-1/src/main/java/com/company/app/pvmodulelayouts/layoutspecification/PvModulesMountedOnTiltedRacksLayoutSpecification.java +++ b/case-1/src/main/java/com/company/app/pvmodulelayouts/PvModulesMountedOnTiltedRacksLayoutSpecification.java @@ -1,9 +1,7 @@ -package com.company.app.pvmodulelayouts.layoutspecification; +package com.company.app.pvmodulelayouts; import com.company.app.PvModuleDefinition; import com.company.app.PvModulePosition; -import com.company.app.pvmodulelayouts.LayoutSpecification; -import com.company.app.pvmodulelayouts.LayoutTile; import java.util.stream.Stream; diff --git a/case-1/src/main/java/com/company/app/pvmodulelayouts/DefaultPvModuleLayouts.java b/case-1/src/main/java/com/company/app/pvmodulelayouts/defaultlayouts/DefaultPvModuleLayouts.java similarity index 78% rename from case-1/src/main/java/com/company/app/pvmodulelayouts/DefaultPvModuleLayouts.java rename to case-1/src/main/java/com/company/app/pvmodulelayouts/defaultlayouts/DefaultPvModuleLayouts.java index 984ef40..4ce8318 100644 --- a/case-1/src/main/java/com/company/app/pvmodulelayouts/DefaultPvModuleLayouts.java +++ b/case-1/src/main/java/com/company/app/pvmodulelayouts/defaultlayouts/DefaultPvModuleLayouts.java @@ -1,11 +1,13 @@ -package com.company.app.pvmodulelayouts; +package com.company.app.pvmodulelayouts.defaultlayouts; import com.company.app.PvModuleDefinition; import com.company.app.PvModuleLayouts; import com.company.app.PvModulePosition; import com.company.app.RoofFace; -import com.company.app.pvmodulelayouts.layoutspecification.PvModulesMountedOnRoofFacePlaneLayoutSpecification; -import com.company.app.pvmodulelayouts.layoutspecification.PvModulesMountedOnTiltedRacksLayoutSpecification; +import com.company.app.pvmodulelayouts.LayoutSpecification; +import com.company.app.pvmodulelayouts.LayoutTile; +import com.company.app.pvmodulelayouts.PvModulesMountedOnRoofFacePlaneLayoutSpecification; +import com.company.app.pvmodulelayouts.PvModulesMountedOnTiltedRacksLayoutSpecification; import java.util.List; import java.util.stream.Stream; diff --git a/case-1/src/main/java/com/company/appconfig/App.java b/case-1/src/main/java/com/company/appconfig/App.java new file mode 100644 index 0000000..24c90b0 --- /dev/null +++ b/case-1/src/main/java/com/company/appconfig/App.java @@ -0,0 +1,23 @@ +package com.company.appconfig; + +import com.company.app.PvModuleDefinition; +import com.company.app.pvmodulelayouts.defaultlayouts.DefaultPvModuleLayouts; + +public final class App { + public static void main(String[] args) { + new DefaultPvModuleLayouts().optimalLayoutFor( + () -> Double.parseDouble(args[0]), + new PvModuleDefinition() { + @Override + public double widthInMeters() { + return Double.parseDouble(args[1]); + } + + @Override + public double lengthInMeters() { + return Double.parseDouble(args[2]); + } + } + ); + } +}