Author: erans
Date: Fri Jan  7 17:00:57 2011
New Revision: 1056391

URL: http://svn.apache.org/viewvc?rev=1056391&view=rev
Log:
MATH-466
Throwing exceptions when preconditions are violated.

Modified:
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java?rev=1056391&r1=1056390&r2=1056391&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateRealOptimizer.java
 Fri Jan  7 17:00:57 2011
@@ -22,6 +22,8 @@ import java.util.Comparator;
 
 import org.apache.commons.math.exception.MathUserException;
 import org.apache.commons.math.exception.MathIllegalStateException;
+import org.apache.commons.math.exception.NullArgumentException;
+import org.apache.commons.math.exception.NotStrictlyPositiveException;
 import org.apache.commons.math.analysis.MultivariateRealFunction;
 import org.apache.commons.math.exception.util.LocalizedFormats;
 import org.apache.commons.math.random.RandomVectorGenerator;
@@ -58,14 +60,23 @@ public class BaseMultiStartMultivariateR
      * Create a multi-start optimizer from a single-start optimizer.
      *
      * @param optimizer Single-start optimizer to wrap.
-     * @param starts Number of starts to perform (including the
-     * first one), multi-start is disabled if value is less than or
-     * equal to 1.
+     * @param starts Number of starts to perform.
      * @param generator Random vector generator to use for restarts.
+     * @throws NullArgumentException if {...@code optimizer} or {...@code 
generator}
+     * is {...@code null}.
+     * @throws NotStrictlyPositiveException if {...@code starts < 1}.
      */
     protected BaseMultiStartMultivariateRealOptimizer(final 
BaseMultivariateRealOptimizer<FUNC> optimizer,
                                                       final int starts,
                                                       final 
RandomVectorGenerator generator) {
+        if (optimizer == null ||
+            generator == null) {
+            throw new NullArgumentException();
+        }
+        if (starts < 1) {
+            throw new NotStrictlyPositiveException(starts);
+        }
+
         this.optimizer = optimizer;
         this.starts = starts;
         this.generator = generator;

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java?rev=1056391&r1=1056390&r2=1056391&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/BaseMultiStartMultivariateVectorialOptimizer.java
 Fri Jan  7 17:00:57 2011
@@ -23,6 +23,8 @@ import java.util.Comparator;
 import org.apache.commons.math.exception.MathIllegalStateException;
 import org.apache.commons.math.exception.ConvergenceException;
 import org.apache.commons.math.exception.MathUserException;
+import org.apache.commons.math.exception.NullArgumentException;
+import org.apache.commons.math.exception.NotStrictlyPositiveException;
 import org.apache.commons.math.analysis.MultivariateVectorialFunction;
 import org.apache.commons.math.exception.util.LocalizedFormats;
 import org.apache.commons.math.random.RandomVectorGenerator;
@@ -58,14 +60,23 @@ public class BaseMultiStartMultivariateV
      * Create a multi-start optimizer from a single-start optimizer.
      *
      * @param optimizer Single-start optimizer to wrap.
-     * @param starts Number of starts to perform (including the
-     * first one), multi-start is disabled if value is less than or
-     * equal to 1.
+     * @param starts Number of starts to perform.
      * @param generator Random vector generator to use for restarts.
+     * @throws NullArgumentException if {...@code optimizer} or {...@code 
generator}
+     * is {...@code null}.
+     * @throws NotStrictlyPositiveException if {...@code starts < 1}.
      */
     protected BaseMultiStartMultivariateVectorialOptimizer(final 
BaseMultivariateVectorialOptimizer<FUNC> optimizer,
                                                            final int starts,
                                                            final 
RandomVectorGenerator generator) {
+        if (optimizer == null ||
+            generator == null) {
+            throw new NullArgumentException();
+        }
+        if (starts < 1) {
+            throw new NotStrictlyPositiveException(starts);
+        }
+
         this.optimizer = optimizer;
         this.starts = starts;
         this.generator = generator;


Reply via email to