Maintains a single member of annotations that take the form
MultiLine(numberOfLines=5, wrapped=true), or
FooBar(widget="Xyz") (corresponding to {@link NormalAnnotation}).
Note that {@link MultipleValueAnnotationEvaluatorAndModifier} is capable of maintaining all the elements of such an annotation, but requires some mechanism to distinguish the member values.
This class is also suitable for annotations that have a single member that isn't called value.
Annotations that take only a single value with the member named value are maintained using {@link SingleValueAnnotationEvaluatorAndModifier}. For example, both Named(value="Customer") and just Named("Customer") would be maintained using {@link SingleValueAnnotationEvaluatorAndModifier}. (Internally in the AST the former is actually a {@link NormalAnnotation}), which is why this class names isn't called NormalAnnotationEvaluatorAndModifier).
When modifying, if all supplied valued are null or an empty String, then the annotation is removed. Equally, if any of the supplied values are non-null/non-empty String and there is no annotation, then it will be automatically added (as a {@link NormalAnnotation}).