Added start and end property to generic range.
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
package jet
|
||||
|
||||
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 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 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 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 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 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 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 class object {
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
class MyRange1() : Range<Int> {
|
||||
override val start: Int
|
||||
get() = 0
|
||||
override val end: Int
|
||||
get() = 0
|
||||
override fun contains(item: Int) = true
|
||||
}
|
||||
|
||||
|
||||
@@ -64,11 +64,13 @@ public final class ByteRange implements Range<Byte>, ByteIterable {
|
||||
return result;
|
||||
}
|
||||
|
||||
public byte getStart() {
|
||||
@Override
|
||||
public Byte getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public byte getEnd() {
|
||||
@Override
|
||||
public Byte getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,11 +64,13 @@ public final class CharRange implements Range<Character>, CharIterable {
|
||||
return result;
|
||||
}
|
||||
|
||||
public char getStart() {
|
||||
@Override
|
||||
public Character getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public char getEnd() {
|
||||
@Override
|
||||
public Character getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
|
||||
@@ -65,11 +65,13 @@ public final class DoubleRange implements Range<Double> {
|
||||
return result;
|
||||
}
|
||||
|
||||
public double getStart() {
|
||||
@Override
|
||||
public Double getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public double getEnd() {
|
||||
@Override
|
||||
public Double getEnd() {
|
||||
return end;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,11 +61,13 @@ public final class FloatRange implements Range<Float> {
|
||||
return result;
|
||||
}
|
||||
|
||||
public float getStart() {
|
||||
@Override
|
||||
public Float getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public float getEnd() {
|
||||
@Override
|
||||
public Float getEnd() {
|
||||
return end;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,11 +64,13 @@ public final class IntRange implements Range<Integer>, IntIterable {
|
||||
return result;
|
||||
}
|
||||
|
||||
public int getStart() {
|
||||
@Override
|
||||
public Integer getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public int getEnd() {
|
||||
@Override
|
||||
public Integer getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
|
||||
@@ -64,11 +64,13 @@ public final class LongRange implements Range<Long>, LongIterable {
|
||||
return result;
|
||||
}
|
||||
|
||||
public long getStart() {
|
||||
@Override
|
||||
public Long getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public long getEnd() {
|
||||
@Override
|
||||
public Long getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
|
||||
@@ -20,5 +20,7 @@ import org.jetbrains.jet.rt.annotation.AssertInvisibleInResolver;
|
||||
|
||||
@AssertInvisibleInResolver
|
||||
public interface Range<T extends Comparable<T>> {
|
||||
T getStart();
|
||||
T getEnd();
|
||||
boolean contains(T item);
|
||||
}
|
||||
|
||||
@@ -64,11 +64,13 @@ public final class ShortRange implements Range<Short>, ShortIterable {
|
||||
return result;
|
||||
}
|
||||
|
||||
public short getStart() {
|
||||
@Override
|
||||
public Short getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public short getEnd() {
|
||||
@Override
|
||||
public Short getEnd() {
|
||||
return end;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user