Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Wahlbrink2018-09-14 10:23:03 +0000
committerStephan Wahlbrink2018-09-14 13:18:09 +0000
commit83bfbec3949e2ed5fa03034a6ffd621afb3f9678 (patch)
tree0e0f9fc71f0248aeb12f476de7276b97f66bd9a4
parenta7193578dfb9ababf0dd550d9c28968aac65cdb5 (diff)
downloadorg.eclipse.statet-commons-83bfbec3949e2ed5fa03034a6ffd621afb3f9678.tar.gz
org.eclipse.statet-commons-83bfbec3949e2ed5fa03034a6ffd621afb3f9678.tar.xz
org.eclipse.statet-commons-83bfbec3949e2ed5fa03034a6ffd621afb3f9678.zip
Bug 539045: Add use of nullable annotations to jcommons.collections
-rw-r--r--ecommons/org.eclipse.statet.ecommons.coremisc/src/org/eclipse/statet/ecommons/collections/CategoryElementList.java4
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/AbstractImList.java15
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentityList.java26
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentitySet.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayList.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySet.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySub0List.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySubList.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentityList.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentitySet.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyList.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptySet.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentityList.java19
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentitySet.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonList.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonSet.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CaseInsensitiveMap.java17
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CollectionUtils.java13
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteIdentityListSet.java18
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteList.java22
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteListSet.java18
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityCollection.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityList.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentitySet.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollection.java2
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollections.java39
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentityList.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentitySet.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImList.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImListBuilder.java2
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImSet.java3
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullList.java54
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullSet.java41
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedArraySet.java158
-rw-r--r--jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedListSet.java27
35 files changed, 509 insertions, 191 deletions
diff --git a/ecommons/org.eclipse.statet.ecommons.coremisc/src/org/eclipse/statet/ecommons/collections/CategoryElementList.java b/ecommons/org.eclipse.statet.ecommons.coremisc/src/org/eclipse/statet/ecommons/collections/CategoryElementList.java
index 302b4380..51541b52 100644
--- a/ecommons/org.eclipse.statet.ecommons.coremisc/src/org/eclipse/statet/ecommons/collections/CategoryElementList.java
+++ b/ecommons/org.eclipse.statet.ecommons.coremisc/src/org/eclipse/statet/ecommons/collections/CategoryElementList.java
@@ -36,9 +36,7 @@ public class CategoryElementList<C, E> extends SortedArraySet<E> {
@Override
protected int superIndexOfE(final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
+ checkType(element);
checkModification();
if (comparator().compareCategory(this.category,
((CategoryElementComparator<C, ? super E>) CategoryElementList.this.comparator).getCategory(element) )
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/AbstractImList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/AbstractImList.java
index 1cb015c7..6ace75f9 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/AbstractImList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/AbstractImList.java
@@ -14,14 +14,23 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Collection;
import java.util.ListIterator;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.Immutable;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public abstract class AbstractImList<E> {
@@ -74,7 +83,7 @@ public abstract class AbstractImList<E> {
throw new UnsupportedOperationException();
}
- public final boolean remove(final Object o) {
+ public final boolean remove(final @Nullable Object o) {
throw new UnsupportedOperationException();
}
@@ -97,9 +106,9 @@ public abstract class AbstractImList<E> {
public abstract E get(final int index);
- public abstract int indexOf(final Object o);
+ public abstract int indexOf(final @Nullable Object o);
- public abstract int lastIndexOf(final Object o);
+ public abstract int lastIndexOf(final @Nullable Object o);
public abstract void copyTo(Object[] dest, int destPos);
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentityList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentityList.java
index 130ddbc9..5e86aa71 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentityList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentityList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -25,6 +31,8 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.IdentityList;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -34,6 +42,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImArrayIdentityList<E> extends AbstractImList<E> implements ImIdentityList<E>,
RandomAccess {
@@ -115,7 +124,7 @@ public final class ImArrayIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -136,7 +145,7 @@ public final class ImArrayIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
for (int i= 0; i < this.array.length; i++) {
if (o == this.array[i]) {
return i;
@@ -146,7 +155,7 @@ public final class ImArrayIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
for (int i= this.array.length - 1; i >= 0; i--) {
if (o == this.array[i]) {
return i;
@@ -253,7 +262,7 @@ public final class ImArrayIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
@@ -280,6 +289,7 @@ public final class ImArrayIdentityList<E> extends AbstractImList<E> implements I
}
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
final class ImArrayIdentitySubList<E> extends AbstractImList<E> implements ImIdentityList<E>,
RandomAccess {
@@ -357,7 +367,7 @@ final class ImArrayIdentitySubList<E> extends AbstractImList<E> implements ImIde
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -381,7 +391,7 @@ final class ImArrayIdentitySubList<E> extends AbstractImList<E> implements ImIde
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
final int toIndex= this.offset + this.size;
for (int i= this.offset; i < toIndex; i++) {
if (o == this.array[i]) {
@@ -392,7 +402,7 @@ final class ImArrayIdentitySubList<E> extends AbstractImList<E> implements ImIde
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
for (int i= this.offset + this.size - 1; i >= this.offset; i--) {
if (o == this.array[i]) {
return i - this.offset;
@@ -500,7 +510,7 @@ final class ImArrayIdentitySubList<E> extends AbstractImList<E> implements ImIde
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentitySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentitySet.java
index e121f2e1..da6e539a 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentitySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayIdentitySet.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -24,6 +30,8 @@ import java.util.Set;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImIdentitySet;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImArrayIdentitySet<E> extends AbstractImList<E> implements ImIdentitySet<E>,
RandomAccess {
@@ -114,7 +123,7 @@ public final class ImArrayIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -135,7 +144,7 @@ public final class ImArrayIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
for (int i= 0; i < this.array.length; i++) {
if (o == this.array[i]) {
return i;
@@ -145,7 +154,7 @@ public final class ImArrayIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
for (int i= this.array.length - 1; i >= 0; i--) {
if (o == this.array[i]) {
return i;
@@ -218,7 +227,7 @@ public final class ImArrayIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayList.java
index 06f85f1e..17ed441a 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArrayList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -24,6 +30,8 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.2
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImArrayList<E> extends AbstractImList<E> implements ImList<E>,
RandomAccess {
@@ -114,7 +123,7 @@ public final class ImArrayList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -135,7 +144,7 @@ public final class ImArrayList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
if (o == null) {
for (int i= 0; i < this.array.length; i++) {
if (null == this.array[i]) {
@@ -155,7 +164,7 @@ public final class ImArrayList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
if (o == null) {
for (int i= this.array.length - 1; i >= 0; i--) {
if (null == this.array[i]) {
@@ -275,7 +284,7 @@ public final class ImArrayList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySet.java
index 6e9748dd..de09d06d 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySet.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -24,6 +30,8 @@ import java.util.Set;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.collections.ImSet;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImSet;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImArraySet<E> extends AbstractImList<E> implements ImSet<E>,
RandomAccess {
@@ -114,7 +123,7 @@ public final class ImArraySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -135,7 +144,7 @@ public final class ImArraySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
if (o == null) {
for (int i= 0; i < this.array.length; i++) {
if (null == this.array[i]) {
@@ -155,7 +164,7 @@ public final class ImArraySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
if (o == null) {
for (int i= this.array.length - 1; i >= 0; i--) {
if (null == this.array[i]) {
@@ -238,7 +247,7 @@ public final class ImArraySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySub0List.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySub0List.java
index e2b0857b..fff395d1 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySub0List.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySub0List.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -24,8 +30,11 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImArraySub0List<E> extends AbstractImList<E> implements ImList<E>,
RandomAccess {
@@ -101,7 +110,7 @@ public final class ImArraySub0List<E> extends AbstractImList<E> implements ImLis
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -125,7 +134,7 @@ public final class ImArraySub0List<E> extends AbstractImList<E> implements ImLis
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
if (o == null) {
for (int i= 0; i < this.size; i++) {
if (null == this.array[i]) {
@@ -145,7 +154,7 @@ public final class ImArraySub0List<E> extends AbstractImList<E> implements ImLis
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
if (o == null) {
for (int i= this.size - 1; i >= 0; i--) {
if (null == this.array[i]) {
@@ -265,7 +274,7 @@ public final class ImArraySub0List<E> extends AbstractImList<E> implements ImLis
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySubList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySubList.java
index 98be712a..12495ca0 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySubList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImArraySubList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
@@ -24,8 +30,11 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImArraySubList<E> extends AbstractImList<E> implements ImList<E>,
RandomAccess {
@@ -103,7 +112,7 @@ public final class ImArraySubList<E> extends AbstractImList<E> implements ImList
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (indexOf(o) >= 0);
}
@@ -127,7 +136,7 @@ public final class ImArraySubList<E> extends AbstractImList<E> implements ImList
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
if (o == null) {
final int toIndex= this.offset + this.size;
for (int i= this.offset; i < toIndex; i++) {
@@ -149,7 +158,7 @@ public final class ImArraySubList<E> extends AbstractImList<E> implements ImList
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
if (o == null) {
for (int i= this.offset + this.size - 1; i >= this.offset; i--) {
if (null == this.array[i]) {
@@ -267,7 +276,7 @@ public final class ImArraySubList<E> extends AbstractImList<E> implements ImList
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentityList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentityList.java
index 9ba692d3..71ab4bed 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentityList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentityList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -24,6 +30,8 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.IdentityList;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImEmptyIdentityList<E> extends AbstractImList<E> implements ImIdentityList<E>,
RandomAccess {
@@ -93,7 +102,7 @@ public final class ImEmptyIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return false;
}
@@ -108,12 +117,12 @@ public final class ImEmptyIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return -1;
}
@@ -191,7 +200,7 @@ public final class ImEmptyIdentityList<E> extends AbstractImList<E> implements I
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentitySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentitySet.java
index 0b1e4df8..00083868 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentitySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyIdentitySet.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.ListIterator;
@@ -25,6 +31,8 @@ import org.eclipse.statet.jcommons.collections.IdentitySet;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImIdentitySet;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -34,6 +42,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImEmptyIdentitySet<E> extends AbstractImList<E> implements ImIdentitySet<E>,
RandomAccess {
@@ -94,7 +103,7 @@ public final class ImEmptyIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return false;
}
@@ -109,12 +118,12 @@ public final class ImEmptyIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return -1;
}
@@ -168,7 +177,7 @@ public final class ImEmptyIdentitySet<E> extends AbstractImList<E> implements Im
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyList.java
index ad53135c..b5e77bdd 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptyList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -23,6 +29,8 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -32,6 +40,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.2
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImEmptyList<E> extends AbstractImList<E> implements ImList<E>,
RandomAccess {
@@ -92,7 +101,7 @@ public final class ImEmptyList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return false;
}
@@ -107,12 +116,12 @@ public final class ImEmptyList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return -1;
}
@@ -190,7 +199,7 @@ public final class ImEmptyList<E> extends AbstractImList<E> implements ImList<E>
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptySet.java
index 0add6b35..fd06fd5b 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImEmptySet.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.ListIterator;
@@ -24,6 +30,8 @@ import java.util.Set;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.collections.ImSet;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImSet;
*
* @since 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImEmptySet<E> extends AbstractImList<E> implements ImSet<E>,
RandomAccess {
@@ -93,7 +102,7 @@ public final class ImEmptySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return false;
}
@@ -108,12 +117,12 @@ public final class ImEmptySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return -1;
}
@@ -167,7 +176,7 @@ public final class ImEmptySet<E> extends AbstractImList<E> implements ImSet<E>,
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentityList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentityList.java
index f3c1a408..19584a7b 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentityList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentityList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Iterator;
@@ -25,6 +31,8 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.IdentityList;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -34,6 +42,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImSingletonIdentityList<E> extends AbstractImList<E> implements ImIdentityList<E>,
RandomAccess {
@@ -114,7 +123,7 @@ public final class ImSingletonIdentityList<E> extends AbstractImList<E> implemen
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (this.e == o);
}
@@ -138,12 +147,12 @@ public final class ImSingletonIdentityList<E> extends AbstractImList<E> implemen
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return (this.e == o) ? 0 : -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return (this.e == o) ? 0 : -1;
}
@@ -184,11 +193,13 @@ public final class ImSingletonIdentityList<E> extends AbstractImList<E> implemen
}
@Override
+ @NonNullByDefault({ PARAMETER, RETURN_TYPE })
public Object[] toArray() {
return new Object[] { this.e };
}
@Override
+ @NonNullByDefault({ PARAMETER, RETURN_TYPE })
public <T> T[] toArray(T[] dest) {
if (dest.length < 1) {
dest= (T[]) Array.newInstance(((Class<T[]>) dest.getClass()).getComponentType(), 1);
@@ -234,7 +245,7 @@ public final class ImSingletonIdentityList<E> extends AbstractImList<E> implemen
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentitySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentitySet.java
index 567dd21d..81a102b1 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentitySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonIdentitySet.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Iterator;
@@ -25,6 +31,8 @@ import org.eclipse.statet.jcommons.collections.IdentitySet;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImIdentitySet;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -34,6 +42,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImSingletonIdentitySet<E> extends AbstractImList<E> implements ImIdentitySet<E>,
RandomAccess {
@@ -114,7 +123,7 @@ public final class ImSingletonIdentitySet<E> extends AbstractImList<E> implement
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return (this.e == o);
}
@@ -138,12 +147,12 @@ public final class ImSingletonIdentitySet<E> extends AbstractImList<E> implement
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return (this.e == o) ? 0 : -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return (this.e == o) ? 0 : -1;
}
@@ -203,7 +212,7 @@ public final class ImSingletonIdentitySet<E> extends AbstractImList<E> implement
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonList.java
index 56693d21..83f06aff 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonList.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Iterator;
@@ -24,6 +30,8 @@ import java.util.RandomAccess;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImList;
*
* @since de.walware.ecommons.coremisc 1.2
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImSingletonList<E> extends AbstractImList<E> implements ImList<E>,
RandomAccess {
@@ -113,7 +122,7 @@ public final class ImSingletonList<E> extends AbstractImList<E> implements ImLis
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return ((this.e != null) ? this.e.equals(o) : (null == o));
}
@@ -137,12 +146,12 @@ public final class ImSingletonList<E> extends AbstractImList<E> implements ImLis
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return ((this.e != null) ? this.e.equals(o) : (null == o)) ? 0 : -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return ((this.e != null) ? this.e.equals(o) : (null == o)) ? 0 : -1;
}
@@ -233,7 +242,7 @@ public final class ImSingletonList<E> extends AbstractImList<E> implements ImLis
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonSet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonSet.java
index ef6a7464..65e518fc 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonSet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/internal/jcommons/collections/ImSingletonSet.java
@@ -14,6 +14,12 @@
package org.eclipse.statet.internal.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.lang.reflect.Array;
import java.util.Collection;
import java.util.Iterator;
@@ -24,6 +30,8 @@ import java.util.Set;
import org.eclipse.statet.jcommons.collections.ImIdentityList;
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.collections.ImSet;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
/**
@@ -33,6 +41,7 @@ import org.eclipse.statet.jcommons.collections.ImSet;
*
* @since de.walware.ecommons.coremisc 1.5
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class ImSingletonSet<E> extends AbstractImList<E> implements ImSet<E>,
RandomAccess {
@@ -113,7 +122,7 @@ public final class ImSingletonSet<E> extends AbstractImList<E> implements ImSet<
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return ((this.e != null) ? this.e.equals(o) : (null == o));
}
@@ -137,12 +146,12 @@ public final class ImSingletonSet<E> extends AbstractImList<E> implements ImSet<
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return ((this.e != null) ? this.e.equals(o) : (null == o)) ? 0 : -1;
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return ((this.e != null) ? this.e.equals(o) : (null == o)) ? 0 : -1;
}
@@ -202,7 +211,7 @@ public final class ImSingletonSet<E> extends AbstractImList<E> implements ImSet<
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (obj == this) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CaseInsensitiveMap.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CaseInsensitiveMap.java
index 07cbb881..c66584a3 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CaseInsensitiveMap.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CaseInsensitiveMap.java
@@ -17,13 +17,18 @@ package org.eclipse.statet.jcommons.collections;
import java.util.HashMap;
import java.util.Map;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* Map with String keys using case insensitive comparison.
* <p>
* For example for environment variables on windows.
*/
-public class CaseInsensitiveMap<V> extends HashMap<String, V> {
+@NonNullByDefault
+public class CaseInsensitiveMap<V> extends HashMap<@NonNull String, V> {
private static final long serialVersionUID= 1L;
@@ -46,13 +51,13 @@ public class CaseInsensitiveMap<V> extends HashMap<String, V> {
@Override
- public V put(final String name, final V value) {
+ public @Nullable V put(final String name, final V value) {
if (name == null) {
throw new NullPointerException();
}
final String id= name.toUpperCase();
final String oldName= this.idNameMap.put(id, name);
- V prevValue;
+ @Nullable V prevValue;
if (!name.equals(oldName)) {
prevValue= super.remove(oldName);
super.put(name, value);
@@ -71,7 +76,7 @@ public class CaseInsensitiveMap<V> extends HashMap<String, V> {
}
@Override
- public V remove(final Object key) {
+ public @Nullable V remove(final @Nullable Object key) {
if (!(key instanceof String)) {
return null;
}
@@ -101,7 +106,7 @@ public class CaseInsensitiveMap<V> extends HashMap<String, V> {
}
@Override
- public boolean containsKey(final Object key) {
+ public boolean containsKey(final @Nullable Object key) {
if (!(key instanceof String)) {
return false;
}
@@ -115,7 +120,7 @@ public class CaseInsensitiveMap<V> extends HashMap<String, V> {
// }
@Override
- public V get(final Object key) {
+ public @Nullable V get(final @Nullable Object key) {
if (!(key instanceof String)) {
return null;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CollectionUtils.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CollectionUtils.java
index 3da49406..3c7f77bc 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CollectionUtils.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CollectionUtils.java
@@ -19,11 +19,16 @@ import java.util.Iterator;
import java.util.List;
import java.util.RandomAccess;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
+@NonNullByDefault
public class CollectionUtils {
- public static String toString(final List<?> list, final String sep) {
+ public static String toString(final List<@NonNull ?> list, final String sep) {
final int n= list.size();
if (n <= 0) {
return ""; //$NON-NLS-1$
@@ -50,7 +55,7 @@ public class CollectionUtils {
}
}
- public static String toString(final Collection<?> c, final String sep) {
+ public static String toString(final Collection<@NonNull ?> c, final String sep) {
if (c instanceof List) {
return toString((List<?>) c, sep);
}
@@ -73,7 +78,7 @@ public class CollectionUtils {
}
- public static ImIdentityList<String> toIdentifierList(final String[] array) {
+ public static ImIdentityList<String> toIdentifierList(final @Nullable String[] array) {
int count= 0;
for (int i= 0; i < array.length; i++) {
final String s= array[i];
@@ -84,7 +89,7 @@ public class CollectionUtils {
return ImCollections.newIdentityList(array, 0, count);
}
- public static ImIdentitySet<String> toIdentifierSet(final String[] array) {
+ public static ImIdentitySet<String> toIdentifierSet(final @Nullable String[] array) {
int count= 0;
for (int i= 0; i < array.length; i++) {
final String s= array[i];
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteIdentityListSet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteIdentityListSet.java
index c6786fba..62f47eaa 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteIdentityListSet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteIdentityListSet.java
@@ -14,21 +14,31 @@
package org.eclipse.statet.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.AbstractSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* Thread safe set based on immutable identity lists.
*
* @param <E>
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class CopyOnWriteIdentityListSet<E> extends AbstractSet<E> implements IdentitySet<E> {
- private static int indexOf(final Object[] array, final Object e) {
+ private static int indexOf(final Object[] array, final @Nullable Object e) {
for (int i= 0; i < array.length; i++) {
if (e == array[i]) {
return i;
@@ -60,7 +70,7 @@ public final class CopyOnWriteIdentityListSet<E> extends AbstractSet<E> implemen
}
@Override
- public synchronized boolean remove(final Object element) {
+ public synchronized boolean remove(final @Nullable Object element) {
final ImIdentityList<E> l= ImCollections.removeElement(this.list, element);
if (l != this.list) {
this.list= l;
@@ -152,7 +162,7 @@ public final class CopyOnWriteIdentityListSet<E> extends AbstractSet<E> implemen
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return this.list.contains(o);
}
@@ -202,7 +212,7 @@ public final class CopyOnWriteIdentityListSet<E> extends AbstractSet<E> implemen
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (this == obj) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteList.java
index 405f670e..5877fa9b 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteList.java
@@ -14,22 +14,32 @@
package org.eclipse.statet.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.AbstractList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* Thread safe list based on immutable lists.
*
* @param <E>
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class CopyOnWriteList<E> extends AbstractList<E> implements List<E> {
- private static int indexOf(final Object[] array, final Object e) {
+ private static int indexOf(final Object[] array, final @Nullable Object e) {
if (e == null) {
for (int i= 0; i < array.length; i++) {
if (null == array[i]) {
@@ -80,7 +90,7 @@ public final class CopyOnWriteList<E> extends AbstractList<E> implements List<E>
}
@Override
- public synchronized boolean remove(final Object element) {
+ public synchronized boolean remove(final @Nullable Object element) {
final ImList<E> l= ImCollections.removeElement(this.list, element);
if (l != this.list) {
this.list= l;
@@ -181,7 +191,7 @@ public final class CopyOnWriteList<E> extends AbstractList<E> implements List<E>
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return this.list.contains(o);
}
@@ -191,12 +201,12 @@ public final class CopyOnWriteList<E> extends AbstractList<E> implements List<E>
}
@Override
- public int indexOf(final Object o) {
+ public int indexOf(final @Nullable Object o) {
return this.list.indexOf(o);
}
@Override
- public int lastIndexOf(final Object o) {
+ public int lastIndexOf(final @Nullable Object o) {
return this.list.lastIndexOf(o);
}
@@ -256,7 +266,7 @@ public final class CopyOnWriteList<E> extends AbstractList<E> implements List<E>
}
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
return (this == obj || this.list.equals(obj));
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteListSet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteListSet.java
index 57b29a4c..5cbc54c8 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteListSet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/CopyOnWriteListSet.java
@@ -14,21 +14,31 @@
package org.eclipse.statet.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_ARGUMENT;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.TYPE_BOUND;
+
import java.util.AbstractSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* Thread safe set based on immutable lists.
*
* @param <E>
*/
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD, TYPE_BOUND, TYPE_ARGUMENT })
public final class CopyOnWriteListSet<E> extends AbstractSet<E> implements Set<E> {
- private static int indexOf(final Object[] array, final Object e) {
+ private static int indexOf(final Object[] array, final @Nullable Object e) {
if (e == null) {
for (int i= 0; i < array.length; i++) {
if (null == array[i]) {
@@ -70,7 +80,7 @@ public final class CopyOnWriteListSet<E> extends AbstractSet<E> implements Set<E
}
@Override
- public synchronized boolean remove(final Object element) {
+ public synchronized boolean remove(final @Nullable Object element) {
final ImList<E> l= ImCollections.removeElement(this.list, element);
if (l != this.list) {
this.list= l;
@@ -162,7 +172,7 @@ public final class CopyOnWriteListSet<E> extends AbstractSet<E> implements Set<E
}
@Override
- public boolean contains(final Object o) {
+ public boolean contains(final @Nullable Object o) {
return this.list.contains(o);
}
@@ -212,7 +222,7 @@ public final class CopyOnWriteListSet<E> extends AbstractSet<E> implements Set<E
@Override
- public boolean equals(final Object obj) {
+ public boolean equals(final @Nullable Object obj) {
if (this == obj) {
return true;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityCollection.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityCollection.java
index 40ad6697..66b896a4 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityCollection.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityCollection.java
@@ -16,10 +16,13 @@ package org.eclipse.statet.jcommons.collections;
import java.util.Collection;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Collection using object identity for comparisons of elements.
*/
+@NonNullByDefault
public interface IdentityCollection<E> extends Collection<E> {
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityList.java
index 16079340..5d8c6a4a 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentityList.java
@@ -16,10 +16,13 @@ package org.eclipse.statet.jcommons.collections;
import java.util.List;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* List using object identity for comparisons of elements.
*/
+@NonNullByDefault
public interface IdentityList<E> extends List<E>, IdentityCollection<E> {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentitySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentitySet.java
index 771e21bc..2a529b6c 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentitySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/IdentitySet.java
@@ -16,10 +16,13 @@ package org.eclipse.statet.jcommons.collections;
import java.util.Set;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Set using object identity for comparisons of elements.
*/
+@NonNullByDefault
public interface IdentitySet<E> extends Set<E>, IdentityCollection<E> {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollection.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollection.java
index 4eaac99c..5498b617 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollection.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollection.java
@@ -17,6 +17,7 @@ package org.eclipse.statet.jcommons.collections;
import java.util.Collection;
import org.eclipse.statet.jcommons.lang.Immutable;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
/**
@@ -26,6 +27,7 @@ import org.eclipse.statet.jcommons.lang.Immutable;
* assume that the elements of the set do not change.
* </p>
*/
+@NonNullByDefault
public interface ImCollection<E> extends Collection<E>, Immutable {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollections.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollections.java
index 05ca0814..52333088 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollections.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImCollections.java
@@ -14,6 +14,10 @@
package org.eclipse.statet.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.FIELD;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.PARAMETER;
+import static org.eclipse.statet.jcommons.lang.NullDefaultLocation.RETURN_TYPE;
+
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
@@ -35,8 +39,12 @@ import org.eclipse.statet.internal.jcommons.collections.ImSingletonIdentityList;
import org.eclipse.statet.internal.jcommons.collections.ImSingletonIdentitySet;
import org.eclipse.statet.internal.jcommons.collections.ImSingletonList;
import org.eclipse.statet.internal.jcommons.collections.ImSingletonSet;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+@NonNullByDefault({ PARAMETER, RETURN_TYPE, FIELD })
public final class ImCollections {
@@ -271,7 +279,7 @@ public final class ImCollections {
* @return the sorted immutable list
*/
public static <E> ImList<E> toList(final Collection<? extends E> c,
- final Comparator<? super E> comparator) {
+ final @Nullable Comparator<? super E> comparator) {
final int n= c.size();
if (n == 0) {
return ImEmptyList.INSTANCE;
@@ -369,9 +377,15 @@ public final class ImCollections {
else {
@SuppressWarnings("unchecked")
final E[] a= (E[]) new Object[n];
- copyTo(l1, a, 0);
- copyTo(l2, a, n1);
- copyTo(l3, a, n12);
+ if (n1 != 0) {
+ copyTo(l1, a, 0);
+ }
+ if (n12 != n1) {
+ copyTo(l2, a, n1);
+ }
+ if (n != n12) {
+ copyTo(l3, a, n12);
+ }
return new ImArrayList<>(a);
}
}
@@ -386,7 +400,7 @@ public final class ImCollections {
* @return the immutable list
*/
@SafeVarargs
- public static <E> ImList<E> concatList(final Collection<? extends E>... lists) {
+ public static <E> ImList<E> concatList(final @NonNull Collection<? extends E>... lists) {
switch (lists.length) {
case 0:
return ImEmptyList.INSTANCE;
@@ -405,8 +419,11 @@ public final class ImCollections {
final E[] a= (E[]) new Object[n];
n= 0;
for (int i= 0; i < lists.length; i++) {
- copyTo(lists[i], a, n);
- n+= lists[i].size();
+ final int ni= lists[i].size();
+ if (ni != 0) {
+ copyTo(lists[i], a, n);
+ n+= ni;
+ }
}
return newList(a);
}
@@ -458,7 +475,7 @@ public final class ImCollections {
*
* @return the sorted immutable list
*/
- public static <E> ImList<E> concatList(final Collection<? extends E>[] lists,
+ public static <E> ImList<E> concatList(final @NonNull Collection<? extends E>[] lists,
final Comparator<? super E> comparator) {
switch (lists.length) {
case 0:
@@ -547,7 +564,8 @@ public final class ImCollections {
}
}
- public static <E> ImList<E> removeElement(final List<? extends E> l, final Object e) {
+ public static <E> ImList<E> removeElement(final List<? extends E> l,
+ final @Nullable Object e) {
final int idx= l.indexOf(e);
if (idx < 0) {
return toList(l);
@@ -745,7 +763,8 @@ public final class ImCollections {
}
}
- public static <E> ImIdentityList<E> removeElement(final IdentityList<? extends E> l, final Object e) {
+ public static <E> ImIdentityList<E> removeElement(final IdentityList<? extends E> l,
+ final @Nullable Object e) {
final int idx= l.indexOf(e);
if (idx < 0) {
return toIdentityList(l);
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentityList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentityList.java
index ee85ee25..2c30a5ed 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentityList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentityList.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.jcommons.collections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Immutable list using object identity for comparisons.
*/
+@NonNullByDefault
public interface ImIdentityList<E> extends ImList<E>, IdentityList<E> {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentitySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentitySet.java
index 1078d5eb..f180ef5c 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentitySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImIdentitySet.java
@@ -14,10 +14,13 @@
package org.eclipse.statet.jcommons.collections;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Immutable set using object identity for comparisons.
*/
+@NonNullByDefault
public interface ImIdentitySet<E> extends ImSet<E>, IdentitySet<E> {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImList.java
index 7553d1c6..959b8a6d 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImList.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImList.java
@@ -16,6 +16,8 @@ package org.eclipse.statet.jcommons.collections;
import java.util.List;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Immutable list.
@@ -24,6 +26,7 @@ import java.util.List;
* that the elements of the list do not change.
* </p>
*/
+@NonNullByDefault
public interface ImList<E> extends List<E>, ImCollection<E> {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImListBuilder.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImListBuilder.java
index b36c5102..c3fb42c0 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImListBuilder.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImListBuilder.java
@@ -17,8 +17,10 @@ package org.eclipse.statet.jcommons.collections;
import java.util.ArrayList;
import org.eclipse.statet.jcommons.lang.Builder;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+@NonNullByDefault
public class ImListBuilder<E> extends ArrayList<E> implements Builder<ImList<E>> {
private static final long serialVersionUID= 1L;
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImSet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImSet.java
index 85be5451..ad1af67d 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImSet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/ImSet.java
@@ -16,6 +16,8 @@ package org.eclipse.statet.jcommons.collections;
import java.util.Set;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
/**
* Immutable set.
@@ -24,6 +26,7 @@ import java.util.Set;
* that the elements of the set do not change.
* </p>
*/
+@NonNullByDefault
public interface ImSet<E> extends Set<E>, ImCollection<E> {
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullList.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullList.java
new file mode 100644
index 00000000..dcd146a7
--- /dev/null
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullList.java
@@ -0,0 +1,54 @@
+/*=============================================================================#
+ # Copyright (c) 2017, 2018 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.jcommons.collections;
+
+import java.util.List;
+
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+
+@NonNullByDefault
+public interface NonNullList<E extends @NonNull Object> extends List<E> {
+
+
+ @Override
+ boolean contains(@NonNull Object o);
+
+ @Override
+ int indexOf(@NonNull Object o);
+ @Override
+ int lastIndexOf(@NonNull Object o);
+
+ @Override
+ @NonNull E get(int index);
+
+ @Override
+ boolean add(@NonNull E e);
+ @Override
+ void add(int index, @NonNull E element);
+
+ @Override
+ @NonNull E set(int index, @NonNull E element);
+
+ @Override
+ boolean remove(@NonNull Object o);
+ @Override
+ @NonNull E remove(int index);
+
+ @Override
+ @NonNull Object[] toArray();
+
+}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullSet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullSet.java
new file mode 100644
index 00000000..e8477a3c
--- /dev/null
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/NonNullSet.java
@@ -0,0 +1,41 @@
+/*=============================================================================#
+ # Copyright (c) 2017, 2018 Stephan Wahlbrink and others.
+ #
+ # This program and the accompanying materials are made available under the
+ # terms of the Eclipse Public License 2.0 which is available at
+ # https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
+ # which is available at https://www.apache.org/licenses/LICENSE-2.0.
+ #
+ # SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
+ #
+ # Contributors:
+ # Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
+ #=============================================================================*/
+
+package org.eclipse.statet.jcommons.collections;
+
+import java.util.Set;
+
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+
+
+@NonNullByDefault
+public interface NonNullSet<E extends @NonNull Object> extends Set<E> {
+
+
+ @Override
+ boolean contains(@NonNull Object o);
+
+ @Override
+ boolean add(@NonNull E e);
+
+ @Override
+ boolean remove(@NonNull Object o);
+
+
+ @Override
+ @NonNull Object[] toArray();
+
+
+}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedArraySet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedArraySet.java
index 08464ed3..caae261a 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedArraySet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedArraySet.java
@@ -14,6 +14,9 @@
package org.eclipse.statet.jcommons.collections;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullAssert;
+
+import java.lang.reflect.Array;
import java.util.AbstractList;
import java.util.Arrays;
import java.util.Collection;
@@ -22,8 +25,14 @@ import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.RandomAccess;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
-public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<E>, RandomAccess {
+@NonNullByDefault
+public class SortedArraySet<E extends @NonNull Object> extends AbstractList<E>
+ implements SortedListSet<E>, RandomAccess {
protected class SubList extends AbstractList<E> implements SortedListSet<E>, RandomAccess {
@@ -56,7 +65,7 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
@Override
- public Comparator<? super E> getComparator() {
+ public final @Nullable Comparator<? super E> getComparator() {
return SortedArraySet.this.comparator;
}
@@ -77,18 +86,14 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
return (this.size == 0);
}
- protected int superIndexOfE(final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
+ protected int superIndexOfE(final @NonNull E element) {
+ checkType(element);
checkModification();
return binarySearch(this.offset, this.offset + this.size, element);
}
- protected int superIndexOfEChecked(final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
+ protected int superIndexOfEChecked(final @NonNull E element) {
+ checkType(element);
checkModification();
final int toIndex= this.offset + this.size;
final int index= binarySearch((this.offset > 0) ? (this.offset - 1) : this.offset,
@@ -102,35 +107,33 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public int indexOfE(final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
- checkModification();
- final int index= binarySearch(this.offset, this.offset + this.size, element);
+ public int indexOfE(final @NonNull E element) {
+ final int index= superIndexOfE(element);
return (index >= 0) ? index - this.offset : index + this.offset;
}
@Override
- public int indexOf(final Object o) {
- final int index= indexOfE(castElementObject(o));
+ @SuppressWarnings("unchecked")
+ public final int indexOf(final @SuppressWarnings("null") @NonNull Object o) {
+ final int index= indexOfE((E) o);
return (index >= 0) ? index : -1;
}
@Override
- public int lastIndexOf(final Object o) {
- final int index= indexOfE(castElementObject(o));
+ @SuppressWarnings("unchecked")
+ public final int lastIndexOf(final @SuppressWarnings("null") @NonNull Object o) {
+ final int index= indexOfE((E) o);
return (index >= 0) ? index : -1;
}
@Override
- public boolean contains(final Object o) {
- final int index= superIndexOfE(castElementObject(o));
- return (index >= 0);
+ @SuppressWarnings("unchecked")
+ public final boolean contains(final @SuppressWarnings("null") @NonNull Object o) {
+ return (superIndexOfE((E) o) >= 0);
}
- protected final int addSuperIndex(final int index, final E element) {
+ protected final int addSuperIndex(final int index, final @NonNull E element) {
if (index >= 0) {
SortedArraySet.this.array[index]= element;
return -(index - this.offset + 1);
@@ -145,15 +148,12 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public int addE(final E element) {
+ public int addE(final @NonNull E element) {
return addSuperIndex(superIndexOfEChecked(element), element);
}
- @Override
- public int addE(int startIndex, final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
+ public int addE(int startIndex, final @NonNull E element) {
+ checkType(element);
if (startIndex < 0 || startIndex > this.size) {
throw new IndexOutOfBoundsException("startIndex= " + startIndex+ ", size= " + this.size); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -177,7 +177,7 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public boolean add(final E element) {
+ public final boolean add(final @SuppressWarnings("null") @NonNull E element) {
return (addE(element) >= 0);
}
@@ -221,7 +221,7 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public E set(int index, final E element) {
+ public @NonNull E set(int index, final @SuppressWarnings("null") @NonNull E element) {
checkSubIndex(index);
index+= this.offset;
final E previous= SortedArraySet.this.array[index];
@@ -243,7 +243,7 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public int removeE(final E element) {
+ public int removeE(final @NonNull E element) {
final int index= superIndexOfE(element);
if (index >= 0) {
removeSuperIndex(index);
@@ -272,8 +272,9 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public boolean remove(final Object o) {
- return ((removeE(castElementObject(o)) >= 0));
+ @SuppressWarnings("unchecked")
+ public final boolean remove(final @SuppressWarnings("null") @NonNull Object o) {
+ return (removeE((E) o) >= 0);
}
@@ -285,9 +286,9 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public Object[] toArray() {
+ public @NonNull Object[] toArray() {
checkModification();
- final Object[] a= new Object[this.size];
+ final Object[] a= new @NonNull Object[this.size];
System.arraycopy(SortedArraySet.this.array, this.offset, a, 0, a.length);
return a;
}
@@ -321,9 +322,9 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
- protected final Class<E[]> arrayClass;
+ private final Class<E> typeClass;
- protected final Comparator<? super E> comparator;
+ protected final @Nullable Comparator<? super E> comparator;
private E[] array;
@@ -337,9 +338,10 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
* @param comparator comparator used to sort the elements or <code>null</code>
* to use the natural order of comparable elements
*/
- public SortedArraySet(final E[] array, final Comparator<? super E> comparator) {
- this.arrayClass= (Class<E[]>) array.getClass();
- if (comparator == null && !Comparable.class.isAssignableFrom(this.arrayClass.getComponentType())) {
+ public SortedArraySet(final E[] array,
+ final @Nullable Comparator<? super E> comparator) {
+ this.typeClass= nonNullAssert((Class<E>) array.getClass().getComponentType());
+ if (comparator == null && !Comparable.class.isAssignableFrom(this.typeClass)) {
throw new NullPointerException("comparator"); //$NON-NLS-1$
}
@@ -356,9 +358,10 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
* @param comparator comparator used to sort the elements or <code>null</code>
* to use the natural order of comparable elements
*/
- public SortedArraySet(final E[] array, final int size, final Comparator<? super E> comparator) {
- this.arrayClass= (Class<E[]>) array.getClass();
- if (comparator == null && !Comparable.class.isAssignableFrom(this.arrayClass.getComponentType())) {
+ public SortedArraySet(final E[] array, final int size,
+ final @Nullable Comparator<? super E> comparator) {
+ this.typeClass= nonNullAssert((Class<E>) array.getClass().getComponentType());
+ if (comparator == null && !Comparable.class.isAssignableFrom(this.typeClass)) {
throw new NullPointerException("comparator"); //$NON-NLS-1$
}
if (size < 0 || size > array.length) {
@@ -372,16 +375,16 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
@Override
- public Comparator<? super E> getComparator() {
+ public @Nullable Comparator<? super E> getComparator() {
return this.comparator;
}
- protected E castElementObject(final Object o) {
- if (o != null && !this.arrayClass.getComponentType().isAssignableFrom(o.getClass())) {
- throw new ClassCastException(o.getClass().toString());
+ protected final void checkType(final Object o) {
+ if (o == null) {
+ System.out.println("XXX");
}
- return (E) o;
+ this.typeClass.cast(nonNullAssert(o));
}
protected final void checkIndex(final int index) {
@@ -394,14 +397,20 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
public void ensureCapacity(final int minCapacity) {
if (this.array.length < minCapacity) {
this.modCount++;
- this.array= Arrays.copyOf(this.array, Math.max((this.array.length * 3)/2 + 1, minCapacity), this.arrayClass);
+ final E[] newArray= (E[]) Array.newInstance(this.typeClass,
+ Math.max((this.array.length * 3)/2 + 1, minCapacity) );
+ System.arraycopy(this.array, 0, newArray, 0, this.size);
+ this.array= newArray;
}
}
public void trimToSize() {
- if (this.array.length != this.size) {
+ final int l= this.size;
+ if (this.array.length != l) {
this.modCount++;
- this.array= Arrays.copyOf(this.array, this.size, this.arrayClass);
+ final E[] newArray= (E[]) Array.newInstance(this.typeClass, l);
+ System.arraycopy(this.array, 0, newArray, 0, l);
+ this.array= newArray;
}
}
@@ -469,28 +478,29 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public int indexOfE(final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
+ public int indexOfE(final @NonNull E element) {
+ checkType(element);
return binarySearch(0, this.size, element);
}
@Override
- public int indexOf(final Object o) {
- final int index= indexOfE(castElementObject(o));
+ @SuppressWarnings("unchecked")
+ public final int indexOf(final @SuppressWarnings("null") @NonNull Object o) {
+ final int index= indexOfE((E) o);
return (index >= 0) ? index : -1;
}
@Override
- public int lastIndexOf(final Object o) {
- final int index= indexOfE(castElementObject(o));
+ @SuppressWarnings("unchecked")
+ public final int lastIndexOf(final @SuppressWarnings("null") @NonNull Object o) {
+ final int index= indexOfE((E) o);
return (index >= 0) ? index : -1;
}
@Override
- public boolean contains(final Object o) {
- return (indexOfE(castElementObject(o)) >= 0);
+ @SuppressWarnings("unchecked")
+ public final boolean contains(final @SuppressWarnings("null") @NonNull Object o) {
+ return (indexOfE((E) o) >= 0);
}
@@ -520,15 +530,12 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public int addE(final E element) {
+ public int addE(final @NonNull E element) {
return addIndex(indexOfE(element), element);
}
- @Override
- public int addE(final int startIndex, final E element) {
- if (element == null) {
- throw new NullPointerException("element"); //$NON-NLS-1$
- }
+ public int addE(final int startIndex, final @NonNull E element) {
+ checkType(element);
if (startIndex < 0 || startIndex > this.size) {
throw new IndexOutOfBoundsException("startIndex= " + startIndex+ ", size= " + this.size); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -544,7 +551,7 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public boolean add(final E element) {
+ public final boolean add(final @SuppressWarnings("null") @NonNull E element) {
return (addE(element) >= 0);
}
@@ -642,7 +649,7 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public int removeE(final E element) {
+ public int removeE(final @NonNull E element) {
final int index= indexOfE(element);
if (index >= 0) {
removeIndex(index);
@@ -652,8 +659,9 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
}
@Override
- public boolean remove(final Object o) {
- return (removeE(castElementObject(o)) >= 0);
+ @SuppressWarnings("unchecked")
+ public final boolean remove(final @SuppressWarnings("null") @NonNull Object o) {
+ return (removeE((E) o) >= 0);
}
@Override
@@ -688,8 +696,8 @@ public class SortedArraySet<E> extends AbstractList<E> implements SortedListSet<
@Override
- public Object[] toArray() {
- final Object[] a= new Object[this.size];
+ public @NonNull Object[] toArray() {
+ final Object[] a= new @NonNull Object[this.size];
System.arraycopy(this.array, 0, a, 0, a.length);
return a;
}
diff --git a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedListSet.java b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedListSet.java
index 590611bf..ac1d4e14 100644
--- a/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedListSet.java
+++ b/jcommons/org.eclipse.statet.jcommons.util/src/org/eclipse/statet/jcommons/collections/SortedListSet.java
@@ -15,15 +15,18 @@
package org.eclipse.statet.jcommons.collections;
import java.util.Comparator;
-import java.util.List;
-import java.util.Set;
import java.util.Spliterator;
+import org.eclipse.statet.jcommons.lang.NonNull;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+
/**
* Sorted set, which also implements the list interface.
*/
-public interface SortedListSet<E> extends Set<E>, List<E> {
+@NonNullByDefault
+public interface SortedListSet<E extends @NonNull Object> extends NonNullSet<E>, NonNullList<E> {
/**
@@ -33,32 +36,24 @@ public interface SortedListSet<E> extends Set<E>, List<E> {
*
* @return the comparator or <code>null</code>
*/
- Comparator<? super E> getComparator();
-
+ @Nullable Comparator<? super E> getComparator();
- int indexOfE(E element);
- /**
- *
- * @param element element to add
- * @return index of element (>= 0, if element was not yet in the list)
- */
- int addE(E element);
+ int indexOfE(@NonNull E element);
/**
*
- * @param startIndex first possible index of element
* @param element element to add
* @return index of element (>= 0, if element was not yet in the list)
*/
- int addE(int startIndex, E element);
+ int addE(@NonNull E element);
/**
*
* @param element element to remove
* @return index of element (>= 0, if element was in the list)
*/
- int removeE(E element);
+ int removeE(@NonNull E element);
@Override
SortedListSet<E> subList(int fromIndex, int toIndex);
@@ -66,7 +61,7 @@ public interface SortedListSet<E> extends Set<E>, List<E> {
@Override
default Spliterator<E> spliterator() {
- return List.super.spliterator();
+ return NonNullList.super.spliterator();
}
}

Back to the top