diff --git a/src/main/java/teetime/util/CyclicListIterator.java b/src/main/java/teetime/util/CyclicListIterator.java index 9611fcb2186771d752c57fc7bb7fa5a3a5e928bd..d4e06d27453bc453c631419f61fd05c113e32a63 100644 --- a/src/main/java/teetime/util/CyclicListIterator.java +++ b/src/main/java/teetime/util/CyclicListIterator.java @@ -20,12 +20,12 @@ import java.util.List; /** * This iterator infinitely iterates over a list and allows the list to be modified without throwing a <code>ConcurrentMOdificationException</code>. - * + * * @author Christian Wulf - * + * * @param <T> */ -public class CyclicListIterator<T> implements Iterator<T> { +public final class CyclicListIterator<T> implements Iterator<T> { private final List<T> list; // private Iterator<T> iterator; @@ -37,10 +37,12 @@ public class CyclicListIterator<T> implements Iterator<T> { // this.iterator = this.list.iterator(); } + @Override public boolean hasNext() { return true; } + @Override public T next() { // if (!this.iterator.hasNext()) { // this.iterator = this.list.iterator(); @@ -56,6 +58,7 @@ public class CyclicListIterator<T> implements Iterator<T> { return element; } + @Override public void remove() { // this.iterator.remove(); this.currentIndex = this.getCurrentIndex(); diff --git a/src/main/java/teetime/util/HashMapWithDefault.java b/src/main/java/teetime/util/HashMapWithDefault.java index f5797cf0f9dde6292a674ed6f78db860fd7d2106..7ebf6eb5c975ca044d283f47197bbb6aa961f19e 100644 --- a/src/main/java/teetime/util/HashMapWithDefault.java +++ b/src/main/java/teetime/util/HashMapWithDefault.java @@ -21,10 +21,10 @@ import teetime.util.concurrent.hashmap.ValueFactory; /** * @author Christian Wulf - * + * * @since 1.10 */ -public class HashMapWithDefault<K, V> extends HashMap<K, V> { +public final class HashMapWithDefault<K, V> extends HashMap<K, V> { private static final long serialVersionUID = -7958038532219740472L; diff --git a/src/main/java/teetime/util/Pair.java b/src/main/java/teetime/util/Pair.java index 1d671fbf6b7a34a4ad84f63f3d535a40800f9d7f..1cffdbf11c23a6c49b3fffad5fcca024543e8137 100644 --- a/src/main/java/teetime/util/Pair.java +++ b/src/main/java/teetime/util/Pair.java @@ -15,7 +15,7 @@ */ package teetime.util; -public class Pair<F, S> { +public final class Pair<F, S> { private final F first; private final S second; diff --git a/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java b/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java index 13eeaa12aba27af3779c1791fb676fb2e2ffccc7..6e1ec99f49d35703aff8aed6289da3c1fb7a55fc 100644 --- a/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java +++ b/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java @@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentMap; * @author Christian Wulf * @since 1.11 */ -public class CachedClassForNameResolver<T> { +public final class CachedClassForNameResolver<T> { private final ConcurrentMap<String, Class<? extends T>> cachedClasses = new ConcurrentHashMap<String, Class<? extends T>>(); // NOCS private final ClassForNameResolver<T> classForNameResolver; diff --git a/src/main/java/teetime/util/classpath/ClassForNameResolver.java b/src/main/java/teetime/util/classpath/ClassForNameResolver.java index 680ea6af094f4975e0cd4f1844754214768ac66e..d084779936f2f75a954606f39a87dd44b0f253d4 100644 --- a/src/main/java/teetime/util/classpath/ClassForNameResolver.java +++ b/src/main/java/teetime/util/classpath/ClassForNameResolver.java @@ -22,7 +22,7 @@ package teetime.util.classpath; * @author Christian Wulf * @since 1.11 */ -public class ClassForNameResolver<T> { +public final class ClassForNameResolver<T> { private final Class<T> classToCast; diff --git a/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java b/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java index 5c2039598a958dc519bb3c80ece0d3cf66a23806..6c2a283fd165a1f6e57fa487b6fd6ebe17961aa8 100644 --- a/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java +++ b/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java @@ -17,7 +17,7 @@ package teetime.util.concurrent.hashmap; import java.util.concurrent.ConcurrentHashMap; -public class ConcurrentHashMapWithDefault<K, V> extends ConcurrentHashMap<K, V> { +public final class ConcurrentHashMapWithDefault<K, V> extends ConcurrentHashMap<K, V> { private static final long serialVersionUID = 199185976241037967L; diff --git a/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java b/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java index e1c407c7c0f43bfbdb0e853ce3f3df7f054f91b6..0d394c943bdc1de9f13c5f4d2d04b1f258e4d832 100644 --- a/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java +++ b/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java @@ -17,14 +17,14 @@ package teetime.util.concurrent.hashmap; /** * @author Christian Wulf - * + * * @since 1.10 */ public interface ValueFactory<T> { /** * Create a new instance of the type <code>T</code>. - * + * * @since 1.10 */ public T create(); diff --git a/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java index 285db51f49a1d655a8147e928a4bb6739e1845e8..78b1ed4783ef6fdce6c28888bfdf40f11e7d1c54 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java +++ b/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java @@ -22,14 +22,14 @@ import teetime.util.concurrent.workstealing.exception.DequeIsEmptyException; import teetime.util.concurrent.workstealing.exception.OperationAbortedException; /** - * + * * @author Christian Wulf - * + * * @see "Dynamic Circular WorkStealing Deque" - * + * * @since 1.10 */ -public class CircularWorkStealingDeque<T> { +public final class CircularWorkStealingDeque<T> { public static final DequeIsEmptyException DEQUE_IS_EMPTY_EXCEPTION = new DequeIsEmptyException(); @@ -46,7 +46,7 @@ public class CircularWorkStealingDeque<T> { } /** - * + * * @param o * a non-<code>null</code> element */ @@ -66,7 +66,7 @@ public class CircularWorkStealingDeque<T> { } /** - * + * * @param elements * a non-<code>null</code> list */ @@ -91,7 +91,7 @@ public class CircularWorkStealingDeque<T> { /** * Returns and removes the latest element from this deque. - * + * * @return * <ul> * <li><code>null</code> if the deque contains no elements, @@ -123,9 +123,9 @@ public class CircularWorkStealingDeque<T> { /** * Returns and removes the latest element from this deque. - * + * * @return <i>the latest element</i>, otherwise it throws a <code>DequeIsEmptyException</code> - * + * * @throws DequeIsEmptyException */ public T popBottomEx() { @@ -169,7 +169,7 @@ public class CircularWorkStealingDeque<T> { /** * Tries to steal (return & remove) the oldest element from this deque. - * + * * @return * <ul> * <li><code>null</code> if the deque contains no elements, @@ -202,9 +202,9 @@ public class CircularWorkStealingDeque<T> { /** * Tries to steal (return & remove) the oldest element from this deque. - * + * * @return <i>the oldest element</i>, otherwise it throws a <code>DequeIsEmptyException</code> or a <code>OperationAbortedException</code> - * + * * @throws DequeIsEmptyException * @throws OperationAbortedException */ @@ -254,7 +254,7 @@ public class CircularWorkStealingDeque<T> { /** * Returns but does not remove the latest element from this deque.<br> * <i>For debugging purposes</i> - * + * * @return <ul> * <li><code>null</code> if the deque contains no elements, * <li><i>the latest element</i> otherwise @@ -286,7 +286,7 @@ public class CircularWorkStealingDeque<T> { /** * For debugging purposes - * + * * @return the number of elements this deque contains */ public long size(final Object sourceStage) { diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java index 9ed956de3a98c388754f8ce6a7f04d3520312c01..91554954bb79f78c2fa8eda3359d70a31fd4b030 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java +++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java @@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicLong; import teetime.util.concurrent.workstealing.CircularArray; /** - * + * * @author Christian Wulf - * + * * @see "Dynamic Circular WorkStealing Deque" - * + * * @since 1.10 */ -public class CircularWorkStealingDequeWithSentinel<T> { +public final class CircularWorkStealingDequeWithSentinel<T> { public static enum State { REGULAR, EMPTY, ABORT @@ -84,7 +84,7 @@ public class CircularWorkStealingDequeWithSentinel<T> { } /** - * + * * @return * <ul> * <li><code>empty()</code> if the deque contains no elements, @@ -132,7 +132,7 @@ public class CircularWorkStealingDequeWithSentinel<T> { /** * Tries to steal (return & remove) the oldest element from this deque. - * + * * @return * <ul> * <li><code>empty()</code> if the deque contains no elements, @@ -165,7 +165,7 @@ public class CircularWorkStealingDequeWithSentinel<T> { /** * For debugging purposes - * + * * @return but does not remove the bottom element from this deque */ public T readBottom() { @@ -188,7 +188,7 @@ public class CircularWorkStealingDequeWithSentinel<T> { /** * For debugging purposes - * + * * @return the number of elements this deque contains */ public long size(final Object sourceStage) { diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java index 41c06cd1fc1b84e2a446ae7bc03da7e7b63d4ae8..88004d4525caf2a9b76dbfa57505cb5727c43f90 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java +++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java @@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicLong; import teetime.util.concurrent.workstealing.CircularArray; /** - * + * * @author Christian Wulf - * + * * @see "Dynamic Circular WorkStealing Deque" - * + * * @since 1.10 */ -public class CircularWorkStealingDequeWithThreadLocalSentinel<T> { +public final class CircularWorkStealingDequeWithThreadLocalSentinel<T> { public static enum State { REGULAR, EMPTY, ABORT @@ -96,7 +96,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> { } /** - * + * * @return * <ul> * <li><code>empty()</code> if the deque contains no elements, @@ -144,7 +144,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> { /** * Tries to steal (return & remove) the oldest element from this deque. - * + * * @return * <ul> * <li><code>empty()</code> if the deque contains no elements, @@ -189,7 +189,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> { /** * For debugging purposes - * + * * @return but does not remove the bottom element from this deque */ public T readBottom() { @@ -212,7 +212,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> { /** * For debugging purposes - * + * * @return the number of elements this deque contains */ public long size(final Object sourceStage) { diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java index 8cea8f0351fc92c0f415a9f011ea2da326f72717..934473cb6ad618de2bb21b0da3a60a204a358c00 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java +++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java @@ -29,7 +29,7 @@ import teetime.util.concurrent.workstealing.exception.OperationAbortedException; * * @since 1.10 */ -public class ExceptionalCircularWorkStealingDeque<T> { +public final class ExceptionalCircularWorkStealingDeque<T> { public static final DequeIsEmptyException DEQUE_IS_EMPTY_EXCEPTION = new DequeIsEmptyException(); diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java index 654c5f3ca655d2b1ff20eb18c09fc235c0e83916..35aeb0b0a44a39b8bea846c4a7d68e1ebbb89438 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java +++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java @@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicLong; import teetime.util.concurrent.workstealing.CircularArray; /** - * + * * @author Christian Wulf - * + * * @see "Dynamic Circular WorkStealing Deque" - * + * * @since 1.10 */ -public class UntypedCircularWorkStealingDeque { +public final class UntypedCircularWorkStealingDeque { public static final Object EMPTY = new Object(); public static final Object ABORT = new Object(); @@ -64,7 +64,7 @@ public class UntypedCircularWorkStealingDeque { } /** - * + * * @return * <ul> * <li><code>EMPTY</code> if the deque contains no elements, @@ -112,7 +112,7 @@ public class UntypedCircularWorkStealingDeque { /** * Tries to steal (return & remove) the oldest element from this deque. - * + * * @return * <ul> * <li><code>EMPTY</code> if the deque contains no elements, @@ -145,7 +145,7 @@ public class UntypedCircularWorkStealingDeque { /** * For debugging purposes - * + * * @return but does not remove the bottom element from this deque */ public Object readBottom() { @@ -168,7 +168,7 @@ public class UntypedCircularWorkStealingDeque { /** * For debugging purposes - * + * * @return the number of elements this deque contains */ public long size(final Object sourceStage) { diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java index d1441fc5d3a009c8c5e5a1bf7b30b4e3d3e46ff9..54b5fddba22705e51bd149a5027140d65a635229 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java +++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java @@ -30,7 +30,7 @@ import teetime.util.concurrent.workstealing.exception.OperationAbortedException; * * @since 1.10 */ -public class UntypedExceptionalCircularWorkStealingDeque { +public final class UntypedExceptionalCircularWorkStealingDeque { public static final DequeIsEmptyException DEQUE_IS_EMPTY_EXCEPTION = new DequeIsEmptyException(); diff --git a/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java b/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java index f8ba9e517b090e6a66738a6fa32935bf1631810e..a86e479fa83af8dab3b4d32c518b98dc9347e50d 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java +++ b/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java @@ -15,6 +15,6 @@ */ package teetime.util.concurrent.workstealing.exception; -public class DequeIsEmptyException extends DequePopException { +public final class DequeIsEmptyException extends DequePopException { private static final long serialVersionUID = -6685406255103741724L; -} \ No newline at end of file +} diff --git a/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java b/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java index 803c7f90e19689fa9f8be2d2a6a4704a76508d37..6a640dea0a10df5ded3411d4b767ba33d8ca41d8 100644 --- a/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java +++ b/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java @@ -15,6 +15,6 @@ */ package teetime.util.concurrent.workstealing.exception; -public class OperationAbortedException extends DequePopException { +public final class OperationAbortedException extends DequePopException { private static final long serialVersionUID = 2983001853326344073L; -} \ No newline at end of file +} diff --git a/src/main/java/teetime/util/list/ArrayPool.java b/src/main/java/teetime/util/list/ArrayPool.java index de749079874db33dc5359f1e150d50d6c6fe5027..8b66e68dba91c3b94515bb15c4b567291ff1ecac 100644 --- a/src/main/java/teetime/util/list/ArrayPool.java +++ b/src/main/java/teetime/util/list/ArrayPool.java @@ -18,7 +18,7 @@ package teetime.util.list; import java.util.HashMap; import java.util.Map; -public class ArrayPool<T> { +public final class ArrayPool<T> { // BETTER use a map with int as key due to performance private final Map<Integer, T[]> cache = new HashMap<Integer, T[]>(); diff --git a/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java b/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java index f66af3d8c1d1c3c4147c4d407155e23becacbe6e..32c8a6f562c08de532b20fa50ebd820aad1046cd 100644 --- a/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java +++ b/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java @@ -15,7 +15,7 @@ */ package teetime.util.list; -public class CommittableResizableArrayQueue<T> implements CommittableQueue<T> { +public final class CommittableResizableArrayQueue<T> implements CommittableQueue<T> { // private final int MIN_CAPACITY; diff --git a/src/main/java/teetime/util/list/ListContainer.java b/src/main/java/teetime/util/list/ListContainer.java index 8237ddd423b1db45858a7022f95b185502764138..623a8b035d1a5e92322a54e41a7408e597db7e3f 100644 --- a/src/main/java/teetime/util/list/ListContainer.java +++ b/src/main/java/teetime/util/list/ListContainer.java @@ -15,7 +15,7 @@ */ package teetime.util.list; -public class ListContainer<T> { +public final class ListContainer<T> { public T value; public ListContainer<T> previous; diff --git a/src/main/java/teetime/util/list/ListContainerPool.java b/src/main/java/teetime/util/list/ListContainerPool.java index 33e5435d410f1b63e5e7f3c89da29f2dd61e55ba..a71a767fec3c05c90b820db38d0d7aacfb93e315 100644 --- a/src/main/java/teetime/util/list/ListContainerPool.java +++ b/src/main/java/teetime/util/list/ListContainerPool.java @@ -18,7 +18,7 @@ package teetime.util.list; import java.util.ArrayList; import java.util.List; -public class ListContainerPool<T> implements ObjectPool<ListContainer<T>> { +public final class ListContainerPool<T> implements ObjectPool<ListContainer<T>> { private final List<ListContainer<T>> pool = new ArrayList<ListContainer<T>>(); diff --git a/src/main/java/teetime/util/list/ObjectPooledLinkedList.java b/src/main/java/teetime/util/list/ObjectPooledLinkedList.java index 587d5e18422a7347a4a8167c4138679f9cba30d1..5b77af4a0627cd94207603bfeb97070eef5d0fd1 100644 --- a/src/main/java/teetime/util/list/ObjectPooledLinkedList.java +++ b/src/main/java/teetime/util/list/ObjectPooledLinkedList.java @@ -15,7 +15,7 @@ */ package teetime.util.list; -public class ObjectPooledLinkedList<T> { +public final class ObjectPooledLinkedList<T> { private final ObjectPool<ListContainer<T>> objectPool = new ListContainerPool<T>(10); @@ -31,7 +31,7 @@ public class ObjectPooledLinkedList<T> { } /** - * + * * @return <code>null</code> if the list is empty. */ public T pop() {