diff options
Diffstat (limited to 'utils/src')
| -rw-r--r-- | utils/src/main/java/lv/enes/orang/utils/NonEmptyList.java | 28 | ||||
| -rw-r--r-- | utils/src/main/java/module-info.java | 5 |
2 files changed, 33 insertions, 0 deletions
diff --git a/utils/src/main/java/lv/enes/orang/utils/NonEmptyList.java b/utils/src/main/java/lv/enes/orang/utils/NonEmptyList.java new file mode 100644 index 0000000..197491f --- /dev/null +++ b/utils/src/main/java/lv/enes/orang/utils/NonEmptyList.java | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | package lv.enes.orang.utils; | ||
| 2 | |||
| 3 | import lombok.EqualsAndHashCode; | ||
| 4 | |||
| 5 | import java.util.AbstractList; | ||
| 6 | import java.util.List; | ||
| 7 | |||
| 8 | @EqualsAndHashCode(callSuper = true) | ||
| 9 | public class NonEmptyList<E> extends AbstractList<E> { | ||
| 10 | private final List<E> delegate; | ||
| 11 | |||
| 12 | public NonEmptyList(List<E> delegate) { | ||
| 13 | if (delegate.isEmpty()) { | ||
| 14 | throw new IllegalArgumentException("Empty list"); | ||
| 15 | } | ||
| 16 | this.delegate = List.copyOf(delegate); | ||
| 17 | } | ||
| 18 | |||
| 19 | @Override | ||
| 20 | public E get(int index) { | ||
| 21 | return delegate.get(index); | ||
| 22 | } | ||
| 23 | |||
| 24 | @Override | ||
| 25 | public int size() { | ||
| 26 | return delegate.size(); | ||
| 27 | } | ||
| 28 | } | ||
diff --git a/utils/src/main/java/module-info.java b/utils/src/main/java/module-info.java new file mode 100644 index 0000000..47e37e0 --- /dev/null +++ b/utils/src/main/java/module-info.java | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | module lv.enes.orang.utils { | ||
| 2 | exports lv.enes.orang.utils; | ||
| 3 | |||
| 4 | requires static lombok; | ||
| 5 | } \ No newline at end of file | ||