Added start and end property to generic range.
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
package jet
|
package jet
|
||||||
|
|
||||||
public trait Range<in T : Comparable<T>> {
|
public trait Range<in T : Comparable<T>> {
|
||||||
public fun contains(item : T) : Boolean
|
public val start: T
|
||||||
|
public val end: T
|
||||||
|
public fun contains(item : T) : Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
public class IntRange(public val start : Int, public val end : Int) : Range<Int>, IntIterable {
|
public class IntRange(public override val start : Int, public override val end : Int) : Range<Int>, IntIterable {
|
||||||
public override fun iterator () : IntIterator
|
public override fun iterator () : IntIterator
|
||||||
|
|
||||||
public override fun contains (elem: Int) : Boolean
|
public override fun contains (elem: Int) : Boolean
|
||||||
@@ -14,7 +16,7 @@ public class IntRange(public val start : Int, public val end : Int) : Range<Int>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LongRange(public val start : Long, public val end : Long) : Range<Long>, LongIterable {
|
public class LongRange(public override val start : Long, public override val end : Long) : Range<Long>, LongIterable {
|
||||||
public override fun iterator () : LongIterator
|
public override fun iterator () : LongIterator
|
||||||
|
|
||||||
public override fun contains (elem: Long) : Boolean
|
public override fun contains (elem: Long) : Boolean
|
||||||
@@ -24,7 +26,7 @@ public class LongRange(public val start : Long, public val end : Long) : Range<L
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ByteRange(public val start : Byte, public val end : Byte) : Range<Byte>, ByteIterable {
|
public class ByteRange(public override val start : Byte, public override val end : Byte) : Range<Byte>, ByteIterable {
|
||||||
public override fun iterator () : ByteIterator
|
public override fun iterator () : ByteIterator
|
||||||
|
|
||||||
public override fun contains (elem: Byte) : Boolean
|
public override fun contains (elem: Byte) : Boolean
|
||||||
@@ -34,7 +36,7 @@ public class ByteRange(public val start : Byte, public val end : Byte) : Range<B
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ShortRange(public val start : Short, public val end : Short) : Range<Short>, ShortIterable {
|
public class ShortRange(public override val start : Short, public override val end : Short) : Range<Short>, ShortIterable {
|
||||||
public override fun iterator () : ShortIterator
|
public override fun iterator () : ShortIterator
|
||||||
|
|
||||||
public override fun contains (elem: Short) : Boolean
|
public override fun contains (elem: Short) : Boolean
|
||||||
@@ -44,7 +46,7 @@ public class ShortRange(public val start : Short, public val end : Short) : Rang
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CharRange(public val start : Char, public val end : Char) : Range<Char>, CharIterable {
|
public class CharRange(public override val start : Char, public override val end : Char) : Range<Char>, CharIterable {
|
||||||
public override fun iterator () : CharIterator
|
public override fun iterator () : CharIterator
|
||||||
|
|
||||||
public override fun contains (elem: Char) : Boolean
|
public override fun contains (elem: Char) : Boolean
|
||||||
@@ -54,7 +56,7 @@ public class CharRange(public val start : Char, public val end : Char) : Range<C
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FloatRange(public val start : Float, public val end : Float) : Range<Float> {
|
public class FloatRange(public override val start : Float, public override val end : Float) : Range<Float> {
|
||||||
public override fun contains (elem: Float) : Boolean
|
public override fun contains (elem: Float) : Boolean
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
@@ -62,7 +64,7 @@ public class FloatRange(public val start : Float, public val end : Float) : Rang
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class DoubleRange(public val start : Double, public val end : Double) : Range<Double> {
|
public class DoubleRange(public override val start : Double, public override val end : Double) : Range<Double> {
|
||||||
public override fun contains (elem: Double) : Boolean
|
public override fun contains (elem: Double) : Boolean
|
||||||
|
|
||||||
public class object {
|
public class object {
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
class MyRange1() : Range<Int> {
|
class MyRange1() : Range<Int> {
|
||||||
|
override val start: Int
|
||||||
|
get() = 0
|
||||||
|
override val end: Int
|
||||||
|
get() = 0
|
||||||
override fun contains(item: Int) = true
|
override fun contains(item: Int) = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,11 +64,13 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getStart() {
|
@Override
|
||||||
|
public Byte getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte getEnd() {
|
@Override
|
||||||
|
public Byte getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,11 +64,13 @@ public final class CharRange implements Range<Character>, CharIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public char getStart() {
|
@Override
|
||||||
|
public Character getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public char getEnd() {
|
@Override
|
||||||
|
public Character getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,11 +65,13 @@ public final class DoubleRange implements Range<Double> {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getStart() {
|
@Override
|
||||||
|
public Double getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getEnd() {
|
@Override
|
||||||
|
public Double getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,11 +61,13 @@ public final class FloatRange implements Range<Float> {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getStart() {
|
@Override
|
||||||
|
public Float getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getEnd() {
|
@Override
|
||||||
|
public Float getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,11 +64,13 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStart() {
|
@Override
|
||||||
|
public Integer getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getEnd() {
|
@Override
|
||||||
|
public Integer getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,11 +64,13 @@ public final class LongRange implements Range<Long>, LongIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getStart() {
|
@Override
|
||||||
|
public Long getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getEnd() {
|
@Override
|
||||||
|
public Long getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,5 +20,7 @@ import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
|||||||
|
|
||||||
@AssertInvisibleInResolver
|
@AssertInvisibleInResolver
|
||||||
public interface Range<T extends Comparable<T>> {
|
public interface Range<T extends Comparable<T>> {
|
||||||
|
T getStart();
|
||||||
|
T getEnd();
|
||||||
boolean contains(T item);
|
boolean contains(T item);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,11 +64,13 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public short getStart() {
|
@Override
|
||||||
|
public Short getStart() {
|
||||||
return start;
|
return start;
|
||||||
}
|
}
|
||||||
|
|
||||||
public short getEnd() {
|
@Override
|
||||||
|
public Short getEnd() {
|
||||||
return end;
|
return end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user