  Line 57) setName(name) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
  Line 61) setAnnotations(annotations) ==> com.github.javaparser.ast.PackageDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
  Line 62) setName(name) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
  Line 67) setAnnotations(annotations) ==> com.github.javaparser.ast.PackageDeclaration.setAnnotations(java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>)
  Line 68) setName(name) ==> com.github.javaparser.ast.PackageDeclaration.setName(com.github.javaparser.ast.expr.NameExpr)
  Line 73) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.PackageDeclaration, A)
  Line 78) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.PackageDeclaration, A)
  Line 88) Utils.ensureNotNull(annotations) ==> com.github.javaparser.utils.Utils.ensureNotNull(java.util.List<T>)
  Line 105) name.toString() ==> com.github.javaparser.ast.Node.toString()
  Line 114) setAsParentNodeOf(this.annotations) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(java.util.List<? extends com.github.javaparser.ast.Node>)
  Line 126) setAsParentNodeOf(this.name) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
