docs: protected void record( final Annotation annotation,
                             final Node parentNode ) throws Exception {
          final String name = annotation.getTypeName().getFullyQualifiedName();
  
          final Node annotationNode = parentNode.addNode(name, ClassFileSequencerLexicon.ANNOTATION);
          annotationNode.setProperty(ClassFileSequencerLexicon.NAME, name);
  
          if (annotation.isMarkerAnnotation()) {
              annotationNode.setProperty(ClassFileSequencerLexicon.ANNOTATION_TYPE,
                                         ClassFileSequencerLexicon.AnnotationType.MARKER.toString());
              LOGGER.debug("Marker annotation {0} created", name);
          } else if (annotation.isNormalAnnotation()) {
              annotationNode.setProperty(ClassFileSequencerLexicon.ANNOTATION_TYPE,
                                         ClassFileSequencerLexicon.AnnotationType.NORMAL.toString());
              @SuppressWarnings( "unchecked" )
              final List<MemberValuePair> entries = ((NormalAnnotation)annotation).values();
  
              if ((entries != null) && !entries.isEmpty()) {
                  for (final MemberValuePair entry : entries) {
                      final String memberName = entry.getName().getFullyQualifiedName();
                      final Expression expression = entry.getValue();
                      recordAnnotationMember(memberName, expression, annotationNode);
                  }
              }
  
              LOGGER.debug("Normal annotation {0} created", name);
          } else if (annotation.isSingleMemberAnnotation()) {
              annotationNode.setProperty(ClassFileSequencerLexicon.ANNOTATION_TYPE,
                                         ClassFileSequencerLexicon.AnnotationType.SINGLE_MEMBER.toString());
              final Expression expression = ((SingleMemberAnnotation)annotation).getValue();
              recordAnnotationMember(null, expression, annotationNode);
              LOGGER.debug("Single member annotation {0} created", name);
          } else {
              assert false;
              LOGGER.error(JavaFileI18n.unhandledAnnotationType, annotation.getClass().getName(), parentNode.getName());
          }
  
          recordSourceReference(annotation, annotationNode);
      }