
[ Class com.github.javaparser.ast.body.ClassOrInterfaceDeclaration ]
  superclass: com.github.javaparser.ast.body.TypeDeclaration
  superclass: com.github.javaparser.ast.body.BodyDeclaration
  superclass: com.github.javaparser.ast.Node
  superclass: java.lang.Object
  interface: com.github.javaparser.ast.DocumentableNode
  interface: java.lang.Cloneable
  interface: com.github.javaparser.ast.body.AnnotableNode
  interface: com.github.javaparser.ast.NamedNode
  Line 52) modifiers ==> int
  Line 52) name ==> java.lang.String
  Line 53) setInterface(isInterface) ==> void
  Line 60) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
  Line 60) modifiers ==> int
  Line 60) name ==> java.lang.String
  Line 60) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
  Line 61) setInterface(isInterface) ==> void
  Line 62) setTypeParameters(typeParameters) ==> void
  Line 63) setExtends(extendsList) ==> void
  Line 64) setImplements(implementsList) ==> void
  Line 72) beginLine ==> int
  Line 72) beginColumn ==> int
  Line 72) endLine ==> int
  Line 72) endColumn ==> int
  Line 72) annotations ==> java.util.List<com.github.javaparser.ast.expr.AnnotationExpr>
  Line 72) modifiers ==> int
  Line 72) name ==> java.lang.String
  Line 72) members ==> java.util.List<com.github.javaparser.ast.body.BodyDeclaration>
  Line 73) setInterface(isInterface) ==> void
  Line 74) setTypeParameters(typeParameters) ==> void
  Line 75) setExtends(extendsList) ==> void
  Line 76) setImplements(implementsList) ==> void
  Line 80) v.visit(this, arg) ==> R
  Line 84) v.visit(this, arg) ==> void
  Line 88) extendsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
  Line 92) implementsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
  Line 96) typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
  Line 100) interface_ ==> boolean
  Line 104) this.extendsList = extendsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
  Line 105) setAsParentNodeOf(this.extendsList) ==> void
  Line 109) this.implementsList = implementsList ==> java.util.List<com.github.javaparser.ast.type.ClassOrInterfaceType>
  Line 110) setAsParentNodeOf(this.implementsList) ==> void
  Line 114) this.interface_ = interface_ ==> boolean
  Line 118) this.typeParameters = typeParameters ==> java.util.List<com.github.javaparser.ast.TypeParameter>
  Line 119) setAsParentNodeOf(this.typeParameters) ==> void
  Line 124) this.javadocComment = javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
  Line 129) javadocComment ==> com.github.javaparser.ast.comments.JavadocComment
