[jboss-svn-commits] JBL Code SVN: r30878 - in labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner: core/localsearch/decider/selector and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 1 10:47:33 EST 2010
Author: ge0ffrey
Date: 2010-01-01 10:47:32 -0500 (Fri, 01 Jan 2010)
New Revision: 30878
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/decider/selector/SelectorConfig.java
labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/selector/MoveFactorySelector.java
Log:
absoluteSelection
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/decider/selector/SelectorConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/decider/selector/SelectorConfig.java 2010-01-01 15:46:20 UTC (rev 30877)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/decider/selector/SelectorConfig.java 2010-01-01 15:47:32 UTC (rev 30878)
@@ -24,6 +24,7 @@
private Class<MoveFactory> moveFactoryClass = null;
protected Boolean shuffle = null;
protected Double relativeSelection = null;
+ protected Integer absoluteSelection = null;
private Integer topSize = null;
@@ -67,6 +68,14 @@
this.relativeSelection = relativeSelection;
}
+ public Integer getAbsoluteSelection() {
+ return absoluteSelection;
+ }
+
+ public void setAbsoluteSelection(Integer absoluteSelection) {
+ this.absoluteSelection = absoluteSelection;
+ }
+
public Integer getTopSize() {
return topSize;
}
@@ -108,11 +117,14 @@
if (shuffle != null) {
selector.setShuffle(shuffle.booleanValue());
} else {
- selector.setShuffle(relativeSelection != null);
+ selector.setShuffle(relativeSelection != null || absoluteSelection != null);
}
if (relativeSelection != null) {
selector.setRelativeSelection(relativeSelection);
}
+ if (absoluteSelection != null) {
+ selector.setAbsoluteSelection(absoluteSelection);
+ }
return selector;
} else if (topSize != null) {
TopListSelector selector = new TopListSelector();
@@ -144,6 +156,9 @@
if (relativeSelection == null) {
relativeSelection = inheritedConfig.getRelativeSelection();
}
+ if (absoluteSelection == null) {
+ absoluteSelection = inheritedConfig.getAbsoluteSelection();
+ }
if (topSize == null) {
topSize = inheritedConfig.getTopSize();
}
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/selector/MoveFactorySelector.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/selector/MoveFactorySelector.java 2010-01-01 15:46:20 UTC (rev 30877)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/selector/MoveFactorySelector.java 2010-01-01 15:47:32 UTC (rev 30878)
@@ -18,6 +18,7 @@
protected boolean shuffle = true;
protected Double relativeSelection = null;
+ protected Integer absoluteSelection = null;
public void setMoveFactory(MoveFactory moveFactory) {
this.moveFactory = moveFactory;
@@ -35,6 +36,14 @@
}
}
+ public void setAbsoluteSelection(Integer absoluteSelection) {
+ this.absoluteSelection = absoluteSelection;
+ if (absoluteSelection < 1) {
+ throw new IllegalArgumentException( "The selector's absoluteSelection (" + absoluteSelection
+ + ") must be at least 1.");
+ }
+ }
+
@Override
public void setDecider(Decider decider) {
super.setDecider(decider);
@@ -67,6 +76,11 @@
}
moveList = moveList.subList(0, selectionSize);
}
+ if (absoluteSelection != null) {
+ if (moveList.size() > absoluteSelection) {
+ moveList = moveList.subList(0, absoluteSelection);
+ }
+ }
return moveList;
}
More information about the jboss-svn-commits
mailing list