You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by he...@apache.org on 2015/07/17 12:18:20 UTC
svn commit: r1691507 - in /commons/proper/jexl/trunk/src:
main/java/org/apache/commons/jexl3/internal/ site/xdoc/
test/java/org/apache/commons/jexl3/internal/
Author: henrib
Date: Fri Jul 17 10:18:20 2015
New Revision: 1691507
URL: http://svn.apache.org/r1691507
Log:
JEXL:
JEXL-164 fix, added getMin/getMax methods, added tests, updated changes.xml
Modified:
commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java
commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/LongRange.java
commons/proper/jexl/trunk/src/site/xdoc/changes.xml
commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/internal/RangeTest.java
Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java?rev=1691507&r1=1691506&r2=1691507&view=diff
==============================================================================
--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java (original)
+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/IntegerRange.java Fri Jul 17 10:18:20 2015
@@ -26,9 +26,9 @@ import java.util.NoSuchElementException;
*/
public class IntegerRange implements Collection<Integer> {
/** The lower boundary. */
- private final int low;
+ private final int min;
/** The upper boundary. */
- private final int high;
+ private final int max;
/**
* Creates a new range.
@@ -37,19 +37,36 @@ public class IntegerRange implements Col
*/
public IntegerRange(int from, int to) {
if (from > to) {
- high = from;
- low = to;
+ max = from;
+ min = to;
} else {
- low = from;
- high = to;
+ min = from;
+ max = to;
}
}
+ /**
+ * Gets the interval minimum value.
+ * @return the low boundary
+ */
+ public int getMin() {
+ return min;
+ }
+
+ /**
+ * Gets the interval maximum value.
+ * @return the high boundary
+ */
+ public int getMax() {
+ return max;
+ }
+
+
@Override
public int hashCode() {
int hash = 7;
- hash = 13 * hash + this.low;
- hash = 13 * hash + this.high;
+ hash = 13 * hash + this.min;
+ hash = 13 * hash + this.max;
return hash;
}
@@ -62,10 +79,10 @@ public class IntegerRange implements Col
return false;
}
final IntegerRange other = (IntegerRange) obj;
- if (this.low != other.low) {
+ if (this.min != other.min) {
return false;
}
- if (this.high != other.high) {
+ if (this.max != other.max) {
return false;
}
return true;
@@ -73,12 +90,12 @@ public class IntegerRange implements Col
@Override
public Iterator<Integer> iterator() {
- return new IntegerIterator(low, high);
+ return new IntegerIterator(min, max);
}
@Override
public int size() {
- return high - low + 1;
+ return max - min + 1;
}
@Override
@@ -90,7 +107,7 @@ public class IntegerRange implements Col
public boolean contains(Object o) {
if (o instanceof Number) {
long v = ((Number) o).intValue();
- return low <= v && v <= high;
+ return min <= v && v <= max;
} else {
return false;
}
@@ -101,7 +118,7 @@ public class IntegerRange implements Col
final int size = size();
Object[] array = new Object[size];
for(int a = 0; a < size; ++a) {
- array[a] = low + a;
+ array[a] = min + a;
}
return array;
}
@@ -119,7 +136,7 @@ public class IntegerRange implements Col
: (T[]) Array.newInstance(ct, length);
}
for (int a = 0; a < length; ++a) {
- Array.set(copy, a, low + a);
+ Array.set(copy, a, min + a);
}
if (length < array.length) {
array[length] = null;
@@ -175,9 +192,9 @@ public class IntegerRange implements Col
*/
class IntegerIterator implements Iterator<Integer> {
/** The lower boundary. */
- private final int low;
+ private final int min;
/** The upper boundary. */
- private final int high;
+ private final int max;
/** The current value. */
private int cursor;
/**
@@ -186,25 +203,22 @@ class IntegerIterator implements Iterato
* @param h high boundary
*/
public IntegerIterator(int l, int h) {
- low = l;
- high = h;
- cursor = low;
+ min = l;
+ max = h;
+ cursor = min;
}
@Override
public boolean hasNext() {
- return cursor <= high;
+ return cursor <= max;
}
@Override
public Integer next() {
- if (cursor <= high) {
- int next = cursor;
- cursor += 1;
- return Integer.valueOf(next);
- } else {
- throw new NoSuchElementException();
+ if (cursor <= max) {
+ return cursor++;
}
+ throw new NoSuchElementException();
}
@Override
Modified: commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/LongRange.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/LongRange.java?rev=1691507&r1=1691506&r2=1691507&view=diff
==============================================================================
--- commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/LongRange.java (original)
+++ commons/proper/jexl/trunk/src/main/java/org/apache/commons/jexl3/internal/LongRange.java Fri Jul 17 10:18:20 2015
@@ -27,9 +27,9 @@ import java.util.NoSuchElementException;
*/
public class LongRange implements Collection<Long> {
/** The lower boundary. */
- private final long low;
+ private final long min;
/** The upper boundary. */
- private final long high;
+ private final long max;
/**
* Creates a new range.
@@ -38,19 +38,35 @@ public class LongRange implements Collec
*/
public LongRange(long from, long to) {
if (from > to) {
- high = from;
- low = to;
+ max = from;
+ min = to;
} else {
- low = from;
- high = to;
+ min = from;
+ max = to;
}
}
+ /**
+ * Gets the interval minimum value.
+ * @return the low boundary
+ */
+ public long getMin() {
+ return min;
+ }
+
+ /**
+ * Gets the interval maximum value.
+ * @return the high boundary
+ */
+ public long getMax() {
+ return max;
+ }
+
@Override
public int hashCode() {
int hash = 3;
- hash = 41 * hash + (int) (this.low ^ (this.low >>> 32));
- hash = 41 * hash + (int) (this.high ^ (this.high >>> 32));
+ hash = 41 * hash + (int) (this.min ^ (this.min >>> 32));
+ hash = 41 * hash + (int) (this.max ^ (this.max >>> 32));
return hash;
}
@@ -63,10 +79,10 @@ public class LongRange implements Collec
return false;
}
final LongRange other = (LongRange) obj;
- if (this.low != other.low) {
+ if (this.min != other.min) {
return false;
}
- if (this.high != other.high) {
+ if (this.max != other.max) {
return false;
}
return true;
@@ -74,12 +90,12 @@ public class LongRange implements Collec
@Override
public Iterator<Long> iterator() {
- return new LongIterator(low, high);
+ return new LongIterator(min, max);
}
@Override
public int size() {
- return (int)(high - low + 1);
+ return (int)(max - min + 1);
}
@Override
@@ -91,7 +107,7 @@ public class LongRange implements Collec
public boolean contains(Object o) {
if (o instanceof Number) {
long v = ((Number) o).longValue();
- return low <= v && v <= high;
+ return min <= v && v <= max;
} else {
return false;
}
@@ -102,7 +118,7 @@ public class LongRange implements Collec
final int size = size();
Object[] array = new Object[size];
for(int a = 0; a < size; ++a) {
- array[a] = low + a;
+ array[a] = min + a;
}
return array;
}
@@ -120,7 +136,7 @@ public class LongRange implements Collec
: (T[]) Array.newInstance(ct, length);
}
for (int a = 0; a < length; ++a) {
- Array.set(copy, a, low + a);
+ Array.set(copy, a, min + a);
}
if (length < array.length) {
array[length] = null;
@@ -176,9 +192,9 @@ public class LongRange implements Collec
*/
class LongIterator implements Iterator<Long> {
/** The lower boundary. */
- private final long low;
+ private final long min;
/** The upper boundary. */
- private final long high;
+ private final long max;
/** The current value. */
private long cursor;
/**
@@ -187,25 +203,22 @@ class LongIterator implements Iterator<L
* @param h high boundary
*/
public LongIterator(long l, long h) {
- low = l;
- high = h;
- cursor = low;
+ min = l;
+ max = h;
+ cursor = min;
}
@Override
public boolean hasNext() {
- return cursor <= high;
+ return cursor <= max;
}
@Override
public Long next() {
- if (cursor <= high) {
- long next = cursor;
- cursor += 1;
- return Long.valueOf(next);
- } else {
- throw new NoSuchElementException();
+ if (cursor <= max) {
+ return cursor++;
}
+ throw new NoSuchElementException();
}
@Override
Modified: commons/proper/jexl/trunk/src/site/xdoc/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/site/xdoc/changes.xml?rev=1691507&r1=1691506&r2=1691507&view=diff
==============================================================================
--- commons/proper/jexl/trunk/src/site/xdoc/changes.xml (original)
+++ commons/proper/jexl/trunk/src/site/xdoc/changes.xml Fri Jul 17 10:18:20 2015
@@ -26,6 +26,9 @@
</properties>
<body>
<release version="3.0" date="unreleased">
+ <action dev="henrib" type="add" issue="JEXL-164" due-to="Dmitri Blinov">
+ public getters for high/low properties for IntegerRange and LongRange
+ </action>
<action dev="henrib" type="fix" issue="JEXL-163" due-to="Dmitri Blinov">
empty(new ("java.lang.Long", 4294967296)) returns true
</action>
Modified: commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/internal/RangeTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/internal/RangeTest.java?rev=1691507&r1=1691506&r2=1691507&view=diff
==============================================================================
--- commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/internal/RangeTest.java (original)
+++ commons/proper/jexl/trunk/src/test/java/org/apache/commons/jexl3/internal/RangeTest.java Fri Jul 17 10:18:20 2015
@@ -51,11 +51,14 @@ public class RangeTest extends JexlTestC
@Test
public void testRanges() {
LongRange lr0 = new LongRange(20,10);
+ Assert.assertEquals(10L, lr0.getMin());
+ Assert.assertEquals(20L, lr0.getMax());
Assert.assertFalse(lr0.isEmpty());
Assert.assertTrue(lr0.contains(10L));
Assert.assertTrue(lr0.contains(20L));
Assert.assertFalse(lr0.contains(30L));
Assert.assertFalse(lr0.contains(5L));
+ Assert.assertFalse(lr0.contains(null));
LongRange lr1 = new LongRange(10,20);
Assert.assertEquals(lr0, lr1);
Assert.assertTrue(lr0.containsAll(lr1));
@@ -64,11 +67,14 @@ public class RangeTest extends JexlTestC
Assert.assertTrue(lr0.containsAll(lr2));
Assert.assertFalse(lr2.containsAll(lr1));
IntegerRange ir0 = new IntegerRange(20,10);
+ Assert.assertEquals(10, ir0.getMin());
+ Assert.assertEquals(20, ir0.getMax());
Assert.assertFalse(ir0.isEmpty());
Assert.assertTrue(ir0.contains(10));
Assert.assertTrue(ir0.contains(20));
Assert.assertFalse(ir0.contains(30));
Assert.assertFalse(ir0.contains(5));
+ Assert.assertFalse(ir0.contains(null));
IntegerRange ir1 = new IntegerRange(10,20);
Assert.assertEquals(ir0, ir1);
Assert.assertTrue(ir0.containsAll(ir1));