Package org.checkerframework.javacutil
Class AnnotationMirrorSet
- java.lang.Object
-
- org.checkerframework.javacutil.AnnotationMirrorSet
-
- All Implemented Interfaces:
java.lang.Iterable<javax.lang.model.element.AnnotationMirror>,java.util.Collection<javax.lang.model.element.AnnotationMirror>,java.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>,java.util.Set<javax.lang.model.element.AnnotationMirror>,java.util.SortedSet<javax.lang.model.element.AnnotationMirror>,org.plumelib.util.DeepCopyable<AnnotationMirrorSet>
public class AnnotationMirrorSet extends java.lang.Object implements java.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>, org.plumelib.util.DeepCopyable<AnnotationMirrorSet>
The Set interface defines many methods with respect to the equals method. This implementation of Set violates those specifications, but fulfills the same property usingAnnotationUtils.areSame(javax.lang.model.element.AnnotationMirror, javax.lang.model.element.AnnotationMirror)rather than equals.For example, the specification for the contains(Object o) method says: "returns true if and only if this collection contains at least one element e such that (o == null ? e == null : o.equals(e))." The specification for
contains(java.lang.Object)is "returns true if and only if this collection contains at least one element e such that (o == null ? e == null : AnnotationUtils.areSame(o, e))".AnnotationMirror is an interface and not all implementing classes provide a correct equals method; therefore, the existing implementations of Set cannot be used.
-
-
Constructor Summary
Constructors Constructor Description AnnotationMirrorSet()Default constructor.AnnotationMirrorSet(java.util.Collection<? extends javax.lang.model.element.AnnotationMirror> annos)Returns a newAnnotationMirrorSetthat contains the given annotation mirrors.AnnotationMirrorSet(javax.lang.model.element.AnnotationMirror value)Creates a newAnnotationMirrorSetthat containsvalue.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(javax.lang.model.element.AnnotationMirror annotationMirror)booleanaddAll(java.util.Collection<? extends javax.lang.model.element.AnnotationMirror> c)@Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirrorceiling(javax.lang.model.element.AnnotationMirror e)voidclear()java.util.Comparator<? super javax.lang.model.element.AnnotationMirror>comparator()booleancontains(@Nullable java.lang.Object o)booleancontainsAll(java.util.Collection<?> c)AnnotationMirrorSetdeepCopy()java.util.Iterator<@KeyFor("this") javax.lang.model.element.AnnotationMirror>descendingIterator()AnnotationMirrorSetdescendingSet()static AnnotationMirrorSetemptySet()Returns an empty set.booleanequals(@Nullable java.lang.Object o)@KeyFor("this") javax.lang.model.element.AnnotationMirrorfirst()@Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirrorfloor(javax.lang.model.element.AnnotationMirror e)inthashCode()AnnotationMirrorSetheadSet(javax.lang.model.element.AnnotationMirror toElement)AnnotationMirrorSetheadSet(javax.lang.model.element.AnnotationMirror toElement, boolean inclusive)@Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirrorhigher(javax.lang.model.element.AnnotationMirror e)booleanisEmpty()java.util.Iterator<@KeyFor("this") javax.lang.model.element.AnnotationMirror>iterator()@KeyFor("this") javax.lang.model.element.AnnotationMirrorlast()@Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirrorlower(javax.lang.model.element.AnnotationMirror e)AnnotationMirrorSetmakeUnmodifiable()Make this set unmodifiable.@Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirrorpollFirst()@Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirrorpollLast()booleanremove(@Nullable java.lang.Object o)booleanremoveAll(java.util.Collection<?> c)booleanretainAll(java.util.Collection<?> c)static AnnotationMirrorSetsingleton(javax.lang.model.element.AnnotationMirror value)Returns a new unmodifiableAnnotationMirrorSetthat containsvalue.intsize()AnnotationMirrorSetsubSet(javax.lang.model.element.AnnotationMirror fromElement, boolean fromInclusive, javax.lang.model.element.AnnotationMirror toElement, boolean toInclusive)AnnotationMirrorSetsubSet(javax.lang.model.element.AnnotationMirror fromElement, javax.lang.model.element.AnnotationMirror toElement)AnnotationMirrorSettailSet(javax.lang.model.element.AnnotationMirror fromElement)AnnotationMirrorSettailSet(javax.lang.model.element.AnnotationMirror fromElement, boolean inclusive)java.lang.Object[]toArray()<@KeyForBottom T>
@Nullable T[]toArray(@PolyNull T[] a)java.lang.StringtoString()static AnnotationMirrorSetunmodifiableSet(java.util.Collection<? extends javax.lang.model.element.AnnotationMirror> annos)Returns an unmodifiable AnnotationMirrorSet with the given elements.
-
-
-
Constructor Detail
-
AnnotationMirrorSet
public AnnotationMirrorSet()
Default constructor.
-
AnnotationMirrorSet
public AnnotationMirrorSet(javax.lang.model.element.AnnotationMirror value)
Creates a newAnnotationMirrorSetthat containsvalue.- Parameters:
value- the AnnotationMirror to put in the set
-
AnnotationMirrorSet
public AnnotationMirrorSet(java.util.Collection<? extends javax.lang.model.element.AnnotationMirror> annos)
Returns a newAnnotationMirrorSetthat contains the given annotation mirrors.- Parameters:
annos- the AnnotationMirrors to put in the set
-
-
Method Detail
-
deepCopy
public AnnotationMirrorSet deepCopy()
- Specified by:
deepCopyin interfaceorg.plumelib.util.DeepCopyable<AnnotationMirrorSet>
-
makeUnmodifiable
public AnnotationMirrorSet makeUnmodifiable()
Make this set unmodifiable.- Returns:
- this set
-
singleton
public static AnnotationMirrorSet singleton(javax.lang.model.element.AnnotationMirror value)
Returns a new unmodifiableAnnotationMirrorSetthat containsvalue.- Parameters:
value- the AnnotationMirror to put in the set- Returns:
- a new unmodifiable
AnnotationMirrorSetthat contains onlyvalue
-
unmodifiableSet
public static AnnotationMirrorSet unmodifiableSet(java.util.Collection<? extends javax.lang.model.element.AnnotationMirror> annos)
Returns an unmodifiable AnnotationMirrorSet with the given elements.- Parameters:
annos- the annotation mirrors that will constitute the new unmodifiable set- Returns:
- an unmodifiable AnnotationMirrorSet with the given elements
-
emptySet
public static AnnotationMirrorSet emptySet()
Returns an empty set.- Returns:
- an empty set
-
size
public int size()
- Specified by:
sizein interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
sizein interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
isEmptyin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
contains
public boolean contains(@UnknownInitialization(AnnotationMirrorSet.class) AnnotationMirrorSet this, @Nullable java.lang.Object o)
- Specified by:
containsin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
containsin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
iterator
public java.util.Iterator<@KeyFor("this") javax.lang.model.element.AnnotationMirror> iterator()
- Specified by:
iteratorin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
iteratorin interfacejava.lang.Iterable<javax.lang.model.element.AnnotationMirror>- Specified by:
iteratorin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>- Specified by:
iteratorin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
toArray
public java.lang.Object[] toArray()
- Specified by:
toArrayin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
toArrayin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
toArray
public <@KeyForBottom T> @Nullable T[] toArray(@PolyNull T[] a)
- Specified by:
toArrayin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
toArrayin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
add
public boolean add(@UnknownInitialization(AnnotationMirrorSet.class) AnnotationMirrorSet this, javax.lang.model.element.AnnotationMirror annotationMirror)
- Specified by:
addin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
addin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
remove
public boolean remove(@Nullable java.lang.Object o)
- Specified by:
removein interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
removein interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
containsAll
public boolean containsAll(java.util.Collection<?> c)
- Specified by:
containsAllin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
containsAllin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
addAll
public boolean addAll(@UnknownInitialization(AnnotationMirrorSet.class) AnnotationMirrorSet this, java.util.Collection<? extends javax.lang.model.element.AnnotationMirror> c)
- Specified by:
addAllin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
addAllin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
retainAll
public boolean retainAll(java.util.Collection<?> c)
- Specified by:
retainAllin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
retainAllin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
removeAll
public boolean removeAll(java.util.Collection<?> c)
- Specified by:
removeAllin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
removeAllin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
clearin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(@Nullable java.lang.Object o)
- Specified by:
equalsin interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
equalsin interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection<javax.lang.model.element.AnnotationMirror>- Specified by:
hashCodein interfacejava.util.Set<javax.lang.model.element.AnnotationMirror>- Overrides:
hashCodein classjava.lang.Object
-
comparator
public java.util.Comparator<? super javax.lang.model.element.AnnotationMirror> comparator()
- Specified by:
comparatorin interfacejava.util.SortedSet<javax.lang.model.element.AnnotationMirror>
-
first
public @KeyFor("this") javax.lang.model.element.AnnotationMirror first()
- Specified by:
firstin interfacejava.util.SortedSet<javax.lang.model.element.AnnotationMirror>
-
last
public @KeyFor("this") javax.lang.model.element.AnnotationMirror last()
- Specified by:
lastin interfacejava.util.SortedSet<javax.lang.model.element.AnnotationMirror>
-
lower
public @Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirror lower(javax.lang.model.element.AnnotationMirror e)
- Specified by:
lowerin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
floor
public @Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirror floor(javax.lang.model.element.AnnotationMirror e)
- Specified by:
floorin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
ceiling
public @Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirror ceiling(javax.lang.model.element.AnnotationMirror e)
- Specified by:
ceilingin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
higher
public @Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirror higher(javax.lang.model.element.AnnotationMirror e)
- Specified by:
higherin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
pollFirst
public @Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirror pollFirst()
- Specified by:
pollFirstin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
pollLast
public @Nullable @KeyFor("this") javax.lang.model.element.AnnotationMirror pollLast()
- Specified by:
pollLastin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
descendingSet
public AnnotationMirrorSet descendingSet()
- Specified by:
descendingSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
descendingIterator
public java.util.Iterator<@KeyFor("this") javax.lang.model.element.AnnotationMirror> descendingIterator()
- Specified by:
descendingIteratorin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
subSet
public AnnotationMirrorSet subSet(javax.lang.model.element.AnnotationMirror fromElement, boolean fromInclusive, javax.lang.model.element.AnnotationMirror toElement, boolean toInclusive)
- Specified by:
subSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
headSet
public AnnotationMirrorSet headSet(javax.lang.model.element.AnnotationMirror toElement, boolean inclusive)
- Specified by:
headSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
tailSet
public AnnotationMirrorSet tailSet(javax.lang.model.element.AnnotationMirror fromElement, boolean inclusive)
- Specified by:
tailSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>
-
subSet
public AnnotationMirrorSet subSet(javax.lang.model.element.AnnotationMirror fromElement, javax.lang.model.element.AnnotationMirror toElement)
- Specified by:
subSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>- Specified by:
subSetin interfacejava.util.SortedSet<javax.lang.model.element.AnnotationMirror>
-
headSet
public AnnotationMirrorSet headSet(javax.lang.model.element.AnnotationMirror toElement)
- Specified by:
headSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>- Specified by:
headSetin interfacejava.util.SortedSet<javax.lang.model.element.AnnotationMirror>
-
tailSet
public AnnotationMirrorSet tailSet(javax.lang.model.element.AnnotationMirror fromElement)
- Specified by:
tailSetin interfacejava.util.NavigableSet<@KeyFor("this") javax.lang.model.element.AnnotationMirror>- Specified by:
tailSetin interfacejava.util.SortedSet<javax.lang.model.element.AnnotationMirror>
-
-