From 257c0a6ebec17a17d1e8542b52b49fc226f5a2fb Mon Sep 17 00:00:00 2001 From: Stefan Schroeder <4sschroeder@gmail.com> Date: Tue, 3 Dec 2013 15:18:46 +0100 Subject: [PATCH] add Getters to get constraints --- .../problem/constraint/ConstraintManager.java | 14 ++++++++++++-- .../HardActivityLevelConstraintManager.java | 16 ++++++++++++++++ .../HardRouteLevelConstraintManager.java | 3 +++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/jsprit-core/src/main/java/jsprit/core/problem/constraint/ConstraintManager.java b/jsprit-core/src/main/java/jsprit/core/problem/constraint/ConstraintManager.java index 0ed08625..d476c696 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/constraint/ConstraintManager.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/constraint/ConstraintManager.java @@ -1,8 +1,9 @@ package jsprit.core.problem.constraint; +import java.util.ArrayList; import java.util.Collection; - -import org.apache.log4j.Logger; +import java.util.Collections; +import java.util.List; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.Constraint; @@ -10,6 +11,8 @@ import jsprit.core.problem.misc.JobInsertionContext; import jsprit.core.problem.solution.route.activity.TourActivity; import jsprit.core.problem.solution.route.state.RouteAndActivityStateGetter; +import org.apache.log4j.Logger; + public class ConstraintManager implements HardActivityStateLevelConstraint, HardRouteStateLevelConstraint{ public static enum Priority { @@ -96,4 +99,11 @@ public class ConstraintManager implements HardActivityStateLevelConstraint, Hard return actLevelConstraintManager.fulfilled(iFacts, prevAct, newAct, nextAct, prevActDepTime); } + public Collection getConstraints(){ + List constraints = new ArrayList(); + constraints.addAll(actLevelConstraintManager.getAllConstraints()); + constraints.addAll(routeLevelConstraintManager.getConstraints()); + return Collections.unmodifiableCollection(constraints); + } + } \ No newline at end of file diff --git a/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardActivityLevelConstraintManager.java b/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardActivityLevelConstraintManager.java index 1cad4e3f..84e619ca 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardActivityLevelConstraintManager.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardActivityLevelConstraintManager.java @@ -2,6 +2,8 @@ package jsprit.core.problem.constraint; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.List; import jsprit.core.problem.constraint.ConstraintManager.Priority; import jsprit.core.problem.misc.JobInsertionContext; @@ -28,6 +30,20 @@ class HardActivityLevelConstraintManager implements HardActivityStateLevelConstr } } + Collection getCriticalConstraints(){ return Collections.unmodifiableCollection(criticalConstraints); } + + Collection getHighPrioConstraints(){ return Collections.unmodifiableCollection(highPrioConstraints); } + + Collection getLowPrioConstraints(){ return Collections.unmodifiableCollection(lowPrioConstraints); } + + Collection getAllConstraints(){ + List c = new ArrayList(); + c.addAll(criticalConstraints); + c.addAll(highPrioConstraints); + c.addAll(lowPrioConstraints); + return Collections.unmodifiableCollection(c); + } + @Override public ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime) { ConstraintsStatus notFulfilled = null; diff --git a/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardRouteLevelConstraintManager.java b/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardRouteLevelConstraintManager.java index 8aa485a6..7ce307c7 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardRouteLevelConstraintManager.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/constraint/HardRouteLevelConstraintManager.java @@ -2,6 +2,7 @@ package jsprit.core.problem.constraint; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import jsprit.core.problem.misc.JobInsertionContext; @@ -13,6 +14,8 @@ class HardRouteLevelConstraintManager implements HardRouteStateLevelConstraint { public void addConstraint(HardRouteStateLevelConstraint constraint){ hardConstraints.add(constraint); } + + Collection getConstraints(){ return Collections.unmodifiableCollection(hardConstraints); } @Override public boolean fulfilled(JobInsertionContext insertionContext) {