From 86ee2116ea56e51ab02e12e44d1c8a88d6ba8324 Mon Sep 17 00:00:00 2001
From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de>
Date: Wed, 18 Feb 2015 16:52:14 +0100
Subject: [PATCH] declared all classes in teetime.util as final where possible

---
 .../java/teetime/util/CyclicListIterator.java |  9 ++++--
 .../java/teetime/util/HashMapWithDefault.java |  4 +--
 src/main/java/teetime/util/Pair.java          |  2 +-
 .../classpath/CachedClassForNameResolver.java |  2 +-
 .../util/classpath/ClassForNameResolver.java  |  2 +-
 .../hashmap/ConcurrentHashMapWithDefault.java |  2 +-
 .../util/concurrent/hashmap/ValueFactory.java |  4 +--
 .../CircularWorkStealingDeque.java            | 28 +++++++++----------
 ...CircularWorkStealingDequeWithSentinel.java | 16 +++++------
 ...kStealingDequeWithThreadLocalSentinel.java | 16 +++++------
 .../ExceptionalCircularWorkStealingDeque.java |  2 +-
 .../UntypedCircularWorkStealingDeque.java     | 16 +++++------
 ...dExceptionalCircularWorkStealingDeque.java |  2 +-
 .../exception/DequeIsEmptyException.java      |  4 +--
 .../exception/OperationAbortedException.java  |  4 +--
 .../java/teetime/util/list/ArrayPool.java     |  2 +-
 .../list/CommittableResizableArrayQueue.java  |  2 +-
 .../java/teetime/util/list/ListContainer.java |  2 +-
 .../teetime/util/list/ListContainerPool.java  |  2 +-
 .../util/list/ObjectPooledLinkedList.java     |  4 +--
 20 files changed, 64 insertions(+), 61 deletions(-)

diff --git a/src/main/java/teetime/util/CyclicListIterator.java b/src/main/java/teetime/util/CyclicListIterator.java
index 9611fcb2..d4e06d27 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 f5797cf0..7ebf6eb5 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 1d671fbf..1cffdbf1 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 13eeaa12..6e1ec99f 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 680ea6af..d0847799 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 5c203959..6c2a283f 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 e1c407c7..0d394c94 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 285db51f..78b1ed47 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 9ed956de..91554954 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 41c06cd1..88004d45 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 8cea8f03..934473cb 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 654c5f3c..35aeb0b0 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 d1441fc5..54b5fddb 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 f8ba9e51..a86e479f 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 803c7f90..6a640dea 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 de749079..8b66e68d 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 f66af3d8..32c8a6f5 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 8237ddd4..623a8b03 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 33e5435d..a71a767f 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 587d5e18..5b77af4a 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() {
-- 
GitLab