Object value = annotation.getElementValuePairs()[0].value; if (value == null) { continue;
@Override public int hashCode() { int result = 17; int c = this.getAnnotationType().hashCode(); result = 31 * result + c; c = Arrays.hashCode(this.getElementValuePairs()); result = 31 * result + c; return result; } @Override
@NonNull @Override public List<Value> getValues() { ElementValuePair[] pairs = binding.getElementValuePairs(); if (pairs != null && pairs.length > 0) { List<Value> values = Lists.newArrayListWithExpectedSize(pairs.length); for (ElementValuePair pair : pairs) { values.add(new Value(new String(pair.getName()), getPairValue(pair))); } } return Collections.emptyList(); }
public IMemberValuePairBinding[] getDeclaredMemberValuePairs() { ReferenceBinding typeBinding = this.binding.getAnnotationType(); if (typeBinding == null || ((typeBinding.tagBits & TagBits.HasMissingType) != 0)) { return MemberValuePairBinding.NoPair; } ElementValuePair[] internalPairs = this.binding.getElementValuePairs(); int length = internalPairs.length; IMemberValuePairBinding[] pairs = length == 0 ? MemberValuePairBinding.NoPair : new MemberValuePairBinding[length]; int counter = 0; for (int i = 0; i < length; i++) { ElementValuePair valuePair = internalPairs[i]; if (valuePair.binding == null) continue; pairs[counter++] = this.bindingResolver.getMemberValuePairBinding(valuePair); } if (counter == 0) return MemberValuePairBinding.NoPair; if (counter != length) { // resize System.arraycopy(pairs, 0, (pairs = new MemberValuePairBinding[counter]), 0, counter); } return pairs; }
public IMemberValuePairBinding[] getDeclaredMemberValuePairs() { ReferenceBinding typeBinding = this.binding.getAnnotationType(); if (typeBinding == null || ((typeBinding.tagBits & TagBits.HasMissingType) != 0)) { return MemberValuePairBinding.NoPair; } ElementValuePair[] internalPairs = this.binding.getElementValuePairs(); int length = internalPairs.length; IMemberValuePairBinding[] pairs = length == 0 ? MemberValuePairBinding.NoPair : new MemberValuePairBinding[length]; int counter = 0; for (int i = 0; i < length; i++) { ElementValuePair valuePair = internalPairs[i]; if (valuePair.binding == null) continue; pairs[counter++] = this.bindingResolver.getMemberValuePairBinding(valuePair); } if (counter == 0) return MemberValuePairBinding.NoPair; if (counter != length) { // resize System.arraycopy(pairs, 0, (pairs = new MemberValuePairBinding[counter]), 0, counter); } return pairs; }
public IMemberValuePairBinding[] getDeclaredMemberValuePairs() { ReferenceBinding typeBinding = this.binding.getAnnotationType(); if (typeBinding == null || ((typeBinding.tagBits & TagBits.HasMissingType) != 0)) { return MemberValuePairBinding.NoPair; } ElementValuePair[] internalPairs = this.binding.getElementValuePairs(); int length = internalPairs.length; IMemberValuePairBinding[] pairs = length == 0 ? MemberValuePairBinding.NoPair : new MemberValuePairBinding[length]; int counter = 0; for (int i = 0; i < length; i++) { ElementValuePair valuePair = internalPairs[i]; if (valuePair.binding == null) continue; pairs[counter++] = this.bindingResolver.getMemberValuePairBinding(valuePair); } if (counter == 0) return MemberValuePairBinding.NoPair; if (counter != length) { // resize System.arraycopy(pairs, 0, (pairs = new MemberValuePairBinding[counter]), 0, counter); } return pairs; }
public IMemberValuePairBinding[] getDeclaredMemberValuePairs() { ReferenceBinding typeBinding = this.binding.getAnnotationType(); if (typeBinding == null || ((typeBinding.tagBits & TagBits.HasMissingType) != 0)) { return MemberValuePairBinding.NoPair; } ElementValuePair[] internalPairs = this.binding.getElementValuePairs(); int length = internalPairs.length; IMemberValuePairBinding[] pairs = length == 0 ? MemberValuePairBinding.NoPair : new MemberValuePairBinding[length]; int counter = 0; for (int i = 0; i < length; i++) { ElementValuePair valuePair = internalPairs[i]; if (valuePair.binding == null) continue; pairs[counter++] = this.bindingResolver.getMemberValuePairBinding(valuePair); } if (counter == 0) return MemberValuePairBinding.NoPair; if (counter != length) { // resize System.arraycopy(pairs, 0, (pairs = new MemberValuePairBinding[counter]), 0, counter); } return pairs; }
public IMemberValuePairBinding[] getDeclaredMemberValuePairs() { ReferenceBinding typeBinding = this.binding.getAnnotationType(); if (typeBinding == null || ((typeBinding.tagBits & TagBits.HasMissingType) != 0)) { return MemberValuePairBinding.NoPair; } ElementValuePair[] internalPairs = this.binding.getElementValuePairs(); int length = internalPairs.length; IMemberValuePairBinding[] pairs = length == 0 ? MemberValuePairBinding.NoPair : new MemberValuePairBinding[length]; int counter = 0; for (int i = 0; i < length; i++) { ElementValuePair valuePair = internalPairs[i]; if (valuePair.binding == null) continue; pairs[counter++] = this.bindingResolver.getMemberValuePairBinding(valuePair); } if (counter == 0) return MemberValuePairBinding.NoPair; if (counter != length) { // resize System.arraycopy(pairs, 0, (pairs = new MemberValuePairBinding[counter]), 0, counter); } return pairs; }
@NonNull @Override public PsiNameValuePair[] getAttributes() { if (mPairs == null) { ElementValuePair[] elementValuePairs = mBinding.getElementValuePairs(); if (elementValuePairs != null && elementValuePairs.length > 0) { mPairs = new PsiNameValuePair[elementValuePairs.length]; for (int i = 0; i < elementValuePairs.length; i++) { ElementValuePair pair = elementValuePairs[i]; mPairs[i] = new EcjPsiBinaryNameValuePair(mManager, pair); } } else { mPairs = PsiNameValuePair.EMPTY_ARRAY; } } return mPairs; } }
/** * @return all the members of this annotation mirror that have explicit values. * Default values are not included. */ @Override public Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValues() { if (this._binding == null) { return Collections.emptyMap(); } ElementValuePair[] pairs = _binding.getElementValuePairs(); Map<ExecutableElement, AnnotationValue> valueMap = new LinkedHashMap<>(pairs.length); for (ElementValuePair pair : pairs) { MethodBinding method = pair.getMethodBinding(); if (method == null) { // ideally we should be able to create a fake ExecutableElementImpl continue; } ExecutableElement e = new ExecutableElementImpl(_env, method); AnnotationValue v = new AnnotationMemberValue(_env, pair.getValue(), method); valueMap.put(e, v); } return Collections.unmodifiableMap(valueMap); }
/** * @return all the members of this annotation mirror that have explicit values. * Default values are not included. */ public Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValues() { if (this._binding == null) { return Collections.emptyMap(); } ElementValuePair[] pairs = _binding.getElementValuePairs(); Map<ExecutableElement, AnnotationValue> valueMap = new LinkedHashMap<ExecutableElement, AnnotationValue>(pairs.length); for (ElementValuePair pair : pairs) { MethodBinding method = pair.getMethodBinding(); if (method == null) { // ideally we should be able to create a fake ExecutableElementImpl continue; } ExecutableElement e = new ExecutableElementImpl(_env, method); AnnotationValue v = new AnnotationMemberValue(_env, pair.getValue(), method); valueMap.put(e, v); } return Collections.unmodifiableMap(valueMap); }
/** * @return all the members of this annotation mirror that have explicit values. * Default values are not included. */ @Override public Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValues() { if (this._binding == null) { return Collections.emptyMap(); } ElementValuePair[] pairs = _binding.getElementValuePairs(); Map<ExecutableElement, AnnotationValue> valueMap = new LinkedHashMap<>(pairs.length); for (ElementValuePair pair : pairs) { MethodBinding method = pair.getMethodBinding(); if (method == null) { // ideally we should be able to create a fake ExecutableElementImpl continue; } ExecutableElement e = new ExecutableElementImpl(_env, method); AnnotationValue v = new AnnotationMemberValue(_env, pair.getValue(), method); valueMap.put(e, v); } return Collections.unmodifiableMap(valueMap); }
/** * @return all the members of this annotation mirror that have explicit values. * Default values are not included. */ public Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValues() { if (this._binding == null) { return Collections.emptyMap(); } ElementValuePair[] pairs = _binding.getElementValuePairs(); Map<ExecutableElement, AnnotationValue> valueMap = new LinkedHashMap<ExecutableElement, AnnotationValue>(pairs.length); for (ElementValuePair pair : pairs) { MethodBinding method = pair.getMethodBinding(); if (method == null) { // ideally we should be able to create a fake ExecutableElementImpl continue; } ExecutableElement e = new ExecutableElementImpl(_env, method); AnnotationValue v = new AnnotationMemberValue(_env, pair.getValue(), method); valueMap.put(e, v); } return Collections.unmodifiableMap(valueMap); }
/** * @return all the members of this annotation mirror that have explicit values. * Default values are not included. */ @Override public Map<? extends ExecutableElement, ? extends AnnotationValue> getElementValues() { if (this._binding == null) { return Collections.emptyMap(); } ElementValuePair[] pairs = _binding.getElementValuePairs(); Map<ExecutableElement, AnnotationValue> valueMap = new LinkedHashMap<>(pairs.length); for (ElementValuePair pair : pairs) { MethodBinding method = pair.getMethodBinding(); if (method == null) { // ideally we should be able to create a fake ExecutableElementImpl continue; } ExecutableElement e = new ExecutableElementImpl(_env, method); AnnotationValue v = new AnnotationMemberValue(_env, pair.getValue(), method); valueMap.put(e, v); } return Collections.unmodifiableMap(valueMap); }
@SuppressWarnings("unused") static boolean hasSourceRetention(@NonNull AnnotationBinding a) { if (new String(a.getAnnotationType().readableName()).equals("java.lang.annotation.Retention")) { ElementValuePair[] pairs = a.getElementValuePairs(); if (pairs == null || pairs.length != 1) { warning("Expected exactly one parameter passed to @Retention"); return false; } ElementValuePair pair = pairs[0]; Object value = pair.getValue(); if (value instanceof FieldBinding) { FieldBinding field = (FieldBinding) value; if ("SOURCE".equals(new String(field.readableName()))) { return true; } } } return false; }
@SuppressWarnings("unused") static boolean hasSourceRetention(@NonNull AnnotationBinding a) { if (new String(a.getAnnotationType().readableName()).equals("java.lang.annotation.Retention")) { ElementValuePair[] pairs = a.getElementValuePairs(); if (pairs == null || pairs.length != 1) { warning("Expected exactly one parameter passed to @Retention"); return false; } ElementValuePair pair = pairs[0]; Object value = pair.getValue(); if (value instanceof FieldBinding) { FieldBinding field = (FieldBinding) value; if ("SOURCE".equals(new String(field.readableName()))) { return true; } } } return false; }
String deprecatedSinceValue(Supplier<AnnotationBinding[]> annotations) { if (this.options != null && this.options.complianceLevel >= ClassFileConstants.JDK9) { ReferenceContext contextSave = this.referenceContext; try { for (AnnotationBinding annotationBinding : annotations.get()) { if (annotationBinding.getAnnotationType().id == TypeIds.T_JavaLangDeprecated) { for (ElementValuePair elementValuePair : annotationBinding.getElementValuePairs()) { if (CharOperation.equals(elementValuePair.getName(), TypeConstants.SINCE) && elementValuePair.value instanceof StringConstant) return ((StringConstant) elementValuePair.value).stringValue(); } break; } } } finally { this.referenceContext = contextSave; } } return null; } public void disallowedTargetForAnnotation(Annotation annotation) {
@Nullable @Override public Object getValue(@NonNull String name) { ElementValuePair[] pairs = binding.getElementValuePairs(); if (pairs != null) { for (ElementValuePair pair : pairs) { if (sameChars(name, pair.getName())) { return getPairValue(pair); } } } return null; }
public <A extends java.lang.annotation.Annotation> CtAnnotation<A> getTypeCtAnnotation(AnnotationBinding annotationBinding) { CtAnnotation<A> a = factory.Core().createAnnotation(); CtTypeReference<A> t = references.getTypeReference(annotationBinding.getAnnotationType()); a.setAnnotationType(t); for (ElementValuePair valuePair : annotationBinding.getElementValuePairs()) { a.addValue(String.valueOf(valuePair.getName()), buildValuePairAnnotation(valuePair.getValue())); } return a; }
static int getNonNullByDefaultValue(AnnotationBinding annotation) { ElementValuePair[] elementValuePairs = annotation.getElementValuePairs(); if (elementValuePairs == null || elementValuePairs.length == 0 ) { // no argument: apply default default ReferenceBinding annotationType = annotation.getAnnotationType(); if (annotationType == null) return 0; MethodBinding[] annotationMethods = annotationType.methods(); if (annotationMethods != null && annotationMethods.length == 1) { Object value = annotationMethods[0].getDefaultValue(); return Annotation.nullLocationBitsFromAnnotationValue(value); } return DefaultLocationsForTrueValue; // custom unconfigurable NNBD } else if (elementValuePairs.length > 0) { // evaluate the contained EnumConstantSignatures: int nullness = 0; for (int i = 0; i < elementValuePairs.length; i++) nullness |= Annotation.nullLocationBitsFromAnnotationValue(elementValuePairs[i].getValue()); return nullness; } else { // empty argument: cancel all defaults from enclosing scopes return NULL_UNSPECIFIED_BY_DEFAULT; } }