  Line 43) setName(name) ==> com.github.javaparser.ast.expr.MemberValuePair.setName(java.lang.String)
  Line 44) setValue(value) ==> com.github.javaparser.ast.expr.MemberValuePair.setValue(com.github.javaparser.ast.expr.Expression)
  Line 49) setName(name) ==> com.github.javaparser.ast.expr.MemberValuePair.setName(java.lang.String)
  Line 50) setValue(value) ==> com.github.javaparser.ast.expr.MemberValuePair.setValue(com.github.javaparser.ast.expr.Expression)
  Line 54) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.GenericVisitor.visit(com.github.javaparser.ast.expr.MemberValuePair, A)
  Line 58) v.visit(this, arg) ==> com.github.javaparser.ast.visitor.VoidVisitor.visit(com.github.javaparser.ast.expr.MemberValuePair, A)
  Line 78) setAsParentNodeOf(this.value) ==> com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
