net.aavalla.utils.jobpool.parameters
Class SyncEnumSet<E extends java.lang.Enum<E>>

java.lang.Object
  extended by net.aavalla.utils.jobpool.parameters.SyncEnumSet<E>
All Implemented Interfaces:
java.lang.Iterable<E>, java.util.Collection<E>, java.util.Set<E>

public final class SyncEnumSet<E extends java.lang.Enum<E>>
extends java.lang.Object
implements java.util.Set<E>

A synchronized wrapper for EnumSet. Allows for extracting element type information even in complicated generics situations (hopefully).

Author:
Lari Natri

Method Summary
 boolean add(E e)
           
 boolean addAll(java.util.Collection<? extends E> c)
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
allOf(java.lang.Class<E> elementType)
           
 void clear()
           
 SyncEnumSet<E> clone()
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
complementOf(SyncEnumSet<E> s)
           
 boolean contains(java.lang.Object o)
           
 boolean containsAll(java.util.Collection<?> c)
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
copyOf(java.util.Collection<E> c)
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
copyOf(SyncEnumSet<E> s)
           
 java.lang.Class<E> getElementType()
          Returns the element type (as Class, not Type) for this set.
 boolean isEmpty()
           
 java.util.Iterator<E> iterator()
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
noneOf(java.lang.Class<E> elementType)
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
of(E e)
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
of(E first, E... rest)
           
static
<E extends java.lang.Enum<E>>
SyncEnumSet<E>
range(E from, E to)
           
 boolean remove(java.lang.Object o)
           
 boolean removeAll(java.util.Collection<?> c)
           
 boolean retainAll(java.util.Collection<?> c)
           
 int size()
           
 java.lang.Object[] toArray()
           
<T> T[]
toArray(T[] a)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Set
equals, hashCode
 

Method Detail

getElementType

public final java.lang.Class<E> getElementType()
Returns the element type (as Class, not Type) for this set.

Returns:
element type

clone

public final SyncEnumSet<E> clone()
Overrides:
clone in class java.lang.Object

noneOf

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> noneOf(java.lang.Class<E> elementType)
                                                       throws java.lang.NullPointerException
Throws:
java.lang.NullPointerException

allOf

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> allOf(java.lang.Class<E> elementType)
                                                      throws java.lang.NullPointerException
Throws:
java.lang.NullPointerException

copyOf

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> copyOf(SyncEnumSet<E> s)
                                                       throws java.lang.NullPointerException
Throws:
java.lang.NullPointerException

copyOf

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> copyOf(java.util.Collection<E> c)
                                                       throws java.lang.NullPointerException,
                                                              java.lang.IllegalArgumentException
Throws:
java.lang.NullPointerException
java.lang.IllegalArgumentException

complementOf

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> complementOf(SyncEnumSet<E> s)
                                                             throws java.lang.NullPointerException
Throws:
java.lang.NullPointerException

of

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> of(E e)
                                                   throws java.lang.NullPointerException
Throws:
java.lang.NullPointerException

of

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> of(E first,
                                                              E... rest)
                                                   throws java.lang.NullPointerException
Throws:
java.lang.NullPointerException

range

public static <E extends java.lang.Enum<E>> SyncEnumSet<E> range(E from,
                                                                 E to)
                                                      throws java.lang.NullPointerException,
                                                             java.lang.IllegalArgumentException
Throws:
java.lang.NullPointerException
java.lang.IllegalArgumentException

add

public boolean add(E e)
            throws java.lang.NullPointerException
Specified by:
add in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
add in interface java.util.Set<E extends java.lang.Enum<E>>
Throws:
java.lang.NullPointerException

addAll

public boolean addAll(java.util.Collection<? extends E> c)
Specified by:
addAll in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
addAll in interface java.util.Set<E extends java.lang.Enum<E>>

clear

public void clear()
Specified by:
clear in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
clear in interface java.util.Set<E extends java.lang.Enum<E>>

contains

public boolean contains(java.lang.Object o)
Specified by:
contains in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
contains in interface java.util.Set<E extends java.lang.Enum<E>>

containsAll

public boolean containsAll(java.util.Collection<?> c)
Specified by:
containsAll in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
containsAll in interface java.util.Set<E extends java.lang.Enum<E>>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
isEmpty in interface java.util.Set<E extends java.lang.Enum<E>>

iterator

public java.util.Iterator<E> iterator()
Specified by:
iterator in interface java.lang.Iterable<E extends java.lang.Enum<E>>
Specified by:
iterator in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
iterator in interface java.util.Set<E extends java.lang.Enum<E>>

remove

public boolean remove(java.lang.Object o)
Specified by:
remove in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
remove in interface java.util.Set<E extends java.lang.Enum<E>>

removeAll

public boolean removeAll(java.util.Collection<?> c)
Specified by:
removeAll in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
removeAll in interface java.util.Set<E extends java.lang.Enum<E>>

retainAll

public boolean retainAll(java.util.Collection<?> c)
Specified by:
retainAll in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
retainAll in interface java.util.Set<E extends java.lang.Enum<E>>

size

public int size()
Specified by:
size in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
size in interface java.util.Set<E extends java.lang.Enum<E>>

toArray

public java.lang.Object[] toArray()
Specified by:
toArray in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
toArray in interface java.util.Set<E extends java.lang.Enum<E>>

toArray

public <T> T[] toArray(T[] a)
Specified by:
toArray in interface java.util.Collection<E extends java.lang.Enum<E>>
Specified by:
toArray in interface java.util.Set<E extends java.lang.Enum<E>>

toString

public final java.lang.String toString()
Overrides:
toString in class java.lang.Object