private void handleClassElementValue(ClassElementValue value, Target annotationTarget) { NullnessAnnotation n = NullnessAnnotation.Parser.parse(value.getClassString()); if (n != null) { database.addDefaultAnnotation(annotationTarget, getDottedClassName(), n); } }
@Override public void visitSyntheticParameterAnnotation(int p, boolean runtimeVisible) { if (database == null) { return; } XMethod xmethod = XFactory.createXMethod(this); XMethodParameter xparameter = new XMethodParameter(xmethod, p); database.addDirectAnnotation(xparameter, NullnessAnnotation.UNKNOWN_NULLNESS); }
@Override public boolean parameterMustBeNonNull(XMethod m, int param) { if (param == 0) { if ("equals".equals(m.getName()) && "(Ljava/lang/Object;)Z".equals(m.getSignature()) && !m.isStatic()) { return false; } else if ("main".equals(m.getName()) && "([Ljava/lang/String;)V".equals(m.getSignature()) && m.isStatic() && m.isPublic()) { return true; } else if (TypeQualifierNullnessAnnotationDatabase.assertsFirstParameterIsNonnull(m)) { return true; } else if ("compareTo".equals(m.getName()) && m.getSignature().endsWith(";)Z") && !m.isStatic()) { return true; } } if (!anyAnnotations(NullnessAnnotation.NONNULL)) { return false; } XMethodParameter xmp = new XMethodParameter(m, param); NullnessAnnotation resolvedAnnotation = getResolvedAnnotation(xmp, true); return resolvedAnnotation == NullnessAnnotation.NONNULL; }
public NullnessAnnotationDatabase() { setAddClassOnly(true); loadAuxiliaryAnnotations(); setAddClassOnly(false); }
public NullnessAnnotationDatabase() { setAddClassOnly(true); loadAuxiliaryAnnotations(); setAddClassOnly(false); }
@Override public boolean parameterMustBeNonNull(XMethod m, int param) { if (param == 0) { if ("equals".equals(m.getName()) && "(Ljava/lang/Object;)Z".equals(m.getSignature()) && !m.isStatic()) { return false; } else if ("main".equals(m.getName()) && "([Ljava/lang/String;)V".equals(m.getSignature()) && m.isStatic() && m.isPublic()) { return true; } else if (TypeQualifierNullnessAnnotationDatabase.assertsFirstParameterIsNonnull(m)) { return true; } else if ("compareTo".equals(m.getName()) && m.getSignature().endsWith(";)Z") && !m.isStatic()) { return true; } } if (!anyAnnotations(NullnessAnnotation.NONNULL)) { return false; } XMethodParameter xmp = new XMethodParameter(m, param); NullnessAnnotation resolvedAnnotation = getResolvedAnnotation(xmp, true); return resolvedAnnotation == NullnessAnnotation.NONNULL; }
@Override public void visitParameterAnnotation(int p, String annotationClass, Map<String, ElementValue> map, boolean runtimeVisible) { if (database == null) { return; } NullnessAnnotation n = NullnessAnnotation.Parser.parse(annotationClass); annotationClass = lastPortion(annotationClass); if (n == null) { return; } XMethod xmethod = XFactory.createXMethod(this); if (DEBUG) { System.out.println("Parameter " + p + " @" + annotationClass.substring(annotationClass.lastIndexOf('/') + 1) + " in " + xmethod.toString()); } XMethodParameter xparameter = new XMethodParameter(xmethod, p); database.addDirectAnnotation(xparameter, n); }
private void handleClassElementValue(ClassElementValue value, Target annotationTarget) { NullnessAnnotation n = NullnessAnnotation.Parser.parse(value.getClassString()); if (n != null) { database.addDefaultAnnotation(annotationTarget, getDottedClassName(), n); } }
database.addDirectAnnotation(XFactory.createXMethod(this), n); } else if (visitingField()) { database.addDirectAnnotation(XFactory.createXField(this), n);
@Override public void visitSyntheticParameterAnnotation(int p, boolean runtimeVisible) { if (database == null) { return; } XMethod xmethod = XFactory.createXMethod(this); XMethodParameter xparameter = new XMethodParameter(xmethod, p); database.addDirectAnnotation(xparameter, NullnessAnnotation.UNKNOWN_NULLNESS); }
@Override public void visitParameterAnnotation(int p, String annotationClass, Map<String, ElementValue> map, boolean runtimeVisible) { if (database == null) { return; } NullnessAnnotation n = NullnessAnnotation.Parser.parse(annotationClass); annotationClass = lastPortion(annotationClass); if (n == null) { return; } XMethod xmethod = XFactory.createXMethod(this); if (DEBUG) { System.out.println("Parameter " + p + " @" + annotationClass.substring(annotationClass.lastIndexOf('/') + 1) + " in " + xmethod.toString()); } XMethodParameter xparameter = new XMethodParameter(xmethod, p); database.addDirectAnnotation(xparameter, n); }
database.addDirectAnnotation(XFactory.createXMethod(this), n); } else if (visitingField()) { database.addDirectAnnotation(XFactory.createXField(this), n);