Author: rwhitcomb Date: Fri May 8 18:14:27 2020 New Revision: 1877518 URL: http://svn.apache.org/viewvc?rev=1877518&view=rev Log: PIVOT-1032: Fix style errors in ListenerList; make helper methods in StringUtils to construct an array representation of an Iterable, and use that in ListenerList.toString().
Modified: pivot/trunk/core/src/org/apache/pivot/util/ListenerList.java pivot/trunk/core/src/org/apache/pivot/util/StringUtils.java Modified: pivot/trunk/core/src/org/apache/pivot/util/ListenerList.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/ListenerList.java?rev=1877518&r1=1877517&r2=1877518&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/util/ListenerList.java (original) +++ pivot/trunk/core/src/org/apache/pivot/util/ListenerList.java Fri May 8 18:14:27 2020 @@ -27,10 +27,16 @@ import org.apache.pivot.annotations.Unsu * thread safe. Subclasses that require thread-safe access should synchronize * method access appropriately. Callers must manually synchronize on the * listener list instance to ensure thread safety during iteration. + * + * @param <T> The listener type contained in this list. */ public abstract class ListenerList<T> implements Iterable<T> { - // Iterator through the current array of elements + /** + * Iterator through the current array of elements. + * + * @param <T> The listener type to iterate over. + */ private class NodeIterator implements Iterator<T> { private int index; @@ -74,7 +80,7 @@ public abstract class ListenerList<T> im * * @param listener New listener to add to the list. */ - public void add(T listener) { + public void add(final T listener) { if (indexOf(listener) >= 0) { System.err.println("Duplicate listener " + listener + " added to " + this); return; @@ -94,7 +100,7 @@ public abstract class ListenerList<T> im * @param index The 0-based position in the list where to add the new listener. * @param listener New listener to add there. */ - public void add(int index, T listener) { + public void add(final int index, final T listener) { Utils.checkZeroBasedIndex(index, last); if (indexOf(listener) >= 0) { @@ -128,7 +134,7 @@ public abstract class ListenerList<T> im * * @param listener The listener to remove from the list. */ - public void remove(T listener) { + public void remove(final T listener) { int index = indexOf(listener); if (index < 0) { @@ -163,7 +169,7 @@ public abstract class ListenerList<T> im * @return <tt>true</tt> if the listener exists in the list; <tt>false</tt>, * otherwise. */ - public boolean contains(T listener) { + public boolean contains(final T listener) { return indexOf(listener) >= 0; } @@ -193,7 +199,7 @@ public abstract class ListenerList<T> im * @return The element at position <tt>index</tt>. * @throws IndexOutOfBoundsException if the index is out of range. */ - public T get(int index) { + public T get(final int index) { Utils.checkZeroBasedIndex(index, last); return list[index]; } @@ -208,19 +214,9 @@ public abstract class ListenerList<T> im StringBuilder sb = new StringBuilder(); sb.append(getClass().getName()); - sb.append(" ["); - - int i = 0; - for (T item : this) { - if (i > 0) { - sb.append(", "); - } - - sb.append(item); - i++; - } + sb.append(" "); - sb.append("]"); + StringUtils.append(sb, this); return sb.toString(); } Modified: pivot/trunk/core/src/org/apache/pivot/util/StringUtils.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/StringUtils.java?rev=1877518&r1=1877517&r2=1877518&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/util/StringUtils.java (original) +++ pivot/trunk/core/src/org/apache/pivot/util/StringUtils.java Fri May 8 18:14:27 2020 @@ -170,5 +170,49 @@ public final class StringUtils { } } + /** + * Given an iterable list of items, construct a string representation of the list + * that looks like: + * <pre>[item1, item2, ...]</pre>. + * + * @param <T> The type of items in the list. + * @param list The iterable list of items. + * @return A string representation of the list. + */ + public static <T> String toString(final Iterable<T> list) { + StringBuilder sb = new StringBuilder(); + append(sb, list); + return sb.toString(); + } + + /** + * Given an iterable list of items, construct a string representation of the list + * that looks like: + * <pre>[item1, item2, ...]</pre> + * appending the results to the given string builder for further use. + * + * @param <T> The type of items in the list. + * @param sb The {@link StringBuilder} already in progress. + * @param list The iterable list of items. + * @return The input {@code StringBuilder} for further use. + */ + public static <T> StringBuilder append(final StringBuilder sb, final Iterable<T> list) { + sb.append("["); + + int i = 0; + for (T item : list) { + if (i > 0) { + sb.append(", "); + } + + sb.append(item); + i++; + } + + sb.append("]"); + + return sb; + } + }