Private implementation class for EnumSet, for "regular sized" enum types
(i.e., those with 64 or fewer enum constants).
Method from java.util.RegularEnumSet Detail: |
public boolean add(E e) {
typeCheck(e);
long oldElements = elements;
elements |= (1L < < ((Enum)e).ordinal());
return elements != oldElements;
}
Adds the specified element to this set if it is not already present. |
void addAll() {
if (universe.length != 0)
elements = -1L > > > -universe.length;
}
|
public boolean addAll(Collection<? extends E> c) {
if (!(c instanceof RegularEnumSet))
return super.addAll(c);
RegularEnumSet es = (RegularEnumSet)c;
if (es.elementType != elementType) {
if (es.isEmpty())
return false;
else
throw new ClassCastException(
es.elementType + " != " + elementType);
}
long oldElements = elements;
elements |= es.elements;
return elements != oldElements;
}
Adds all of the elements in the specified collection to this set. |
void addRange(E from,
E to) {
elements = (-1L > > > (from.ordinal() - to.ordinal() - 1)) < < from.ordinal();
}
|
public void clear() {
elements = 0;
}
Removes all of the elements from this set. |
void complement() {
if (universe.length != 0) {
elements = ~elements;
elements &= -1L > > > -universe.length; // Mask unused bits
}
}
|
public boolean contains(Object e) {
if (e == null)
return false;
Class eClass = e.getClass();
if (eClass != elementType && eClass.getSuperclass() != elementType)
return false;
return (elements & (1L < < ((Enum)e).ordinal())) != 0;
}
Returns true if this set contains the specified element. |
public boolean containsAll(Collection<?> c) {
if (!(c instanceof RegularEnumSet))
return super.containsAll(c);
RegularEnumSet es = (RegularEnumSet)c;
if (es.elementType != elementType)
return es.isEmpty();
return (es.elements & ~elements) == 0;
}
Returns true if this set contains all of the elements
in the specified collection. |
public boolean equals(Object o) {
if (!(o instanceof RegularEnumSet))
return super.equals(o);
RegularEnumSet es = (RegularEnumSet)o;
if (es.elementType != elementType)
return elements == 0 && es.elements == 0;
return es.elements == elements;
}
Compares the specified object with this set for equality. Returns
true if the given object is also a set, the two sets have
the same size, and every member of the given set is contained in
this set. |
public boolean isEmpty() {
return elements == 0;
}
Returns true if this set contains no elements. |
public Iterator<E> iterator() {
return new EnumSetIterator< >();
}
Returns an iterator over the elements contained in this set. The
iterator traverses the elements in their natural order (which is
the order in which the enum constants are declared). The returned
Iterator is a "snapshot" iterator that will never throw ConcurrentModificationException ; the elements are traversed as they
existed when this call was invoked. |
public boolean remove(Object e) {
if (e == null)
return false;
Class eClass = e.getClass();
if (eClass != elementType && eClass.getSuperclass() != elementType)
return false;
long oldElements = elements;
elements &= ~(1L < < ((Enum)e).ordinal());
return elements != oldElements;
}
Removes the specified element from this set if it is present. |
public boolean removeAll(Collection<?> c) {
if (!(c instanceof RegularEnumSet))
return super.removeAll(c);
RegularEnumSet es = (RegularEnumSet)c;
if (es.elementType != elementType)
return false;
long oldElements = elements;
elements &= ~es.elements;
return elements != oldElements;
}
Removes from this set all of its elements that are contained in
the specified collection. |
public boolean retainAll(Collection<?> c) {
if (!(c instanceof RegularEnumSet))
return super.retainAll(c);
RegularEnumSet< ? > es = (RegularEnumSet< ? >)c;
if (es.elementType != elementType) {
boolean changed = (elements != 0);
elements = 0;
return changed;
}
long oldElements = elements;
elements &= es.elements;
return elements != oldElements;
}
Retains only the elements in this set that are contained in the
specified collection. |
public int size() {
return Long.bitCount(elements);
}
Returns the number of elements in this set. |