1313import java .util .ArrayList ;
1414import java .util .Arrays ;
1515import java .util .Objects ;
16+ import java .util .Optional ;
1617import java .util .stream .Collectors ;
1718
1819import org .eclipse .core .runtime .ILog ;
@@ -62,27 +63,27 @@ public int getKind() {
6263
6364 @ Override
6465 public int getModifiers () {
65- return getAnnotationType ().getModifiers ( );
66+ return getAnnotationTypeOptional ().map ( ITypeBinding :: getModifiers ). orElse ( 0 );
6667 }
6768
6869 @ Override
6970 public boolean isDeprecated () {
70- return getAnnotationType ().isDeprecated ( );
71+ return getAnnotationTypeOptional ().map ( ITypeBinding :: isDeprecated ). orElse ( false );
7172 }
7273
7374 @ Override
7475 public boolean isRecovered () {
75- return getAnnotationType ().isRecovered ( );
76+ return getAnnotationTypeOptional ().map ( ITypeBinding :: isRecovered ). orElse ( false );
7677 }
7778
7879 @ Override
7980 public boolean isSynthetic () {
80- return getAnnotationType ().isSynthetic ( );
81+ return getAnnotationTypeOptional ().map ( ITypeBinding :: isSynthetic ). orElse ( false );
8182 }
8283
8384 @ Override
8485 public IJavaElement getJavaElement () {
85- return getAnnotationType ().getJavaElement ( );
86+ return getAnnotationTypeOptional ().map ( ITypeBinding :: getJavaElement ). orElse ( null );
8687 }
8788
8889 @ Override
@@ -136,7 +137,7 @@ public IMemberValuePairBinding[] getDeclaredMemberValuePairs() {
136137
137138 @ Override
138139 public String getName () {
139- return getAnnotationType ().getName ( );
140+ return getAnnotationTypeOptional ().map ( ITypeBinding :: getName ). orElse ( null );
140141 }
141142
142143 @ Override
@@ -149,4 +150,8 @@ public String toString() {
149150 public IBinding getRecipient () {
150151 return recipient ;
151152 }
153+
154+ private Optional <ITypeBinding > getAnnotationTypeOptional () {
155+ return Optional .ofNullable (getAnnotationType ());
156+ }
152157}
0 commit comments