[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