Skip to content

Commit 660cc2e

Browse files
committed
More content
1 parent 68793e2 commit 660cc2e

File tree

2 files changed

+62
-1
lines changed

2 files changed

+62
-1
lines changed

src/main/java/com/lightningkite/kotlin/collection/List.ext.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import java.util.*
1010
inline fun <E> List<E>.random(): E {
1111
return this[Math.random().times(size).toInt()]
1212
}
13-
1413
fun <E> SetupList(setup: (E) -> Unit): MutableList<E> {
1514
return object : ArrayList<E>() {
1615
override fun addAll(index: Int, elements: Collection<E>): Boolean {
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.lightningkite.kotlin.collection
2+
3+
import java.util.*
4+
5+
/**
6+
* Created by joseph on 12/2/16.
7+
*/
8+
abstract class ObserveEmptyArrayList<E>() : ArrayList<E>() {
9+
10+
abstract fun onNotEmpty(): Unit
11+
abstract fun onEmpty(): Unit
12+
13+
var active = false
14+
private fun checkUp() {
15+
if (!super.isEmpty() && !active) {
16+
active = true
17+
onNotEmpty()
18+
}
19+
}
20+
21+
private fun checkDown() {
22+
if (super.isEmpty() && active) {
23+
active = false
24+
onEmpty()
25+
}
26+
}
27+
28+
override fun add(element: E): Boolean {
29+
val result = super.add(element)
30+
checkUp()
31+
return result
32+
}
33+
34+
override fun addAll(elements: Collection<E>): Boolean {
35+
val result = super.addAll(elements)
36+
checkUp()
37+
return result
38+
}
39+
40+
override fun clear() {
41+
super.clear()
42+
checkDown()
43+
}
44+
45+
override fun remove(element: E): Boolean {
46+
val result = super.remove(element)
47+
checkDown()
48+
return result
49+
}
50+
51+
override fun removeAll(elements: Collection<E>): Boolean {
52+
val result = super.removeAll(elements)
53+
checkDown()
54+
return result
55+
}
56+
57+
override fun retainAll(elements: Collection<E>): Boolean {
58+
val result = super.retainAll(elements)
59+
checkDown()
60+
return result
61+
}
62+
}

0 commit comments

Comments
 (0)