Author: erans Date: Thu Jul 8 23:45:06 2010 New Revision: 962306 URL: http://svn.apache.org/viewvc?rev=962306&view=rev Log: MATH-361
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/LinearInterpolator.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/SplineInterpolator.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalArgumentException.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalNumberException.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/NumberIsTooSmallException.java commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/LocalizedFormats.java commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/LinearInterpolator.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/LinearInterpolator.java?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/LinearInterpolator.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/LinearInterpolator.java Thu Jul 8 23:45:06 2010 @@ -21,6 +21,7 @@ import org.apache.commons.math.exception import org.apache.commons.math.analysis.polynomials.PolynomialFunction; import org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction; import org.apache.commons.math.util.MathUtils; +import org.apache.commons.math.util.LocalizedFormats; /** * Implements a linear function for interpolation of real univariate functions. @@ -44,7 +45,8 @@ public class LinearInterpolator implemen } if (x.length < 2) { - throw new NumberIsTooSmallException(x.length, 2, true); + throw new NumberIsTooSmallException(LocalizedFormats.NUMBER_OF_POINTS, + x.length, 2, true); } // Number of intervals. The number of data points is n + 1. @@ -68,5 +70,4 @@ public class LinearInterpolator implemen return new PolynomialSplineFunction(x, polynomials); } - } Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/SplineInterpolator.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/SplineInterpolator.java?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/SplineInterpolator.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/interpolation/SplineInterpolator.java Thu Jul 8 23:45:06 2010 @@ -21,6 +21,7 @@ import org.apache.commons.math.exception import org.apache.commons.math.analysis.polynomials.PolynomialFunction; import org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction; import org.apache.commons.math.util.MathUtils; +import org.apache.commons.math.util.LocalizedFormats; /** * Computes a natural (also known as "free", "unclamped") cubic spline interpolation for the data set. @@ -69,7 +70,8 @@ public class SplineInterpolator implemen } if (x.length < 3) { - throw new NumberIsTooSmallException(x.length, 3, true); + throw new NumberIsTooSmallException(LocalizedFormats.NUMBER_OF_POINTS, + x.length, 3, true); } // Number of intervals. The number of data points is n + 1. Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalArgumentException.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalArgumentException.java?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalArgumentException.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalArgumentException.java Thu Jul 8 23:45:06 2010 @@ -33,34 +33,66 @@ import org.apache.commons.math.util.Loca */ public class MathIllegalArgumentException extends IllegalArgumentException { /** - * Pattern used to build the message. + * Pattern used to build the message (specific context). */ - private final Localizable pattern; + private final Localizable specific; + /** + * Pattern used to build the message (general problem description). + */ + private final Localizable general; /** * Arguments used to build the message. */ private final Object[] arguments; /** - * @param pattern Message pattern. + * @param specific Message pattern providing the specific context of + * the error. + * @param general Message pattern explaining the cause of the error. * @param args Arguments. */ - protected MathIllegalArgumentException(Localizable pattern, + protected MathIllegalArgumentException(Localizable specific, + Localizable general, Object ... args) { - this.pattern = pattern; + this.specific = specific; + this.general = general; arguments = flatten(args).toArray(); } + /** + * @param general Message pattern explaining the cause of the error. + * @param args Arguments. + */ + protected MathIllegalArgumentException(Localizable general, + Object ... args) { + this(null, general, args); + } /** {...@inheritdoc} */ @Override public String getMessage() { - return MessageFactory.buildMessage(Locale.US, pattern, arguments); + final StringBuilder sb = new StringBuilder(); + + if (specific != null) { + sb.append(MessageFactory.buildMessage(Locale.US, specific, arguments)); + sb.append(": "); + } + sb.append(MessageFactory.buildMessage(Locale.US, general, arguments)); + + return sb.toString(); } /** {...@inheritdoc} */ @Override public String getLocalizedMessage() { - return MessageFactory.buildMessage(Locale.getDefault(), pattern, arguments); + final StringBuilder sb = new StringBuilder(); + + if (specific != null) { + sb.append(MessageFactory.buildMessage(Locale.getDefault(), specific, arguments)); + sb.append(": "); + } + sb.append(MessageFactory.buildMessage(Locale.getDefault(), general, arguments)); + + return sb.toString(); } /** Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalNumberException.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalNumberException.java?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalNumberException.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MathIllegalNumberException.java Thu Jul 8 23:45:06 2010 @@ -34,14 +34,30 @@ public class MathIllegalNumberException /** * Construct an exception. * - * @param pattern Localizable pattern. + * @param specific Localizable pattern. + * @param general Localizable pattern. * @param arguments Arguments. The first element must be the requested * value that raised the exception. */ - protected MathIllegalNumberException(Localizable pattern, + protected MathIllegalNumberException(Localizable specific, + Localizable general, Number wrong, Object ... arguments) { - super(pattern, wrong, arguments); + super(specific, general, wrong, arguments); + argument = wrong; + } + + /** + * Construct an exception. + * + * @param general Localizable pattern. + * @param arguments Arguments. The first element must be the requested + * value that raised the exception. + */ + protected MathIllegalNumberException(Localizable general, + Number wrong, + Object ... arguments) { + super(general, wrong, arguments); argument = wrong; } Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/NumberIsTooSmallException.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/NumberIsTooSmallException.java?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/NumberIsTooSmallException.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/NumberIsTooSmallException.java Thu Jul 8 23:45:06 2010 @@ -16,6 +16,7 @@ */ package org.apache.commons.math.exception; +import org.apache.commons.math.util.Localizable; import org.apache.commons.math.util.LocalizedFormats; /** @@ -39,11 +40,28 @@ public class NumberIsTooSmallException e * * @param wrong Value that is smaller than the minimum. * @param min minimum. + * @param boundIsAllowed Whether {...@code min} is included in the allowed range. */ public NumberIsTooSmallException(Number wrong, Number min, boolean boundIsAllowed) { - super((boundIsAllowed ? + this(null, wrong, min, boundIsAllowed); + } + + /** + * Construct the exception with a specific context. + * + * @param specific Specific contexte pattern . + * @param wrong Value that is smaller than the minimum. + * @param min minimum. + * @param boundIsAllowed Whether {...@code min} is included in the allowed range. + */ + public NumberIsTooSmallException(Localizable specific, + Number wrong, + Number min, + boolean boundIsAllowed) { + super(specific, + (boundIsAllowed ? LocalizedFormats.NUMBER_TOO_SMALL : LocalizedFormats.NUMBER_TOO_SMALL_BOUND_EXCLUDED), wrong, min); Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/LocalizedFormats.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/LocalizedFormats.java?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/LocalizedFormats.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/util/LocalizedFormats.java Thu Jul 8 23:45:06 2010 @@ -279,6 +279,7 @@ public enum LocalizedFormats implements WEIGHT_AT_LEAST_ONE_NON_ZERO("weigth array must contain at least one non-zero value"), WRONG_BLOCK_LENGTH("wrong array shape (block length = {0}, expected {1})"), WRONG_NUMBER_OF_POINTS("{0} points are required, got only {1}"), + NUMBER_OF_POINTS("number of points ({0})"), /* keep */ ZERO_DENOMINATOR("denominator must be different from 0"), ZERO_DENOMINATOR_IN_FRACTION("zero denominator in fraction {0}/{1}"), ZERO_FRACTION_TO_DIVIDE_BY("the fraction to divide by must not be zero: {0}/{1}"), Modified: commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties?rev=962306&r1=962305&r2=962306&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties (original) +++ commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties Thu Jul 8 23:45:06 2010 @@ -251,6 +251,7 @@ VECTOR_MUST_HAVE_AT_LEAST_ONE_ELEMENT = WEIGHT_AT_LEAST_ONE_NON_ZERO = le tableau des poids doit contenir au moins une valeur non nulle WRONG_BLOCK_LENGTH = forme de tableau erron\u00e9e (bloc de longueur {0} au lieu des {1} attendus WRONG_NUMBER_OF_POINTS = {0} sont n\u00e9cessaires, seuls {1} ont \u00e9t\u00e9 fournis +NUMBER_OF_POINTS = nombre de points ({0}) ZERO_DENOMINATOR = le d\u00e9nominateur doit \u00eatre diff\u00e9rent de 0 ZERO_DENOMINATOR_IN_FRACTION = d\u00e9nominateur null dans le nombre rationnel {0}/{1} ZERO_FRACTION_TO_DIVIDE_BY = division par un nombre rationnel nul : {0}/{1}