Meant to say add, not replace. My apologies. -Greg
On Wed, Sep 21, 2011 at 5:05 PM, Greg Sterijevski <[email protected]>wrote:
> Hello All,
>
> In MathUtils there exists the method:
>
> public static boolean checkOrder(double[] val, OrderDirection dir,
> boolean strict, boolean abort) {
> ...code omitted...
> }
>
>
> I would like to replace it with the method:
>
> public static boolean checkOrder(Comparable[] val, OrderDirection dir,
> boolean strict, boolean abort ){
> Comparable previous = val[0];
> boolean ok = true;
> int max = val.length;
> int comp;
> for (int i = 1; i < max; i++) {
> comp = val[i].compareTo(previous);
> switch (dir) {
> case INCREASING:
> if (strict) {
> if (0 <= comp) {
> ok = false;
> }
> } else {
> if ( comp < 0) {
> ok = false;
> }
> }
> break;
> case DECREASING:
> if (strict) {
> if (comp >= 0) {
> ok = false;
> }
> } else {
> if (comp > 0) {
> ok = false;
> }
> }
> break;
> default:
> // Should never happen.
> throw new IllegalArgumentException();
> }
>
> if (!ok && abort) {
> throw new NonMonotonousSequenceException(val[i], previous,
> i, dir, strict);
> }
> previous = val[i];
> }
>
> return ok;
> }
>
> Would this be acceptable to all?
>
> I would also need to change NonMonotonousSequenceException. It would take
> comparables in the constructor and look like:
>
> public NonMonotonousSequenceException(Comparable wrong,
> Comparable previous,
> int index,
> MathUtils.OrderDirection
> direction,
> boolean strict) {
> super(direction == MathUtils.OrderDirection.INCREASING ?
> (strict ?
> LocalizedFormats.NOT_STRICTLY_INCREASING_SEQUENCE :
> LocalizedFormats.NOT_INCREASING_SEQUENCE) :
> (strict ?
> LocalizedFormats.NOT_STRICTLY_DECREASING_SEQUENCE :
> LocalizedFormats.NOT_DECREASING_SEQUENCE),
> (Number) previous.compareTo(wrong),
> (Number)0, index, index - 1);
>
> this.direction = direction;
> this.strict = strict;
> this.index = index;
> this.previous = null;
> this.previousComp = previous;
> }
>
>
>
> Thoughts?
>
> Thanks!
>
> -Greg
>
>
>