Skip to content

Commit

Permalink
Docs and random annotations for overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
mikera committed Dec 27, 2012
1 parent aea16de commit 9fac166
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/main/java/mikera/util/emptyobjects/NullArrays.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import mikera.data.DataType;

/**
* Null array type Singletons
*/
public class NullArrays {
public static final Object[] NULL_OBJECTS=new Object[0];
public static final float[] NULL_FLOATS=new float[0];
Expand Down
21 changes: 21 additions & 0 deletions src/main/java/mikera/util/emptyobjects/NullCollection.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
import mikera.persistent.PersistentCollection;
import mikera.persistent.impl.SingletonList;

/**
* Immutable empty collection type and singleton
*/
public final class NullCollection<T> extends PersistentCollection<T> {
private static final long serialVersionUID = 2925953822669265599L;

Expand All @@ -17,78 +20,96 @@ protected NullCollection() {

}

@Override
public boolean add(T e) {
throw new UnsupportedOperationException();
}

@Override
public boolean addAll(Collection<? extends T> c) {
throw new UnsupportedOperationException();
}

@Override
public void clear() {
throw new UnsupportedOperationException();
}

@Override
public boolean contains(Object o) {
return false;
}

@Override
public boolean containsAll(Collection<?> c) {
if (c.isEmpty()) return true;
return false;
}

@Override
public boolean isEmpty() {
return true;
}

@SuppressWarnings("unchecked")
@Override
public Iterator<T> iterator() {
return (Iterator<T>)NullIterator.INSTANCE;
}

@Override
public boolean remove(Object o) {
throw new UnsupportedOperationException();
}

@Override
public boolean removeAll(Collection<?> c) {
throw new UnsupportedOperationException();
}

@Override
public boolean retainAll(Collection<?> c) {
throw new UnsupportedOperationException();
}

@Override
public int size() {
return 0;
}

@Override
public Object[] toArray() {
return NullArrays.NULL_OBJECTS;
}

@SuppressWarnings({ "unchecked", "hiding" })
@Override
public <T> T[] toArray(T[] a) {
return (T[])toArray();
}

@Override
public PersistentCollection<T> delete(T value) {
return this;
}

@Override
public PersistentCollection<T> deleteAll(Collection<T> values) {
return this;
}

@Override
public PersistentCollection<T> clone() {
return this;
}

@Override
public int hashCode() {
return 0;
}

@SuppressWarnings("unchecked")
@Override
public boolean equals(Object a) {
return ((a instanceof PersistentCollection<?>)&&((PersistentCollection<T>)a).isEmpty());
}
Expand Down

0 comments on commit 9fac166

Please sign in to comment.