Class PriorityCollection<E extends PriorityAware>

  • Type Parameters:
    E - The type this class may hold, this is generic as can be anything that extends PriorityAware.
    All Implemented Interfaces:
    java.lang.Iterable<E>, java.util.Collection<E>

    public class PriorityCollection<E extends PriorityAware>
    extends java.util.AbstractCollection<E>
    This class's purpose is to hold the the different collections used for each priority level. A supplier is required to provide the underlying collection needed when a new priority level is seen, and the end behaviour is that of the underlying collection, e.g. if set add will follow set's add semantics, if list, then list semantics. Methods getArray, setArray MUST never be exposed, and all array modifications must go through these.
    • Constructor Summary

      Constructors 
      Constructor Description
      PriorityCollection​(java.util.function.Supplier<java.util.Collection<E>> supplier)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean add​(E e)  
      boolean addAll​(java.util.Collection<? extends E> c)  
      void clear()  
      boolean contains​(java.lang.Object o)  
      boolean contains​(PriorityAware priorityAware)  
      boolean containsAll​(java.util.Collection<?> c)  
      void forEach​(java.util.function.Consumer<? super E> action)  
      java.util.Set<java.lang.Integer> getPriorites()  
      boolean isEmpty()  
      java.util.Iterator<E> iterator()  
      boolean remove​(java.lang.Object o)  
      boolean removeAll​(java.util.Collection<?> c)  
      ResettableIterator<E> resettableIterator()  
      boolean retainAll​(java.util.Collection<?> c)  
      int size()  
      • Methods inherited from class java.util.AbstractCollection

        toArray, toArray, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray
    • Constructor Detail

      • PriorityCollection

        public PriorityCollection​(java.util.function.Supplier<java.util.Collection<E>> supplier)
    • Method Detail

      • size

        public int size()
        Specified by:
        size in interface java.util.Collection<E extends PriorityAware>
        Specified by:
        size in class java.util.AbstractCollection<E extends PriorityAware>
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        isEmpty in class java.util.AbstractCollection<E extends PriorityAware>
      • getPriorites

        public java.util.Set<java.lang.Integer> getPriorites()
      • iterator

        public java.util.Iterator<E> iterator()
        Specified by:
        iterator in interface java.util.Collection<E extends PriorityAware>
        Specified by:
        iterator in interface java.lang.Iterable<E extends PriorityAware>
        Specified by:
        iterator in class java.util.AbstractCollection<E extends PriorityAware>
      • forEach

        public void forEach​(java.util.function.Consumer<? super E> action)
      • add

        public boolean add​(E e)
        Specified by:
        add in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        add in class java.util.AbstractCollection<E extends PriorityAware>
      • remove

        public boolean remove​(java.lang.Object o)
        Specified by:
        remove in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        remove in class java.util.AbstractCollection<E extends PriorityAware>
      • containsAll

        public boolean containsAll​(java.util.Collection<?> c)
        Specified by:
        containsAll in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        containsAll in class java.util.AbstractCollection<E extends PriorityAware>
      • addAll

        public boolean addAll​(java.util.Collection<? extends E> c)
        Specified by:
        addAll in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        addAll in class java.util.AbstractCollection<E extends PriorityAware>
      • removeAll

        public boolean removeAll​(java.util.Collection<?> c)
        Specified by:
        removeAll in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        removeAll in class java.util.AbstractCollection<E extends PriorityAware>
      • retainAll

        public boolean retainAll​(java.util.Collection<?> c)
        Specified by:
        retainAll in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        retainAll in class java.util.AbstractCollection<E extends PriorityAware>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        clear in class java.util.AbstractCollection<E extends PriorityAware>
      • contains

        public boolean contains​(java.lang.Object o)
        Specified by:
        contains in interface java.util.Collection<E extends PriorityAware>
        Overrides:
        contains in class java.util.AbstractCollection<E extends PriorityAware>
      • contains

        public boolean contains​(PriorityAware priorityAware)