summaryrefslogtreecommitdiff
path: root/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2021-01-24 21:43:30 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2021-01-24 21:43:30 +0100
commit0037e24177fe9fc28809b8afd67a881af94037c0 (patch)
tree57de3f5c3ed2e06272d2a80086375176df4d5f3d /module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java
parent35942469a41df149fe35b113d6f228b654616757 (diff)
downloadrules-sandbox-0037e24177fe9fc28809b8afd67a881af94037c0.tar.gz
rules-sandbox-0037e24177fe9fc28809b8afd67a881af94037c0.tar.bz2
rules-sandbox-0037e24177fe9fc28809b8afd67a881af94037c0.tar.xz
rules-sandbox-0037e24177fe9fc28809b8afd67a881af94037c0.zip
WIP: Optaplanner.
Diffstat (limited to 'module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java')
-rw-r--r--module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java b/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java
new file mode 100644
index 0000000..7311918
--- /dev/null
+++ b/module/acme/src/main/java/io/trygvis/acme/planning/machine/CloudBalance.java
@@ -0,0 +1,48 @@
+package io.trygvis.acme.planning.machine;
+
+import org.optaplanner.core.api.domain.solution.PlanningEntityCollectionProperty;
+import org.optaplanner.core.api.domain.solution.PlanningScore;
+import org.optaplanner.core.api.domain.solution.PlanningSolution;
+import org.optaplanner.core.api.domain.solution.ProblemFactCollectionProperty;
+import org.optaplanner.core.api.domain.valuerange.ValueRangeProvider;
+import org.optaplanner.core.api.score.buildin.hardsoft.HardSoftScore;
+
+import java.util.List;
+
+@PlanningSolution
+public class CloudBalance {
+
+ private List<CloudComputer> computerList;
+
+ private List<CloudProcess> processList;
+
+ private HardSoftScore score;
+
+ public CloudBalance(List<CloudComputer> computerList, List<CloudProcess> processList) {
+ this.computerList = computerList;
+ this.processList = processList;
+ }
+
+ public CloudBalance() {
+ }
+
+ @ValueRangeProvider(id = "computerRange")
+ @ProblemFactCollectionProperty
+ public List<CloudComputer> getComputerList() {
+ return computerList;
+ }
+
+ @PlanningEntityCollectionProperty
+ public List<CloudProcess> getProcessList() {
+ return processList;
+ }
+
+ @PlanningScore
+ public HardSoftScore getScore() {
+ return score;
+ }
+
+ public void setScore(HardSoftScore score) {
+ this.score = score;
+ }
+}